diff --git a/src/grammar/hive/HiveSql.g4 b/src/grammar/hive/HiveSql.g4 index 65dbba0..d01dfc4 100644 --- a/src/grammar/hive/HiveSql.g4 +++ b/src/grammar/hive/HiveSql.g4 @@ -1,11 +1,13 @@ /** - Licensed to the Apache Software Foundation (ASF) under one or more - contributor license agreements. See the NOTICE file distributed with + Licensed to the Apache Software Foundation (ASF) under one or more + contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to You under the Apache License, Version 2.0 - (the "License"); you may not use this file except in compliance with + (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. @@ -13,36 +15,39 @@ limitations under the License. */ -// HPL/SQL Procedural SQL Extension Grammar -grammar HiveSql; +parser grammar HiveSql; options { tokenVocab=HiveSqlLexer; } -program: block EOF; +@parser::members { +this._input = input; +} + +program : block EOF; block : ((begin_end_block | stmt) T_GO?)+ ; // Multiple consecutive blocks/statements begin_end_block : declare_block? T_BEGIN block exception_block? block_end ; - + single_block_stmt : // Single BEGIN END block (but nested blocks are possible) or single statement T_BEGIN block exception_block? block_end | stmt T_SEMICOLON? ; block_end : - {!this._input.LT(2).getText().equalsIgnoreCase("TRANSACTION")}? T_END + {!this._input.LT(2).text.toUpperCase() === "TRANSACTION"}? T_END ; - + proc_block : begin_end_block | stmt+ T_GO? ; -stmt : +stmt : assignment_stmt | allocate_cursor_stmt | alter_table_stmt @@ -69,12 +74,12 @@ stmt : | describe_stmt | drop_stmt | end_transaction_stmt - | exec_stmt + | exec_stmt | exit_stmt | fetch_stmt | for_cursor_stmt | for_range_stmt - | if_stmt + | if_stmt | include_stmt | insert_stmt | insert_directory_stmt @@ -98,66 +103,66 @@ stmt : | truncate_stmt | values_into_stmt | while_stmt - | label - | hive + | label + | hive | host | null_stmt - | expr_stmt - | semicolon_stmt // Placed here to allow null statements ;;... + | expr_stmt + | semicolon_stmt // Placed here to allow null statements ;;... ; - + semicolon_stmt : T_SEMICOLON - | '@' | '#' | '/' + | T_CALLS | T_SHARP | T_DIV ; exception_block : // Exception block T_EXCEPTION exception_block_item+ ; -exception_block_item : - T_WHEN L_ID T_THEN block ~(T_WHEN | T_END) +exception_block_item : + T_WHEN L_ID T_THEN block ~(T_WHEN | T_END) ; - + null_stmt : // NULL statement (no operation) T_NULL ; expr_stmt : // Standalone expression - {!this._input.LT(1).getText().equalsIgnoreCase("GO")}? expr + {this._input.LT(1).text.toUpperCase() !== "GO"}? expr ; assignment_stmt : // Assignment statement T_SET set_session_option - | T_SET? assignment_stmt_item (T_COMMA assignment_stmt_item)* + | T_SET? assignment_stmt_item (T_COMMA assignment_stmt_item)* ; -assignment_stmt_item : +assignment_stmt_item : assignment_stmt_single_item | assignment_stmt_multiple_item | assignment_stmt_select_item ; -assignment_stmt_single_item : +assignment_stmt_single_item : ident T_COLON? T_EQUAL expr | T_OPEN_P ident T_CLOSE_P T_COLON? T_EQUAL expr ; -assignment_stmt_multiple_item : +assignment_stmt_multiple_item : T_OPEN_P ident (T_COMMA ident)* T_CLOSE_P T_COLON? T_EQUAL T_OPEN_P expr (T_COMMA expr)* T_CLOSE_P ; -assignment_stmt_select_item : +assignment_stmt_select_item : (ident | (T_OPEN_P ident (T_COMMA ident)* T_CLOSE_P)) T_COLON? T_EQUAL T_OPEN_P select_stmt T_CLOSE_P ; - + allocate_cursor_stmt: T_ALLOCATE ident T_CURSOR T_FOR ((T_RESULT T_SET) | T_PROCEDURE) ident ; - -associate_locator_stmt : + +associate_locator_stmt : T_ASSOCIATE (T_RESULT T_SET)? (T_LOCATOR | T_LOCATORS) T_OPEN_P ident (T_COMMA ident)* T_CLOSE_P T_WITH T_PROCEDURE ident - ; + ; begin_transaction_stmt : T_BEGIN T_TRANSACTION @@ -166,11 +171,11 @@ begin_transaction_stmt : break_stmt : T_BREAK ; - + call_stmt : T_CALL ident (T_OPEN_P expr_func_params? T_CLOSE_P | expr_func_params)? ; - + declare_stmt : // Declaration statement T_DECLARE declare_stmt_item (T_COMMA declare_stmt_item)* ; @@ -179,68 +184,68 @@ declare_block : // Declaration block T_DECLARE declare_stmt_item T_SEMICOLON (declare_stmt_item T_SEMICOLON)* ; -declare_block_inplace : +declare_block_inplace : declare_stmt_item T_SEMICOLON (declare_stmt_item T_SEMICOLON)* ; - + declare_stmt_item : declare_cursor_item - | declare_condition_item + | declare_condition_item | declare_handler_item - | declare_var_item + | declare_var_item | declare_temporary_table_item ; declare_var_item : - ident (T_COMMA ident)* T_AS? dtype dtype_len? dtype_attr* dtype_default? - | ident T_CONSTANT T_AS? dtype dtype_len? dtype_default + ident (T_COMMA ident)* T_AS? dtype dtype_len? dtype_attr* dtype_default? + | ident T_CONSTANT T_AS? dtype dtype_len? dtype_default ; -declare_condition_item : // Condition declaration +declare_condition_item : // Condition declaration ident T_CONDITION ; - -declare_cursor_item : // Cursor declaration + +declare_cursor_item : // Cursor declaration (T_CURSOR ident | ident T_CURSOR) (cursor_with_return | cursor_without_return)? (T_IS | T_AS | T_FOR) (select_stmt | expr ) ; - + cursor_with_return : T_WITH T_RETURN T_ONLY? (T_TO (T_CALLER | T_CLIENT))? ; - + cursor_without_return : T_WITHOUT T_RETURN ; -declare_handler_item : // Condition handler declaration +declare_handler_item : // Condition handler declaration (T_CONTINUE | T_EXIT) T_HANDLER T_FOR (T_SQLEXCEPTION | T_SQLWARNING | T_NOT T_FOUND | ident) single_block_stmt ; - + declare_temporary_table_item : // DECLARE TEMPORARY TABLE statement T_GLOBAL? T_TEMPORARY T_TABLE ident create_table_preoptions? create_table_definition ; - + create_table_stmt : - T_CREATE T_TABLE (T_IF T_NOT T_EXISTS)? table_name create_table_preoptions? create_table_definition + T_CREATE T_TABLE (T_IF T_NOT T_EXISTS)? table_name create_table_preoptions? create_table_definition ; - + create_local_temp_table_stmt : T_CREATE (T_LOCAL T_TEMPORARY | (T_SET | T_MULTISET)? T_VOLATILE) T_TABLE ident create_table_preoptions? create_table_definition ; - + create_table_definition : - (T_AS? T_OPEN_P select_stmt T_CLOSE_P | T_AS? select_stmt | T_OPEN_P create_table_columns T_CLOSE_P | T_LIKE table_name) create_table_options? + (T_AS? T_OPEN_P select_stmt T_CLOSE_P | T_AS? select_stmt | T_OPEN_P create_table_columns T_CLOSE_P) create_table_options? ; - -create_table_columns : + +create_table_columns : create_table_columns_item (T_COMMA create_table_columns_item)* ; - + create_table_columns_item : - column_name dtype dtype_len? dtype_attr* create_table_column_inline_cons* + column_name dtype dtype_len? dtype_attr* create_table_column_inline_cons* | (T_CONSTRAINT ident)? create_table_column_cons ; - + column_name : ident ; @@ -255,12 +260,12 @@ create_table_column_inline_cons : | T_AUTO_INCREMENT | T_ENABLE ; - + create_table_column_cons : T_PRIMARY T_KEY T_CLUSTERED? T_OPEN_P ident (T_ASC | T_DESC)? (T_COMMA ident (T_ASC | T_DESC)?)* T_CLOSE_P T_ENABLE? index_storage_clause? - | T_FOREIGN T_KEY T_OPEN_P ident (T_COMMA ident)* T_CLOSE_P T_REFERENCES table_name T_OPEN_P ident (T_COMMA ident)* T_CLOSE_P create_table_fk_action* + | T_FOREIGN T_KEY T_OPEN_P ident (T_COMMA ident)* T_CLOSE_P T_REFERENCES table_name T_OPEN_P ident (T_COMMA ident)* T_CLOSE_P create_table_fk_action* ; - + create_table_fk_action : T_ON (T_UPDATE | T_DELETE) (T_NO T_ACTION | T_RESTRICT | T_SET T_NULL | T_SET T_DEFAULT | T_CASCADE) ; @@ -272,30 +277,30 @@ create_table_preoptions : create_table_preoptions_item : T_COMMA create_table_preoptions_td_item | create_table_options_hive_item - ; - + ; + create_table_preoptions_td_item : T_NO? (T_LOG | T_FALLBACK) ; - + create_table_options : - create_table_options_item+ + create_table_options_item+ ; - + create_table_options_item : - T_ON T_COMMIT (T_DELETE | T_PRESERVE) T_ROWS + T_ON T_COMMIT (T_DELETE | T_PRESERVE) T_ROWS | create_table_options_ora_item - | create_table_options_db2_item + | create_table_options_db2_item | create_table_options_td_item - | create_table_options_hive_item + | create_table_options_hive_item | create_table_options_mssql_item - | create_table_options_mysql_item + | create_table_options_mysql_item ; create_table_options_ora_item : T_SEGMENT T_CREATION (T_IMMEDIATE | T_DEFERRED) - | (T_PCTFREE | T_PCTUSED | T_INITRANS | T_MAXTRANS) L_INT - | T_NOCOMPRESS + | (T_PCTFREE | T_PCTUSED | T_INITRANS | T_MAXTRANS) L_INT + | T_NOCOMPRESS | (T_LOGGING | T_NOLOGGING) | T_STORAGE T_OPEN_P (ident | L_INT)+ T_CLOSE_P | T_TABLESPACE ident @@ -305,26 +310,26 @@ create_table_options_db2_item : T_INDEX? T_IN ident | T_WITH T_REPLACE | T_DISTRIBUTE T_BY T_HASH T_OPEN_P ident (T_COMMA ident)* T_CLOSE_P - | T_NOT? T_LOGGED + | T_NOT? T_LOGGED | T_COMPRESS (T_YES | T_NO) | T_DEFINITION T_ONLY | T_WITH T_RESTRICT T_ON T_DROP ; - + create_table_options_td_item : T_UNIQUE? T_PRIMARY T_INDEX T_OPEN_P ident (T_COMMA ident)* T_CLOSE_P | T_WITH T_DATA ; - + create_table_options_hive_item : create_table_hive_row_format | T_STORED T_AS ident ; - + create_table_hive_row_format : T_ROW T_FORMAT T_DELIMITED create_table_hive_row_format_fields* ; - + create_table_hive_row_format_fields : T_FIELDS T_TERMINATED T_BY expr (T_ESCAPED T_BY expr)? | T_COLLECTION T_ITEMS T_TERMINATED T_BY expr @@ -332,7 +337,7 @@ create_table_hive_row_format_fields : | T_LINES T_TERMINATED T_BY expr | T_NULL T_DEFINED T_AS expr ; - + create_table_options_mssql_item : T_ON ident | T_TEXTIMAGE_ON ident @@ -344,28 +349,27 @@ create_table_options_mysql_item : | T_DEFAULT? (T_CHARACTER T_SET | T_CHARSET) T_EQUAL? expr | T_ENGINE T_EQUAL? expr ; - + alter_table_stmt : T_ALTER T_TABLE table_name alter_table_item ; - + alter_table_item : alter_table_add_constraint ; - + alter_table_add_constraint : T_ADD2 (T_CONSTRAINT ident)? alter_table_add_constraint_item ; - + alter_table_add_constraint_item : T_PRIMARY T_KEY T_CLUSTERED? T_OPEN_P ident (T_ASC | T_DESC)? (T_COMMA ident (T_ASC | T_DESC)?)* T_CLOSE_P T_ENABLE? index_storage_clause? | T_FOREIGN T_KEY T_OPEN_P ident (T_COMMA ident)* T_CLOSE_P T_REFERENCES table_name T_OPEN_P ident (T_COMMA ident)* T_CLOSE_P create_table_fk_action* | T_DEFAULT expr T_FOR ident ; - + dtype : // Data types T_CHAR - | T_CHARACTER | T_BIGINT | T_BINARY_DOUBLE | T_BINARY_FLOAT @@ -401,59 +405,59 @@ dtype : // Data types | T_VARCHAR | T_VARCHAR2 | T_XML - | ident ('%' (T_TYPE | T_ROWTYPE))? // User-defined or derived data type + | ident (T_PRECENT (T_TYPE | T_ROWTYPE))? // User-defined or derived data type ; - + dtype_len : // Data type length or size specification T_OPEN_P (L_INT | T_MAX) (T_CHAR | T_BYTE)? (T_COMMA L_INT)? T_CLOSE_P ; - + dtype_attr : T_NOT? T_NULL | T_CHARACTER T_SET ident | T_NOT? (T_CASESPECIFIC | T_CS) ; -dtype_default : +dtype_default : T_COLON? T_EQUAL expr | T_WITH? T_DEFAULT expr? ; - + create_database_stmt : - T_CREATE (T_DATABASE | T_SCHEMA) (T_IF T_NOT T_EXISTS)? expr create_database_option* + T_CREATE (T_DATABASE | T_SCHEMA) (T_IF T_NOT T_EXISTS)? expr create_database_option* ; create_database_option : T_COMMENT expr | T_LOCATION expr ; - -create_function_stmt : - (T_ALTER | T_CREATE (T_OR T_REPLACE)? | T_REPLACE)? T_FUNCTION ident create_routine_params? create_function_return (T_AS | T_IS)? declare_block_inplace? single_block_stmt + +create_function_stmt : + (T_ALTER | T_CREATE (T_OR T_REPLACE)? | T_REPLACE)? T_FUNCTION ident create_routine_params? create_function_return (T_AS | T_IS)? declare_block_inplace? single_block_stmt ; - + create_function_return : (T_RETURN | T_RETURNS) dtype dtype_len? ; - + create_package_stmt : - (T_ALTER | T_CREATE (T_OR T_REPLACE)? | T_REPLACE)? T_PACKAGE ident (T_AS | T_IS) package_spec T_END (ident T_SEMICOLON)? + (T_ALTER | T_CREATE (T_OR T_REPLACE)? | T_REPLACE)? T_PACKAGE ident (T_AS | T_IS) package_spec T_END (ident T_SEMICOLON)? ; - + package_spec : package_spec_item T_SEMICOLON (package_spec_item T_SEMICOLON)* ; package_spec_item : declare_stmt_item - | T_FUNCTION ident create_routine_params? create_function_return - | (T_PROCEDURE | T_PROC) ident create_routine_params? + | T_FUNCTION ident create_routine_params? create_function_return + | (T_PROCEDURE | T_PROC) ident create_routine_params? ; create_package_body_stmt : - (T_ALTER | T_CREATE (T_OR T_REPLACE)? | T_REPLACE)? T_PACKAGE T_BODY ident (T_AS | T_IS) package_body T_END (ident T_SEMICOLON)? + (T_ALTER | T_CREATE (T_OR T_REPLACE)? | T_REPLACE)? T_PACKAGE T_BODY ident (T_AS | T_IS) package_body T_END (ident T_SEMICOLON)? ; - + package_body : package_body_item T_SEMICOLON (package_body_item T_SEMICOLON)* ; @@ -461,37 +465,37 @@ package_body : package_body_item : declare_stmt_item | create_function_stmt - | create_procedure_stmt + | create_procedure_stmt ; - -create_procedure_stmt : - (T_ALTER | T_CREATE (T_OR T_REPLACE)? | T_REPLACE)? (T_PROCEDURE | T_PROC) ident create_routine_params? create_routine_options? (T_AS | T_IS)? declare_block_inplace? label? proc_block (ident T_SEMICOLON)? + +create_procedure_stmt : + (T_ALTER | T_CREATE (T_OR T_REPLACE)? | T_REPLACE)? (T_PROCEDURE | T_PROC) ident create_routine_params? create_routine_options? (T_AS | T_IS)? declare_block_inplace? label? proc_block (ident T_SEMICOLON)? ; create_routine_params : T_OPEN_P T_CLOSE_P | T_OPEN_P create_routine_param_item (T_COMMA create_routine_param_item)* T_CLOSE_P - | {!this._input.LT(1).getText().equalsIgnoreCase("IS") && - !this._input.LT(1).getText().equalsIgnoreCase("AS") && - !(this._input.LT(1).getText().equalsIgnoreCase("DYNAMIC") && this._input.LT(2).getText().equalsIgnoreCase("RESULT")) - }? - create_routine_param_item (T_COMMA create_routine_param_item)* + | {this._input.LT(1).text.toUpperCase() !== "IS" && + this._input.LT(1).text.toUpperCase() !== "AS" && + !(this._input.LT(1).text.toUpperCase() ==="DYNAMIC" && this._input.LT(2).text.toUpperCase() === "RESULT") + }? + create_routine_param_item (T_COMMA create_routine_param_item)* ; - + create_routine_param_item : - (T_IN | T_OUT | T_INOUT | T_IN T_OUT)? ident dtype dtype_len? dtype_attr* dtype_default? - | ident (T_IN | T_OUT | T_INOUT | T_IN T_OUT)? dtype dtype_len? dtype_attr* dtype_default? + (T_IN | T_OUT | T_INOUT | T_IN T_OUT)? ident dtype dtype_len? dtype_attr* dtype_default? + | ident (T_IN | T_OUT | T_INOUT | T_IN T_OUT)? dtype dtype_len? dtype_attr* dtype_default? ; - + create_routine_options : create_routine_option+ ; create_routine_option : - T_LANGUAGE T_SQL + T_LANGUAGE T_SQL | T_SQL T_SECURITY (T_CREATOR | T_DEFINER | T_INVOKER | T_OWNER) | T_DYNAMIC? T_RESULT T_SETS L_INT ; - + drop_stmt : // DROP statement T_DROP T_TABLE (T_IF T_EXISTS)? table_name | T_DROP (T_DATABASE | T_SCHEMA) (T_IF T_EXISTS)? expr @@ -501,26 +505,26 @@ end_transaction_stmt : T_END T_TRANSACTION ; -exec_stmt : // EXEC, EXECUTE IMMEDIATE statement +exec_stmt : // EXEC, EXECUTE IMMEDIATE statement (T_EXEC | T_EXECUTE) T_IMMEDIATE? expr (T_OPEN_P expr_func_params T_CLOSE_P | expr_func_params)? (T_INTO L_ID (T_COMMA L_ID)*)? using_clause? ; -if_stmt : // IF statement +if_stmt : // IF statement if_plsql_stmt - | if_tsql_stmt + | if_tsql_stmt | if_bteq_stmt ; -if_plsql_stmt : - T_IF bool_expr T_THEN block elseif_block* else_block? T_END T_IF +if_plsql_stmt : + T_IF bool_expr T_THEN block elseif_block* else_block? T_END T_IF ; -if_tsql_stmt : - T_IF bool_expr single_block_stmt (T_ELSE single_block_stmt)? +if_tsql_stmt : + T_IF bool_expr single_block_stmt (T_ELSE single_block_stmt)? ; - + if_bteq_stmt : - '.' T_IF bool_expr T_THEN single_block_stmt + T_DOT T_IF bool_expr T_THEN single_block_stmt ; elseif_block : @@ -529,20 +533,20 @@ elseif_block : else_block : T_ELSE block - ; - + ; + include_stmt : // INCLUDE statement T_INCLUDE (file_name | expr) - ; - + ; + insert_stmt : // INSERT statement T_INSERT (T_OVERWRITE T_TABLE | T_INTO T_TABLE?) table_name insert_stmt_cols? (select_stmt | insert_stmt_rows) ; - + insert_stmt_cols : - T_OPEN_P ident (T_COMMA ident)* T_CLOSE_P + T_OPEN_P ident (T_COMMA ident)* T_CLOSE_P ; - + insert_stmt_rows : T_VALUES insert_stmt_row (T_COMMA insert_stmt_row)* ; @@ -554,20 +558,20 @@ insert_stmt_row: insert_directory_stmt : T_INSERT T_OVERWRITE T_LOCAL? T_DIRECTORY expr_file expr_select ; - + exit_stmt : T_EXIT L_ID? (T_WHEN bool_expr)? ; - + get_diag_stmt : // GET DIAGNOSTICS statement T_GET T_DIAGNOSTICS get_diag_stmt_item ; - + get_diag_stmt_item : get_diag_stmt_exception_item | get_diag_stmt_rowcount_item ; - + get_diag_stmt_exception_item : T_EXCEPTION L_INT ident T_EQUAL T_MESSAGE_TEXT ; @@ -575,23 +579,23 @@ get_diag_stmt_exception_item : get_diag_stmt_rowcount_item : ident T_EQUAL T_ROW_COUNT ; - -grant_stmt : + +grant_stmt : T_GRANT grant_stmt_item (T_COMMA grant_stmt_item)* T_TO T_ROLE ident ; - + grant_stmt_item : T_EXECUTE T_ON T_PROCEDURE ident ; - + leave_stmt : T_LEAVE L_ID? ; - + map_object_stmt : T_MAP T_OBJECT expr (T_TO expr)? (T_AT expr)? ; - + open_stmt : // OPEN cursor statement T_OPEN L_ID (T_FOR (select_stmt | expr))? ; @@ -599,43 +603,43 @@ open_stmt : // OPEN cursor statement fetch_stmt : // FETCH cursor statement T_FETCH T_FROM? L_ID T_INTO L_ID (T_COMMA L_ID)* ; - + collect_stats_stmt : T_COLLECT (T_STATISTICS | T_STATS) T_ON table_name collect_stats_clause? ; - + collect_stats_clause : T_COLUMN T_OPEN_P ident (T_COMMA ident)* T_CLOSE_P ; - + close_stmt : // CLOSE cursor statement T_CLOSE L_ID ; - + cmp_stmt : // CMP statement T_CMP (T_ROW_COUNT | T_SUM) cmp_source T_COMMA cmp_source ; - + cmp_source : (table_name where_clause? | T_OPEN_P select_stmt T_CLOSE_P) (T_AT ident)? ; - + copy_from_local_stmt : // COPY FROM LOCAL statement T_COPY T_FROM T_LOCAL copy_source (T_COMMA copy_source)* T_TO copy_target copy_file_option* ; - + copy_stmt : // COPY statement T_COPY (table_name | T_OPEN_P select_stmt T_CLOSE_P) T_TO T_HDFS? copy_target copy_option* ; - + copy_source : - (file_name | expr) + (file_name | expr) ; copy_target : - (file_name | expr) + (file_name | expr) ; - + copy_option : T_AT ident | T_BATCHSIZE expr @@ -648,75 +652,75 @@ copy_file_option : | T_IGNORE | T_OVERWRITE ; - + commit_stmt : // COMMIT statement T_COMMIT T_WORK? ; - + create_index_stmt : // CREATE INDEX statement T_CREATE T_UNIQUE? T_INDEX ident T_ON table_name T_OPEN_P create_index_col (T_COMMA create_index_col)* T_CLOSE_P ; - -create_index_col : + +create_index_col : ident (T_ASC | T_DESC)? ; - + index_storage_clause : index_mssql_storage_clause ; - + index_mssql_storage_clause : T_WITH T_OPEN_P ident T_EQUAL ident (T_COMMA ident T_EQUAL ident)* T_CLOSE_P create_table_options_mssql_item* ; - -print_stmt : // PRINT statement + +print_stmt : // PRINT statement T_PRINT expr | T_PRINT T_OPEN_P expr T_CLOSE_P ; quit_stmt : - '.'? T_QUIT expr? + T_DOT? T_QUIT expr? ; - + raise_stmt : T_RAISE ; - + resignal_stmt : // RESIGNAL statement T_RESIGNAL (T_SQLSTATE T_VALUE? expr (T_SET T_MESSAGE_TEXT T_EQUAL expr)? )? ; - + return_stmt : // RETURN statement T_RETURN expr? ; - + rollback_stmt : // ROLLBACK statement T_ROLLBACK T_WORK? ; - -set_session_option : + +set_session_option : set_current_schema_option | set_mssql_session_option | set_teradata_session_option ; -set_current_schema_option : +set_current_schema_option : ((T_CURRENT? T_SCHEMA) | T_CURRENT_SCHEMA) T_EQUAL? expr ; - + set_mssql_session_option : - ( T_ANSI_NULLS + ( T_ANSI_NULLS | T_ANSI_PADDING | T_NOCOUNT | T_QUOTED_IDENTIFIER | T_XACT_ABORT ) (T_ON | T_OFF) ; - + set_teradata_session_option : T_QUERY_BAND T_EQUAL (expr | T_NONE) T_UPDATE? T_FOR (T_TRANSACTION | T_SESSION) ; - + signal_stmt : // SIGNAL statement T_SIGNAL ident ; @@ -724,7 +728,7 @@ signal_stmt : // SIGNAL statement summary_stmt : // SUMMARY statement T_SUMMARY (T_TOP expr)? T_FOR (select_stmt | table_name where_clause? (T_LIMIT expr)?) ; - + truncate_stmt : T_TRUNCATE T_TABLE? table_name ; @@ -732,23 +736,23 @@ truncate_stmt : use_stmt : // USE statement T_USE expr ; - + values_into_stmt : // VALUES INTO statement - T_VALUES T_OPEN_P? expr (T_COMMA expr)* T_CLOSE_P? T_INTO T_OPEN_P? ident (T_COMMA ident)* T_CLOSE_P? + T_VALUES T_OPEN_P? expr (T_COMMA expr)* T_CLOSE_P? T_INTO T_OPEN_P? ident (T_COMMA ident)* T_CLOSE_P? ; while_stmt : // WHILE loop statement - T_WHILE bool_expr (T_DO | T_LOOP | T_THEN | T_BEGIN) block T_END (T_WHILE | T_LOOP)? + T_WHILE bool_expr (T_DO | T_LOOP | T_THEN | T_BEGIN) block T_END (T_WHILE | T_LOOP)? ; for_cursor_stmt : // FOR (cursor) statement T_FOR L_ID T_IN T_OPEN_P? select_stmt T_CLOSE_P? T_LOOP block T_END T_LOOP ; - + for_range_stmt : // FOR (Integer range) statement T_FOR L_ID T_IN T_REVERSE? expr T_DOT2 expr ((T_BY | T_STEP) expr)? T_LOOP block T_END T_LOOP ; - + label : L_LABEL | T_LESS T_LESS L_ID T_GREATER T_GREATER @@ -759,26 +763,26 @@ using_clause : // USING var,... clause ; select_stmt : // SELECT statement - cte_select_stmt? fullselect_stmt + cte_select_stmt? fullselect_stmt ; - + cte_select_stmt : T_WITH cte_select_stmt_item (T_COMMA cte_select_stmt_item)* ; - + cte_select_stmt_item : ident cte_select_cols? T_AS T_OPEN_P fullselect_stmt T_CLOSE_P ; - + cte_select_cols : T_OPEN_P ident (T_COMMA ident)* T_CLOSE_P ; - -fullselect_stmt : - fullselect_stmt_item (fullselect_set_clause fullselect_stmt_item)* + +fullselect_stmt : + fullselect_stmt_item (fullselect_set_clause fullselect_stmt_item)* ; -fullselect_stmt_item : +fullselect_stmt_item : subselect_stmt | T_OPEN_P fullselect_stmt T_CLOSE_P ; @@ -786,116 +790,117 @@ fullselect_stmt_item : fullselect_set_clause : T_UNION T_ALL? | T_EXCEPT T_ALL? - | T_INTERSECT T_ALL? + | T_INTERSECT T_ALL? ; - -subselect_stmt : + +subselect_stmt : (T_SELECT | T_SEL) select_list into_clause? from_clause? where_clause? group_by_clause? (having_clause | qualify_clause)? order_by_clause? select_options? ; -select_list : +select_list : select_list_set? select_list_limit? select_list_item (T_COMMA select_list_item)* ; select_list_set : - T_ALL + T_ALL | T_DISTINCT ; - -select_list_limit : + +select_list_limit : T_TOP expr ; select_list_item : - ((ident T_EQUAL)? expr select_list_alias? | select_list_asterisk) + ((ident T_EQUAL)? expr select_list_alias? | select_list_asterisk) ; - + select_list_alias : - {!this._input.LT(1).getText().equalsIgnoreCase("INTO") && !this._input.LT(1).getText().equalsIgnoreCase("FROM")}? T_AS? ident + {this._input.LT(1).text.toUpperCase() !== "INTO" && this._input.LT(1).text.toUpperCase() !== "FROM"}? T_AS? ident | T_OPEN_P T_TITLE L_S_STRING T_CLOSE_P ; - + select_list_asterisk : - (L_ID '.')? '*' + (L_ID '.')? '*' ; - + into_clause : T_INTO ident (T_COMMA ident)* ; - -from_clause : + +from_clause : T_FROM from_table_clause (from_join_clause)* ; - + from_table_clause : from_table_name_clause | from_subselect_clause | from_table_values_clause ; - + from_table_name_clause : table_name from_alias_clause? - ; + ; from_subselect_clause : T_OPEN_P select_stmt T_CLOSE_P from_alias_clause? ; - + from_join_clause : T_COMMA from_table_clause | from_join_type_clause from_table_clause T_ON bool_expr ; - + from_join_type_clause : T_INNER? T_JOIN | (T_LEFT | T_RIGHT | T_FULL) T_OUTER? T_JOIN ; - + from_table_values_clause: T_TABLE T_OPEN_P T_VALUES from_table_values_row (T_COMMA from_table_values_row)* T_CLOSE_P from_alias_clause? ; - + from_table_values_row: expr - | T_OPEN_P expr (T_COMMA expr)* T_CLOSE_P + | T_OPEN_P expr (T_COMMA expr)* T_CLOSE_P ; from_alias_clause : - {!this._input.LT(1).getText().equalsIgnoreCase("EXEC") && - !this._input.LT(1).getText().equalsIgnoreCase("EXECUTE") && - !this._input.LT(1).getText().equalsIgnoreCase("INNER") && - !this._input.LT(1).getText().equalsIgnoreCase("LEFT") && - !this._input.LT(1).getText().equalsIgnoreCase("GROUP") && - !this._input.LT(1).getText().equalsIgnoreCase("ORDER") && - !this._input.LT(1).getText().equalsIgnoreCase("LIMIT") && - !this._input.LT(1).getText().equalsIgnoreCase("WITH")}? - T_AS? ident (T_OPEN_P L_ID (T_COMMA L_ID)* T_CLOSE_P)? + {this._input.LT(1).text.toUpperCase() !== "EXEC" && + this._input.LT(1).text.toUpperCase() !== "EXECUTE" && + this._input.LT(1).text.toUpperCase() !== "INNER" && + this._input.LT(1).text.toUpperCase() !== "LEFT" && + this._input.LT(1).text.toUpperCase() !== "GROUP" && + this._input.LT(1).text.toUpperCase() !== "ORDER" && + this._input.LT(1).text.toUpperCase() !== "LIMIT" && + this._input.LT(1).text.toUpperCase() !== "WITH" && + this._input.LT(1).text.toUpperCase() !== "JOIN"}? + T_AS? ident (T_OPEN_P L_ID (T_COMMA L_ID)* T_CLOSE_P)? ; - + table_name : ident ; - -where_clause : + +where_clause : T_WHERE bool_expr ; - + group_by_clause : T_GROUP T_BY expr (T_COMMA expr)* ; - -having_clause : + +having_clause : T_HAVING bool_expr - ; - -qualify_clause : + ; + +qualify_clause : T_QUALIFY bool_expr - ; + ; order_by_clause : T_ORDER T_BY expr (T_ASC | T_DESC)? (T_COMMA expr (T_ASC | T_DESC)?)* ; - + select_options : select_options_item+ ; @@ -908,54 +913,54 @@ select_options_item : update_stmt : // UPDATE statement T_UPDATE update_table T_SET update_assignment where_clause? update_upsert? ; - + update_assignment : assignment_stmt_item (T_COMMA assignment_stmt_item)* ; update_table : (table_name from_clause? | T_OPEN_P select_stmt T_CLOSE_P) (T_AS? ident)? - ; - + ; + update_upsert : T_ELSE insert_stmt ; - + merge_stmt : // MERGE statement T_MERGE T_INTO merge_table T_USING merge_table T_ON bool_expr merge_condition+ ; - + merge_table : (table_name | (T_OPEN_P select_stmt T_CLOSE_P)) (T_AS? ident)? - ; - + ; + merge_condition : T_WHEN T_NOT? T_MATCHED (T_AND bool_expr)? T_THEN merge_action | T_ELSE T_IGNORE ; - + merge_action : - T_INSERT insert_stmt_cols? T_VALUES insert_stmt_row - | T_UPDATE T_SET assignment_stmt_item (T_COMMA assignment_stmt_item)* where_clause? + T_INSERT insert_stmt_cols? T_VALUES insert_stmt_row + | T_UPDATE T_SET assignment_stmt_item (T_COMMA assignment_stmt_item)* where_clause? | T_DELETE ; - -delete_stmt : + +delete_stmt : T_DELETE T_FROM? table_name delete_alias? (where_clause | T_ALL)? ; delete_alias : - {!this._input.LT(1).getText().equalsIgnoreCase("ALL")}? + {this._input.LT(1).text.toUpperCase() !== "ALL"}? T_AS? ident ; - + describe_stmt : - (T_DESCRIBE | T_DESC) T_TABLE? table_name + (T_DESCRIBE | T_DESC) T_TABLE? table_name ; - + bool_expr : // Boolean condition - T_NOT? T_OPEN_P bool_expr T_CLOSE_P - | bool_expr bool_expr_logical_operator bool_expr + T_NOT? T_OPEN_P bool_expr T_CLOSE_P + | bool_expr bool_expr_logical_operator bool_expr | bool_expr_atom ; @@ -964,7 +969,7 @@ bool_expr_atom : | bool_expr_binary | expr ; - + bool_expr_unary : expr T_IS T_NOT? T_NULL | expr T_BETWEEN expr T_AND expr @@ -972,88 +977,88 @@ bool_expr_unary : | bool_expr_single_in | bool_expr_multi_in ; - + bool_expr_single_in : - expr T_NOT? T_IN T_OPEN_P ((expr (T_COMMA expr)*) | select_stmt) T_CLOSE_P + expr T_NOT? T_IN T_OPEN_P ((expr (T_COMMA expr)*) | select_stmt) T_CLOSE_P ; bool_expr_multi_in : - T_OPEN_P expr (T_COMMA expr)* T_CLOSE_P T_NOT? T_IN T_OPEN_P select_stmt T_CLOSE_P + T_OPEN_P expr (T_COMMA expr)* T_CLOSE_P T_NOT? T_IN T_OPEN_P select_stmt T_CLOSE_P ; - + bool_expr_binary : expr bool_expr_binary_operator expr ; - + bool_expr_logical_operator : - T_AND + T_AND | T_OR - ; + ; bool_expr_binary_operator : - T_EQUAL - | T_EQUAL2 - | T_NOTEQUAL - | T_NOTEQUAL2 - | T_LESS - | T_LESSEQUAL - | T_GREATER - | T_GREATEREQUAL + T_EQUAL + | T_EQUAL2 + | T_NOTEQUAL + | T_NOTEQUAL2 + | T_LESS + | T_LESSEQUAL + | T_GREATER + | T_GREATEREQUAL | T_NOT? (T_LIKE | T_RLIKE | T_REGEXP) ; expr : expr interval_item - | expr T_MUL expr - | expr T_DIV expr - | expr T_ADD expr - | expr T_SUB expr - | T_OPEN_P select_stmt T_CLOSE_P - | T_OPEN_P expr T_CLOSE_P - | expr_interval + | expr T_MUL expr + | expr T_DIV expr + | expr T_ADD expr + | expr T_SUB expr + | T_OPEN_P select_stmt T_CLOSE_P + | T_OPEN_P expr T_CLOSE_P + | expr_interval | expr_concat | expr_case | expr_cursor_attribute | expr_agg_window_func | expr_spec_func - | expr_func - | expr_atom + | expr_func + | expr_atom ; -expr_atom : +expr_atom : date_literal | timestamp_literal | bool_literal - | ident + | ident | string | dec_number | int_number | null_const ; - + expr_interval : - T_INTERVAL expr interval_item + T_INTERVAL expr interval_item ; interval_item : - T_DAY + T_DAY | T_DAYS - | T_MICROSECOND - | T_MICROSECONDS - | T_SECOND - | T_SECONDS + | T_MICROSECOND + | T_MICROSECONDS + | T_SECOND + | T_SECONDS ; - + expr_concat : // String concatenation operator expr_concat_item (T_PIPE | T_CONCAT) expr_concat_item ((T_PIPE | T_CONCAT) expr_concat_item)* ; - -expr_concat_item : - T_OPEN_P expr T_CLOSE_P + +expr_concat_item : + T_OPEN_P expr T_CLOSE_P | expr_case | expr_agg_window_func | expr_spec_func - | expr_func - | expr_atom + | expr_func + | expr_atom ; expr_case : // CASE expression @@ -1061,18 +1066,18 @@ expr_case : // CASE expression | expr_case_searched ; -expr_case_simple : +expr_case_simple : T_CASE expr (T_WHEN expr T_THEN expr)+ (T_ELSE expr)? T_END ; -expr_case_searched : +expr_case_searched : T_CASE (T_WHEN bool_expr T_THEN expr)+ (T_ELSE expr)? T_END ; - + expr_cursor_attribute : - ident '%' (T_ISOPEN | T_FOUND | T_NOTFOUND) + ident T_PRECENT (T_ISOPEN | T_FOUND | T_NOTFOUND) ; - + expr_agg_window_func : T_AVG T_OPEN_P expr_func_all_distinct? expr T_CLOSE_P expr_func_over_clause? | T_COUNT T_OPEN_P ((expr_func_all_distinct? expr) | '*') T_CLOSE_P expr_func_over_clause? @@ -1087,95 +1092,95 @@ expr_agg_window_func : | T_MIN T_OPEN_P expr_func_all_distinct? expr T_CLOSE_P expr_func_over_clause? | T_RANK T_OPEN_P T_CLOSE_P expr_func_over_clause | T_ROW_NUMBER T_OPEN_P T_CLOSE_P expr_func_over_clause - | T_STDEV T_OPEN_P expr_func_all_distinct? expr T_CLOSE_P expr_func_over_clause? + | T_STDEV T_OPEN_P expr_func_all_distinct? expr T_CLOSE_P expr_func_over_clause? | T_SUM T_OPEN_P expr_func_all_distinct? expr T_CLOSE_P expr_func_over_clause? | T_VAR T_OPEN_P expr_func_all_distinct? expr T_CLOSE_P expr_func_over_clause? | T_VARIANCE T_OPEN_P expr_func_all_distinct? expr T_CLOSE_P expr_func_over_clause? - ; + ; expr_func_all_distinct : - T_ALL - | T_DISTINCT - ; + T_ALL + | T_DISTINCT + ; expr_func_over_clause : T_OVER T_OPEN_P expr_func_partition_by_clause? order_by_clause? T_CLOSE_P - ; + ; expr_func_partition_by_clause : T_PARTITION T_BY expr (T_COMMA expr)* - ; - -expr_spec_func : + ; + +expr_spec_func : T_ACTIVITY_COUNT | T_CAST T_OPEN_P expr T_AS dtype dtype_len? T_CLOSE_P | T_COUNT T_OPEN_P (expr | '*') T_CLOSE_P | T_CURRENT_DATE | T_CURRENT T_DATE | (T_CURRENT_TIMESTAMP | T_CURRENT T_TIMESTAMP) (T_OPEN_P expr T_CLOSE_P)? | T_CURRENT_USER | T_CURRENT T_USER - | T_MAX_PART_STRING T_OPEN_P expr (T_COMMA expr (T_COMMA expr T_EQUAL expr)*)? T_CLOSE_P - | T_MIN_PART_STRING T_OPEN_P expr (T_COMMA expr (T_COMMA expr T_EQUAL expr)*)? T_CLOSE_P - | T_MAX_PART_INT T_OPEN_P expr (T_COMMA expr (T_COMMA expr T_EQUAL expr)*)? T_CLOSE_P - | T_MIN_PART_INT T_OPEN_P expr (T_COMMA expr (T_COMMA expr T_EQUAL expr)*)? T_CLOSE_P - | T_MAX_PART_DATE T_OPEN_P expr (T_COMMA expr (T_COMMA expr T_EQUAL expr)*)? T_CLOSE_P - | T_MIN_PART_DATE T_OPEN_P expr (T_COMMA expr (T_COMMA expr T_EQUAL expr)*)? T_CLOSE_P - | T_PART_COUNT T_OPEN_P expr (T_COMMA expr T_EQUAL expr)* T_CLOSE_P - | T_PART_LOC T_OPEN_P expr (T_COMMA expr T_EQUAL expr)+ (T_COMMA expr)? T_CLOSE_P + | T_MAX_PART_STRING T_OPEN_P expr (T_COMMA expr (T_COMMA expr T_EQUAL expr)*)? T_CLOSE_P + | T_MIN_PART_STRING T_OPEN_P expr (T_COMMA expr (T_COMMA expr T_EQUAL expr)*)? T_CLOSE_P + | T_MAX_PART_INT T_OPEN_P expr (T_COMMA expr (T_COMMA expr T_EQUAL expr)*)? T_CLOSE_P + | T_MIN_PART_INT T_OPEN_P expr (T_COMMA expr (T_COMMA expr T_EQUAL expr)*)? T_CLOSE_P + | T_MAX_PART_DATE T_OPEN_P expr (T_COMMA expr (T_COMMA expr T_EQUAL expr)*)? T_CLOSE_P + | T_MIN_PART_DATE T_OPEN_P expr (T_COMMA expr (T_COMMA expr T_EQUAL expr)*)? T_CLOSE_P + | T_PART_COUNT T_OPEN_P expr (T_COMMA expr T_EQUAL expr)* T_CLOSE_P + | T_PART_LOC T_OPEN_P expr (T_COMMA expr T_EQUAL expr)+ (T_COMMA expr)? T_CLOSE_P | T_TRIM T_OPEN_P expr T_CLOSE_P | T_SUBSTRING T_OPEN_P expr T_FROM expr (T_FOR expr)? T_CLOSE_P | T_SYSDATE | T_USER ; - -expr_func : - ident T_OPEN_P expr_func_params? T_CLOSE_P + +expr_func : + ident T_OPEN_P expr_func_params? T_CLOSE_P ; -expr_func_params : - func_param (T_COMMA func_param)* +expr_func_params : + func_param (T_COMMA func_param)* + ; + +func_param : + {this._input.LT(1).text.toUpperCase() !== "INTO"}? (ident T_EQUAL T_GREATER?)? expr ; -func_param : - {!this._input.LT(1).getText().equalsIgnoreCase("INTO")}? (ident T_EQUAL T_GREATER?)? expr - ; - expr_select : select_stmt | expr ; - + expr_file : file_name | expr ; - + hive : T_HIVE hive_item* ; hive_item : T_SUB ident expr - | T_SUB ident L_ID T_EQUAL expr + | T_SUB ident L_ID T_EQUAL expr | T_SUB ident - ; + ; -host : - '!' host_cmd ';' // OS command +host : + T_NOTE host_cmd ';' // OS command | host_stmt ; -host_cmd : - .*? +host_cmd : + .*? ; - -host_stmt : - T_HOST expr + +host_stmt : + T_HOST expr ; - + file_name : - L_FILE | ('/' | '.' '/')? ident ('/' ident)* + L_FILE | ('/' | T_DOT '/')? ident ('/' ident)* ; - + date_literal : // DATE 'YYYY-MM-DD' literal T_DATE string ; @@ -1183,11 +1188,11 @@ date_literal : // DATE 'YYYY-MM-DD' literal timestamp_literal : // TIMESTAMP 'YYYY-MM-DD HH:MI:SS.FFF' literal T_TIMESTAMP string ; - + ident : - '-'? (L_ID | non_reserved_words) ('.' (L_ID | non_reserved_words))* + (L_ID | non_reserved_words) (T_DOT (L_ID | non_reserved_words))* ; - + string : // String literal (single or double quoted) L_S_STRING # single_quotedString | L_D_STRING # double_quotedString @@ -1200,91 +1205,91 @@ int_number : // Integer (positive or negative) dec_number : // Decimal number (positive or negative) ('-' | '+')? L_DEC ; - + bool_literal : // Boolean literal T_TRUE | T_FALSE ; - + null_const : // NULL constant T_NULL ; non_reserved_words : // Tokens that are not reserved words and can be used as identifiers - T_ACTION + T_ACTION | T_ACTIVITY_COUNT | T_ADD2 - | T_ALL + | T_ALL | T_ALLOCATE | T_ALTER | T_AND | T_ANSI_NULLS | T_ANSI_PADDING - | T_AS - | T_ASC - | T_ASSOCIATE + | T_AS + | T_ASC + | T_ASSOCIATE | T_AT | T_AUTO_INCREMENT | T_AVG | T_BATCHSIZE - | T_BEGIN + | T_BEGIN | T_BETWEEN - | T_BIGINT + | T_BIGINT | T_BINARY_DOUBLE | T_BINARY_FLOAT | T_BIT | T_BODY - | T_BREAK - | T_BY + | T_BREAK + | T_BY | T_BYTE - | T_CALL - | T_CALLER - | T_CASCADE - | T_CASE + | T_CALL + | T_CALLER + | T_CASCADE + | T_CASE | T_CASESPECIFIC | T_CAST - | T_CHAR - | T_CHARACTER - | T_CHARSET - | T_CLIENT - | T_CLOSE + | T_CHAR + | T_CHARACTER + | T_CHARSET + | T_CLIENT + | T_CLOSE | T_CLUSTERED | T_CMP | T_COLLECT - | T_COLLECTION + | T_COLLECTION | T_COLUMN - | T_COMMENT - | T_COMPRESS - | T_CONSTANT + | T_COMMENT + | T_COMPRESS + | T_CONSTANT | T_COPY | T_COMMIT - | T_CONCAT + | T_CONCAT | T_CONDITION | T_CONSTRAINT | T_CONTINUE - | T_COUNT - | T_COUNT_BIG + | T_COUNT + | T_COUNT_BIG | T_CREATE | T_CREATION | T_CREATOR | T_CS | T_CUME_DIST - | T_CURRENT + | T_CURRENT | T_CURRENT_DATE | T_CURRENT_SCHEMA | T_CURRENT_TIMESTAMP | T_CURRENT_USER - | T_CURSOR + | T_CURSOR | T_DATA | T_DATABASE - | T_DATE - | T_DATETIME + | T_DATE + | T_DATETIME | T_DAY | T_DAYS - | T_DEC - | T_DECIMAL - | T_DECLARE - | T_DEFAULT + | T_DEC + | T_DECIMAL + | T_DECLARE + | T_DEFAULT | T_DEFERRED | T_DEFINED | T_DEFINER @@ -1293,106 +1298,106 @@ non_reserved_words : // Tokens that are not reserved words | T_DELIMITED | T_DELIMITER | T_DENSE_RANK - | T_DESC - | T_DESCRIBE + | T_DESC + | T_DESCRIBE | T_DIAGNOSTICS | T_DIR | T_DIRECTORY - | T_DISTINCT + | T_DISTINCT | T_DISTRIBUTE - | T_DO - | T_DOUBLE - | T_DROP - | T_DYNAMIC - // T_ELSE reserved word - // T_ELSEIF reserved word - // T_ELSIF reserved word + | T_DO + | T_DOUBLE + | T_DROP + | T_DYNAMIC + // T_ELSE reserved word + // T_ELSEIF reserved word + // T_ELSIF reserved word // T_END reserved word | T_ENABLE - | T_ENGINE - | T_ESCAPED - | T_EXCEPT - | T_EXEC - | T_EXECUTE - | T_EXCEPTION - | T_EXCLUSIVE + | T_ENGINE + | T_ESCAPED + | T_EXCEPT + | T_EXEC + | T_EXECUTE + | T_EXCEPTION + | T_EXCLUSIVE | T_EXISTS - | T_EXIT - | T_FALLBACK - | T_FALSE - | T_FETCH + | T_EXIT + | T_FALLBACK + | T_FALSE + | T_FETCH | T_FIELDS - | T_FILE - | T_FILES - | T_FIRST_VALUE - | T_FLOAT - | T_FOR + | T_FILE + | T_FILES + | T_FIRST_VALUE + | T_FLOAT + | T_FOR | T_FOREIGN - | T_FORMAT - | T_FOUND - | T_FROM - | T_FULL + | T_FORMAT + | T_FOUND + | T_FROM + | T_FULL | T_FUNCTION | T_GET | T_GLOBAL | T_GO | T_GRANT - | T_GROUP - | T_HANDLER + | T_GROUP + | T_HANDLER | T_HASH - | T_HAVING + | T_HAVING | T_HDFS - | T_HIVE - | T_HOST - | T_IDENTITY - | T_IF - | T_IGNORE - | T_IMMEDIATE - | T_IN + | T_HIVE + | T_HOST + | T_IDENTITY + | T_IF + | T_IGNORE + | T_IMMEDIATE + | T_IN | T_INCLUDE - | T_INDEX + | T_INDEX | T_INITRANS | T_INNER | T_INOUT | T_INSERT - | T_INT + | T_INT | T_INT2 | T_INT4 | T_INT8 - | T_INTEGER - | T_INTERSECT - | T_INTERVAL - | T_INTO - | T_INVOKER - | T_ITEMS - | T_IS + | T_INTEGER + | T_INTERSECT + | T_INTERVAL + | T_INTO + | T_INVOKER + | T_ITEMS + | T_IS | T_ISOPEN - | T_JOIN - | T_KEEP + | T_JOIN + | T_KEEP | T_KEY | T_KEYS | T_LAG | T_LANGUAGE | T_LAST_VALUE | T_LEAD - | T_LEAVE - | T_LEFT - | T_LIKE - | T_LIMIT - | T_LINES - | T_LOCAL - | T_LOCATION + | T_LEAVE + | T_LEFT + | T_LIKE + | T_LIMIT + | T_LINES + | T_LOCAL + | T_LOCATION | T_LOCATOR | T_LOCATORS | T_LOCKS | T_LOG - | T_LOGGED - | T_LOGGING - | T_LOOP - | T_MAP - | T_MATCHED - | T_MAX - | T_MAXTRANS + | T_LOGGED + | T_LOGGING + | T_LOOP + | T_MAP + | T_MATCHED + | T_MAX + | T_MAXTRANS | T_MERGE | T_MESSAGE_TEXT | T_MICROSECOND @@ -1407,58 +1412,58 @@ non_reserved_words : // Tokens that are not reserved words | T_NOCOUNT | T_NOLOGGING | T_NONE - | T_NOT - | T_NOTFOUND - // T_NULL reserved word + | T_NOT + | T_NOTFOUND + // T_NULL reserved word | T_NUMERIC - | T_NUMBER - | T_OBJECT - | T_OFF + | T_NUMBER + | T_OBJECT + | T_OFF | T_ON | T_ONLY - | T_OPEN - | T_OR - | T_ORDER - | T_OUT + | T_OPEN + | T_OR + | T_ORDER + | T_OUT | T_OUTER | T_OVER | T_OVERWRITE | T_OWNER | T_PACKAGE | T_PART_COUNT - | T_PART_LOC - | T_PARTITION + | T_PART_LOC + | T_PARTITION | T_PCTFREE - | T_PCTUSED - | T_PRECISION + | T_PCTUSED + | T_PRECISION | T_PRESERVE | T_PRIMARY - | T_PRINT + | T_PRINT | T_PROC - | T_PROCEDURE - | T_PWD + | T_PROCEDURE + | T_PWD | T_QUALIFY | T_QUERY_BAND | T_QUIT | T_QUOTED_IDENTIFIER | T_RAISE - | T_RANK + | T_RANK | T_REAL - | T_REFERENCES + | T_REFERENCES | T_REGEXP - | T_RR + | T_RR | T_REPLACE | T_RESIGNAL | T_RESTRICT | T_RESULT | T_RESULT_SET_LOCATOR - | T_RETURN + | T_RETURN | T_RETURNS - | T_REVERSE + | T_REVERSE | T_RIGHT | T_RLIKE - | T_RS - | T_ROLE + | T_RS + | T_ROLE | T_ROLLBACK | T_ROW | T_ROWS @@ -1469,72 +1474,73 @@ non_reserved_words : // Tokens that are not reserved words | T_SECONDS | T_SECURITY | T_SEGMENT - | T_SEL - | T_SELECT - | T_SESSION + | T_SEL + | T_SELECT + | T_SESSION | T_SESSIONS - | T_SET - | T_SETS + | T_SET + | T_SETS | T_SHARE | T_SIGNAL | T_SIMPLE_DOUBLE | T_SIMPLE_FLOAT | T_SMALLDATETIME - | T_SMALLINT + | T_SMALLINT | T_SQL - | T_SQLEXCEPTION + | T_SQLEXCEPTION | T_SQLINSERT | T_SQLSTATE - | T_SQLWARNING + | T_SQLWARNING | T_STATS - | T_STATISTICS - | T_STEP - | T_STDEV + | T_STATISTICS + | T_STEP + | T_STDEV | T_STORAGE | T_STORED - | T_STRING - | T_SUBDIR + | T_STRING + | T_SUBDIR | T_SUBSTRING | T_SUM | T_SUMMARY - | T_SYSDATE - | T_SYS_REFCURSOR + | T_SYSDATE + | T_SYS_REFCURSOR | T_TABLE | T_TABLESPACE | T_TEMPORARY | T_TERMINATED | T_TEXTIMAGE_ON - | T_THEN - | T_TIMESTAMP + | T_THEN + | T_TIMESTAMP | T_TITLE - | T_TO + | T_TO | T_TOP | T_TRANSACTION | T_TRIM | T_TRUE | T_TRUNCATE - // T_UNION reserved word - | T_UNIQUE - | T_UPDATE - | T_UR - | T_USE - | T_USER - | T_USING + // T_UNION reserved word + | T_UNIQUE + | T_UPDATE + | T_UR + | T_USE + | T_USER + | T_USING | T_VALUE | T_VALUES | T_VAR - | T_VARCHAR + | T_VARCHAR | T_VARCHAR2 | T_VARYING | T_VARIANCE | T_VOLATILE - // T_WHEN reserved word - // T_WHERE reserved word - | T_WHILE - | T_WITH - | T_WITHOUT + // T_WHEN reserved word + // T_WHERE reserved word + | T_WHILE + | T_WITH + | T_WITHOUT | T_WORK | T_XACT_ABORT | T_XML | T_YES ; + diff --git a/src/grammar/hive/HiveSqlLexer.g4 b/src/grammar/hive/HiveSqlLexer.g4 index d322ba1..59cf669 100644 --- a/src/grammar/hive/HiveSqlLexer.g4 +++ b/src/grammar/hive/HiveSqlLexer.g4 @@ -1,7 +1,8 @@ + lexer grammar HiveSqlLexer; // Lexer rules -T_ACTION : A C T I O N ; +T_ACTION : A C T I O N ; T_ADD2 : A D D ; T_ALL : A L L ; T_ALLOCATE : A L L O C A T E ; @@ -11,27 +12,27 @@ T_ANSI_NULLS : A N S I '_' N U L L S ; T_ANSI_PADDING : A N S I '_' P A D D I N G ; T_AS : A S ; T_ASC : A S C ; -T_ASSOCIATE : A S S O C I A T E ; +T_ASSOCIATE : A S S O C I A T E ; T_AT : A T ; T_AUTO_INCREMENT : A U T O '_' I N C R E M E N T ; -T_AVG : A V G ; +T_AVG : A V G ; T_BATCHSIZE : B A T C H S I Z E ; T_BEGIN : B E G I N ; -T_BETWEEN : B E T W E E N ; +T_BETWEEN : B E T W E E N ; T_BIGINT : B I G I N T ; T_BINARY_DOUBLE : B I N A R Y '_' D O U B L E ; T_BINARY_FLOAT : B I N A R Y '_' F L O A T ; T_BINARY_INTEGER : B I N A R Y '_' I N T E G E R ; T_BIT : B I T ; -T_BODY : B O D Y ; +T_BODY : B O D Y ; T_BREAK : B R E A K ; T_BY : B Y ; -T_BYTE : B Y T E ; +T_BYTE : B Y T E ; T_CALL : C A L L ; T_CALLER : C A L L E R ; -T_CASCADE : C A S C A D E ; +T_CASCADE : C A S C A D E ; T_CASE : C A S E ; -T_CASESPECIFIC : C A S E S P E C I F I C ; +T_CASESPECIFIC : C A S E S P E C I F I C ; T_CAST : C A S T ; T_CHAR : C H A R ; T_CHARACTER : C H A R A C T E R ; @@ -39,23 +40,23 @@ T_CHARSET : C H A R S E T ; T_CLIENT : C L I E N T ; T_CLOSE : C L O S E ; T_CLUSTERED : C L U S T E R E D; -T_CMP : C M P ; -T_COLLECT : C O L L E C T ; -T_COLLECTION : C O L L E C T I O N ; +T_CMP : C M P ; +T_COLLECT : C O L L E C T ; +T_COLLECTION : C O L L E C T I O N ; T_COLUMN : C O L U M N ; T_COMMENT : C O M M E N T; T_CONSTANT : C O N S T A N T ; -T_COMMIT : C O M M I T ; +T_COMMIT : C O M M I T ; T_COMPRESS : C O M P R E S S ; T_CONCAT : C O N C A T; T_CONDITION : C O N D I T I O N ; -T_CONSTRAINT : C O N S T R A I N T ; +T_CONSTRAINT : C O N S T R A I N T ; T_CONTINUE : C O N T I N U E ; T_COPY : C O P Y ; T_COUNT : C O U N T ; T_COUNT_BIG : C O U N T '_' B I G; T_CREATE : C R E A T E ; -T_CREATION : C R E A T I O N ; +T_CREATION : C R E A T I O N ; T_CREATOR : C R E A T O R ; T_CS : C S; T_CURRENT : C U R R E N T ; @@ -64,79 +65,79 @@ T_CURSOR : C U R S O R ; T_DATABASE : D A T A B A S E ; T_DATA : D A T A ; T_DATE : D A T E ; -T_DATETIME : D A T E T I M E ; +T_DATETIME : D A T E T I M E ; T_DAY : D A Y ; T_DAYS : D A Y S ; T_DEC : D E C ; T_DECIMAL : D E C I M A L ; T_DECLARE : D E C L A R E ; T_DEFAULT : D E F A U L T ; -T_DEFERRED : D E F E R R E D ; -T_DEFINED : D E F I N E D ; +T_DEFERRED : D E F E R R E D ; +T_DEFINED : D E F I N E D ; T_DEFINER : D E F I N E R ; -T_DEFINITION : D E F I N I T I O N ; +T_DEFINITION : D E F I N I T I O N ; T_DELETE : D E L E T E ; -T_DELIMITED : D E L I M I T E D ; -T_DELIMITER : D E L I M I T E R ; +T_DELIMITED : D E L I M I T E D ; +T_DELIMITER : D E L I M I T E R ; T_DESC : D E S C ; -T_DESCRIBE : D E S C R I B E ; +T_DESCRIBE : D E S C R I B E ; T_DIAGNOSTICS : D I A G N O S T I C S ; T_DIR : D I R ; -T_DIRECTORY : D I R E C T O R Y ; +T_DIRECTORY : D I R E C T O R Y ; T_DISTINCT : D I S T I N C T ; T_DISTRIBUTE : D I S T R I B U T E ; T_DO : D O ; T_DOUBLE : D O U B L E ; T_DROP : D R O P ; -T_DYNAMIC : D Y N A M I C ; +T_DYNAMIC : D Y N A M I C ; T_ELSE : E L S E ; T_ELSEIF : E L S E I F ; T_ELSIF : E L S I F ; T_ENABLE : E N A B L E ; T_END : E N D ; T_ENGINE : E N G I N E ; -T_ESCAPED : E S C A P E D ; +T_ESCAPED : E S C A P E D ; T_EXCEPT : E X C E P T ; T_EXEC : E X E C ; T_EXECUTE : E X E C U T E ; T_EXCEPTION : E X C E P T I O N ; -T_EXCLUSIVE : E X C L U S I V E ; -T_EXISTS : E X I S T S ; +T_EXCLUSIVE : E X C L U S I V E ; +T_EXISTS : E X I S T S ; T_EXIT : E X I T ; T_FALLBACK : F A L L B A C K ; T_FALSE : F A L S E ; T_FETCH : F E T C H ; -T_FIELDS : F I E L D S ; +T_FIELDS : F I E L D S ; T_FILE : F I L E ; -T_FILES : F I L E S ; +T_FILES : F I L E S ; T_FLOAT : F L O A T ; T_FOR : F O R ; -T_FOREIGN : F O R E I G N ; +T_FOREIGN : F O R E I G N ; T_FORMAT : F O R M A T ; T_FOUND : F O U N D ; -T_FROM : F R O M ; +T_FROM : F R O M ; T_FULL : F U L L ; T_FUNCTION : F U N C T I O N ; T_GET : G E T ; -T_GLOBAL : G L O B A L ; +T_GLOBAL : G L O B A L ; T_GO : G O ; -T_GRANT : G R A N T ; +T_GRANT : G R A N T ; T_GROUP : G R O U P ; T_HANDLER : H A N D L E R ; T_HASH : H A S H ; T_HAVING : H A V I N G ; -T_HDFS : H D F S ; +T_HDFS : H D F S ; T_HIVE : H I V E ; T_HOST : H O S T ; -T_IDENTITY : I D E N T I T Y ; +T_IDENTITY : I D E N T I T Y ; T_IF : I F ; -T_IGNORE : I G N O R E ; +T_IGNORE : I G N O R E ; T_IMMEDIATE : I M M E D I A T E ; T_IN : I N ; T_INCLUDE : I N C L U D E ; T_INDEX : I N D E X ; T_INITRANS : I N I T R A N S ; -T_INNER : I N N E R ; +T_INNER : I N N E R ; T_INOUT : I N O U T; T_INSERT : I N S E R T ; T_INT : I N T ; @@ -145,55 +146,55 @@ T_INT4 : I N T '4'; T_INT8 : I N T '8'; T_INTEGER : I N T E G E R ; T_INTERSECT : I N T E R S E C T ; -T_INTERVAL : I N T E R V A L ; +T_INTERVAL : I N T E R V A L ; T_INTO : I N T O ; T_INVOKER : I N V O K E R ; T_IS : I S ; T_ISOPEN : I S O P E N ; -T_ITEMS : I T E M S ; +T_ITEMS : I T E M S ; T_JOIN : J O I N ; -T_KEEP : K E E P; +T_KEEP : K E E P; T_KEY : K E Y ; T_KEYS : K E Y S ; T_LANGUAGE : L A N G U A G E ; T_LEAVE : L E A V E ; T_LEFT : L E F T ; -T_LIKE : L I K E ; +T_LIKE : L I K E ; T_LIMIT : L I M I T ; -T_LINES : L I N E S ; +T_LINES : L I N E S ; T_LOCAL : L O C A L ; T_LOCATION : L O C A T I O N ; -T_LOCATOR : L O C A T O R ; -T_LOCATORS : L O C A T O R S ; -T_LOCKS : L O C K S ; -T_LOG : L O G ; -T_LOGGED : L O G G E D ; -T_LOGGING : L O G G I N G ; +T_LOCATOR : L O C A T O R ; +T_LOCATORS : L O C A T O R S ; +T_LOCKS : L O C K S ; +T_LOG : L O G ; +T_LOGGED : L O G G E D ; +T_LOGGING : L O G G I N G ; T_LOOP : L O O P ; -T_MAP : M A P ; -T_MATCHED : M A T C H E D ; +T_MAP : M A P ; +T_MATCHED : M A T C H E D ; T_MAX : M A X ; -T_MAXTRANS : M A X T R A N S ; -T_MERGE : M E R G E ; +T_MAXTRANS : M A X T R A N S ; +T_MERGE : M E R G E ; T_MESSAGE_TEXT : M E S S A G E '_' T E X T ; T_MICROSECOND : M I C R O S E C O N D ; T_MICROSECONDS : M I C R O S E C O N D S; T_MIN : M I N ; -T_MULTISET : M U L T I S E T ; -T_NCHAR : N C H A R ; +T_MULTISET : M U L T I S E T ; +T_NCHAR : N C H A R ; T_NEW : N E W ; -T_NVARCHAR : N V A R C H A R ; +T_NVARCHAR : N V A R C H A R ; T_NO : N O ; T_NOCOUNT : N O C O U N T ; -T_NOCOMPRESS : N O C O M P R E S S ; +T_NOCOMPRESS : N O C O M P R E S S ; T_NOLOGGING : N O L O G G I N G ; T_NONE : N O N E ; T_NOT : N O T ; -T_NOTFOUND : N O T F O U N D ; +T_NOTFOUND : N O T F O U N D ; T_NULL : N U L L ; -T_NUMERIC : N U M E R I C ; +T_NUMERIC : N U M E R I C ; T_NUMBER : N U M B E R ; -T_OBJECT : O B J E C T ; +T_OBJECT : O B J E C T ; T_OFF : O F F ; T_ON : O N ; T_ONLY : O N L Y ; @@ -203,31 +204,31 @@ T_ORDER : O R D E R; T_OUT : O U T ; T_OUTER : O U T E R ; T_OVER : O V E R ; -T_OVERWRITE : O V E R W R I T E ; -T_OWNER : O W N E R ; -T_PACKAGE : P A C K A G E ; -T_PARTITION : P A R T I T I O N ; -T_PCTFREE : P C T F R E E ; +T_OVERWRITE : O V E R W R I T E ; +T_OWNER : O W N E R ; +T_PACKAGE : P A C K A G E ; +T_PARTITION : P A R T I T I O N ; +T_PCTFREE : P C T F R E E ; T_PCTUSED : P C T U S E D ; T_PLS_INTEGER : P L S '_' I N T E G E R ; -T_PRECISION : P R E C I S I O N ; -T_PRESERVE : P R E S E R V E ; +T_PRECISION : P R E C I S I O N ; +T_PRESERVE : P R E S E R V E ; T_PRIMARY : P R I M A R Y ; -T_PRINT : P R I N T ; +T_PRINT : P R I N T ; T_PROC : P R O C ; T_PROCEDURE : P R O C E D U R E ; T_QUALIFY : Q U A L I F Y ; -T_QUERY_BAND : Q U E R Y '_' B A N D ; -T_QUIT : Q U I T ; +T_QUERY_BAND : Q U E R Y '_' B A N D ; +T_QUIT : Q U I T ; T_QUOTED_IDENTIFIER : Q U O T E D '_' I D E N T I F I E R ; T_RAISE : R A I S E ; -T_REAL : R E A L ; -T_REFERENCES : R E F E R E N C E S ; +T_REAL : R E A L ; +T_REFERENCES : R E F E R E N C E S ; T_REGEXP : R E G E X P ; -T_REPLACE : R E P L A C E ; +T_REPLACE : R E P L A C E ; T_RESIGNAL : R E S I G N A L ; -T_RESTRICT : R E S T R I C T ; -T_RESULT : R E S U L T ; +T_RESTRICT : R E S T R I C T ; +T_RESULT : R E S U L T ; T_RESULT_SET_LOCATOR : R E S U L T '_' S E T '_' L O C A T O R ; T_RETURN : R E T U R N ; T_RETURNS : R E T U R N S ; @@ -236,66 +237,66 @@ T_RIGHT : R I G H T ; T_RLIKE : R L I K E ; T_ROLE : R O L E ; T_ROLLBACK : R O L L B A C K ; -T_ROW : R O W ; -T_ROWS : R O W S ; -T_ROWTYPE : R O W T Y P E ; +T_ROW : R O W ; +T_ROWS : R O W S ; +T_ROWTYPE : R O W T Y P E ; T_ROW_COUNT : R O W '_' C O U N T ; T_RR : R R; T_RS : R S ; -T_PWD : P W D ; +T_PWD : P W D ; T_TRIM : T R I M ; T_SCHEMA : S C H E M A ; T_SECOND : S E C O N D ; T_SECONDS : S E C O N D S; -T_SECURITY : S E C U R I T Y ; -T_SEGMENT : S E G M E N T ; +T_SECURITY : S E C U R I T Y ; +T_SEGMENT : S E G M E N T ; T_SEL : S E L ; -T_SELECT : S E L E C T ; +T_SELECT : S E L E C T ; T_SET : S E T ; -T_SESSION : S E S S I O N ; +T_SESSION : S E S S I O N ; T_SESSIONS : S E S S I O N S ; T_SETS : S E T S; -T_SHARE : S H A R E ; +T_SHARE : S H A R E ; T_SIGNAL : S I G N A L ; T_SIMPLE_DOUBLE : S I M P L E '_' D O U B L E ; T_SIMPLE_FLOAT : S I M P L E '_' F L O A T ; T_SIMPLE_INTEGER : S I M P L E '_' I N T E G E R ; T_SMALLDATETIME : S M A L L D A T E T I M E ; T_SMALLINT : S M A L L I N T ; -T_SQL : S Q L ; +T_SQL : S Q L ; T_SQLEXCEPTION : S Q L E X C E P T I O N ; T_SQLINSERT : S Q L I N S E R T ; T_SQLSTATE : S Q L S T A T E ; T_SQLWARNING : S Q L W A R N I N G ; -T_STATS : S T A T S ; +T_STATS : S T A T S ; T_STATISTICS : S T A T I S T I C S ; -T_STEP : S T E P ; -T_STORAGE : S T O R A G E ; +T_STEP : S T E P ; +T_STORAGE : S T O R A G E ; T_STORED : S T O R E D ; T_STRING : S T R I N G ; -T_SUBDIR : S U B D I R ; -T_SUBSTRING : S U B S T R I N G ; +T_SUBDIR : S U B D I R ; +T_SUBSTRING : S U B S T R I N G ; T_SUM : S U M ; T_SUMMARY : S U M M A R Y ; -T_SYS_REFCURSOR : S Y S '_' R E F C U R S O R ; +T_SYS_REFCURSOR : S Y S '_' R E F C U R S O R ; T_TABLE : T A B L E ; -T_TABLESPACE : T A B L E S P A C E ; +T_TABLESPACE : T A B L E S P A C E ; T_TEMPORARY : T E M P O R A R Y ; -T_TERMINATED : T E R M I N A T E D ; +T_TERMINATED : T E R M I N A T E D ; T_TEXTIMAGE_ON : T E X T I M A G E '_' O N ; T_THEN : T H E N ; T_TIMESTAMP : T I M E S T A M P ; T_TINYINT : T I N Y I N T ; T_TITLE : T I T L E ; -T_TO : T O ; +T_TO : T O ; T_TOP : T O P ; T_TRANSACTION : T R A N S A C T I O N ; T_TRUE : T R U E ; T_TRUNCATE : T R U N C A T E; -T_TYPE : T Y P E ; +T_TYPE : T Y P E ; T_UNION : U N I O N ; T_UNIQUE : U N I Q U E ; -T_UPDATE : U P D A T E ; +T_UPDATE : U P D A T E ; T_UR : U R ; T_USE : U S E ; T_USING : U S I N G ; @@ -309,47 +310,50 @@ T_VOLATILE : V O L A T I L E ; T_WHEN : W H E N ; T_WHERE : W H E R E ; T_WHILE : W H I L E ; -T_WITH : W I T H ; +T_WITH : W I T H ; T_WITHOUT : W I T H O U T ; T_WORK : W O R K ; T_XACT_ABORT : X A C T '_' A B O R T ; T_XML : X M L ; -T_YES : Y E S ; +T_YES : Y E S ; // Functions with specific syntax T_ACTIVITY_COUNT : A C T I V I T Y '_' C O U N T ; -T_CUME_DIST : C U M E '_' D I S T ; +T_CUME_DIST : C U M E '_' D I S T ; T_CURRENT_DATE : C U R R E N T '_' D A T E ; T_CURRENT_TIMESTAMP : C U R R E N T '_' T I M E S T A M P ; T_CURRENT_USER : C U R R E N T '_' U S E R ; T_DENSE_RANK : D E N S E '_' R A N K ; -T_FIRST_VALUE : F I R S T '_' V A L U E; +T_FIRST_VALUE : F I R S T '_' V A L U E; T_LAG : L A G ; -T_LAST_VALUE : L A S T '_' V A L U E; -T_LEAD : L E A D ; +T_LAST_VALUE : L A S T '_' V A L U E; +T_LEAD : L E A D ; T_MAX_PART_STRING : M A X '_' P A R T '_' S T R I N G ; T_MIN_PART_STRING : M I N '_' P A R T '_' S T R I N G ; T_MAX_PART_INT : M A X '_' P A R T '_' I N T ; T_MIN_PART_INT : M I N '_' P A R T '_' I N T ; T_MAX_PART_DATE : M A X '_' P A R T '_' D A T E ; T_MIN_PART_DATE : M I N '_' P A R T '_' D A T E ; -T_PART_COUNT : P A R T '_' C O U N T ; +T_PART_COUNT : P A R T '_' C O U N T ; T_PART_LOC : P A R T '_' L O C ; T_RANK : R A N K ; T_ROW_NUMBER : R O W '_' N U M B E R; T_STDEV : S T D E V ; T_SYSDATE : S Y S D A T E ; -T_VARIANCE : V A R I A N C E ; -T_USER : U S E R; +T_VARIANCE : V A R I A N C E ; +T_USER : U S E R; T_ADD : '+' ; T_COLON : ':' ; T_COMMA : ',' ; T_PIPE : '||' ; T_DIV : '/' ; +T_DOT : '.' ; T_DOT2 : '..' ; T_EQUAL : '=' ; T_EQUAL2 : '==' ; +T_SHARP : '#' ; +T_NOTE : '!' ; T_NOTEQUAL : '<>' ; T_NOTEQUAL2 : '!=' ; T_GREATER : '>' ; @@ -357,10 +361,12 @@ T_GREATEREQUAL : '>=' ; T_LESS : '<' ; T_LESSEQUAL : '<=' ; T_MUL : '*' ; +T_PRECENT : '%' ; +T_CALLS : '@' ; T_OPEN_B : '{' ; T_OPEN_P : '(' ; T_OPEN_SB : '[' ; -T_CLOSE_B : '}' ; +T_CLOSE_B : '}' ; T_CLOSE_P : ')' ; T_CLOSE_SB : ']' ; T_SEMICOLON : ';' ; @@ -381,11 +387,11 @@ L_M_COMMENT : '/*' .*? '*/' -> channel(HIDDEN) ; // Multil L_S_COMMENT : ('--' | '//') .*? '\r'? '\n' -> channel(HIDDEN) ; // Single line comment L_FILE : ([a-zA-Z] ':' '\\'?)? L_ID ('\\' L_ID)* // File path (a/b/c Linux path causes conflicts with division operator and handled at parser level) - ; - -L_LABEL : ([a-zA-Z] | L_DIGIT | '_')* ':' ; - + +L_LABEL : ([a-zA-Z] | L_DIGIT | '_')* ':' + ; + fragment L_ID_PART : [a-zA-Z] ([a-zA-Z] | L_DIGIT | '_')* // Identifier part @@ -397,8 +403,8 @@ L_ID_PART : ; fragment L_STR_ESC_D : // Double quoted string escape sequence - '""' | '\\"' - ; + '""' | '\\"' + ; fragment L_DIGIT : [0-9] // Digit ; diff --git a/src/grammar/hive/README.md b/src/grammar/hive/README.md deleted file mode 100644 index 4fed08b..0000000 --- a/src/grammar/hive/README.md +++ /dev/null @@ -1,3 +0,0 @@ -# Hive SQL Grammar - -Source file from [Hive Github](https://github.com/apache/hive/tree/master/hplsql/src/main/antlr4/org/apache/hive/hplsql) diff --git a/src/lib/hive/HiveSql.interp b/src/lib/hive/HiveSql.interp index 227fd24..36f8355 100644 --- a/src/lib/hive/HiveSql.interp +++ b/src/lib/hive/HiveSql.interp @@ -1,369 +1,371 @@ token literal names: null -'@' -'#' +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +'+' +':' +',' +'||' '/' -'%' '.' -'*' +'..' +'=' +'==' +'#' '!' +'<>' +'!=' +'>' +'>=' +'<' +'<=' +'*' +'%' +'@' +'{' +'(' +'[' +'}' +')' +']' ';' '-' -'+' -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null null null null @@ -377,355 +379,330 @@ null token symbolic names: null -null -null -null -null -null -null -null -null -null -null -T_GO -T_BEGIN -T_SEMICOLON -T_END -T_EXCEPTION -T_WHEN -L_ID -T_THEN -T_NULL -T_SET -T_COMMA -T_COLON -T_EQUAL -T_OPEN_P -T_CLOSE_P -T_ALLOCATE -T_CURSOR -T_FOR -T_RESULT -T_PROCEDURE -T_ASSOCIATE -T_LOCATOR -T_LOCATORS -T_WITH -T_TRANSACTION -T_BREAK -T_CALL -T_DECLARE -T_AS -T_CONSTANT -T_CONDITION -T_IS -T_RETURN -T_ONLY -T_TO -T_CALLER -T_CLIENT -T_WITHOUT -T_CONTINUE -T_EXIT -T_HANDLER -T_SQLEXCEPTION -T_SQLWARNING -T_NOT -T_FOUND -T_GLOBAL -T_TEMPORARY -T_TABLE -T_CREATE -T_IF -T_EXISTS -T_LOCAL -T_MULTISET -T_VOLATILE -T_LIKE -T_CONSTRAINT -T_PRIMARY -T_KEY -T_UNIQUE -T_REFERENCES -T_IDENTITY -L_INT -T_AUTO_INCREMENT -T_ENABLE -T_CLUSTERED -T_ASC -T_DESC -T_FOREIGN -T_ON -T_UPDATE -T_DELETE -T_NO T_ACTION -T_RESTRICT -T_DEFAULT -T_CASCADE -T_LOG -T_FALLBACK -T_COMMIT -T_PRESERVE -T_ROWS -T_SEGMENT -T_CREATION -T_IMMEDIATE -T_DEFERRED -T_PCTFREE -T_PCTUSED -T_INITRANS -T_MAXTRANS -T_NOCOMPRESS -T_LOGGING -T_NOLOGGING -T_STORAGE -T_TABLESPACE -T_INDEX -T_IN -T_REPLACE -T_DISTRIBUTE -T_BY -T_HASH -T_LOGGED -T_COMPRESS -T_YES -T_DEFINITION -T_DROP -T_DATA -T_STORED -T_ROW -T_FORMAT -T_DELIMITED -T_FIELDS -T_TERMINATED -T_ESCAPED -T_COLLECTION -T_ITEMS -T_MAP -T_KEYS -T_LINES -T_DEFINED -T_TEXTIMAGE_ON -T_COMMENT -T_CHARACTER -T_CHARSET -T_ENGINE -T_ALTER T_ADD2 -T_CHAR +T_ALL +T_ALLOCATE +T_ALTER +T_AND +T_ANSI_NULLS +T_ANSI_PADDING +T_AS +T_ASC +T_ASSOCIATE +T_AT +T_AUTO_INCREMENT +T_AVG +T_BATCHSIZE +T_BEGIN +T_BETWEEN T_BIGINT T_BINARY_DOUBLE T_BINARY_FLOAT T_BINARY_INTEGER T_BIT +T_BODY +T_BREAK +T_BY +T_BYTE +T_CALL +T_CALLER +T_CASCADE +T_CASE +T_CASESPECIFIC +T_CAST +T_CHAR +T_CHARACTER +T_CHARSET +T_CLIENT +T_CLOSE +T_CLUSTERED +T_CMP +T_COLLECT +T_COLLECTION +T_COLUMN +T_COMMENT +T_CONSTANT +T_COMMIT +T_COMPRESS +T_CONCAT +T_CONDITION +T_CONSTRAINT +T_CONTINUE +T_COPY +T_COUNT +T_COUNT_BIG +T_CREATE +T_CREATION +T_CREATOR +T_CS +T_CURRENT +T_CURRENT_SCHEMA +T_CURSOR +T_DATABASE +T_DATA T_DATE T_DATETIME +T_DAY +T_DAYS T_DEC T_DECIMAL +T_DECLARE +T_DEFAULT +T_DEFERRED +T_DEFINED +T_DEFINER +T_DEFINITION +T_DELETE +T_DELIMITED +T_DELIMITER +T_DESC +T_DESCRIBE +T_DIAGNOSTICS +T_DIR +T_DIRECTORY +T_DISTINCT +T_DISTRIBUTE +T_DO T_DOUBLE -T_PRECISION +T_DROP +T_DYNAMIC +T_ELSE +T_ELSEIF +T_ELSIF +T_ENABLE +T_END +T_ENGINE +T_ESCAPED +T_EXCEPT +T_EXEC +T_EXECUTE +T_EXCEPTION +T_EXCLUSIVE +T_EXISTS +T_EXIT +T_FALLBACK +T_FALSE +T_FETCH +T_FIELDS +T_FILE +T_FILES T_FLOAT +T_FOR +T_FOREIGN +T_FORMAT +T_FOUND +T_FROM +T_FULL +T_FUNCTION +T_GET +T_GLOBAL +T_GO +T_GRANT +T_GROUP +T_HANDLER +T_HASH +T_HAVING +T_HDFS +T_HIVE +T_HOST +T_IDENTITY +T_IF +T_IGNORE +T_IMMEDIATE +T_IN +T_INCLUDE +T_INDEX +T_INITRANS +T_INNER +T_INOUT +T_INSERT T_INT T_INT2 T_INT4 T_INT8 T_INTEGER -T_NCHAR -T_NVARCHAR -T_NUMBER -T_NUMERIC -T_PLS_INTEGER -T_REAL -T_RESULT_SET_LOCATOR -T_VARYING -T_SIMPLE_FLOAT -T_SIMPLE_DOUBLE -T_SIMPLE_INTEGER -T_SMALLINT -T_SMALLDATETIME -T_STRING -T_SYS_REFCURSOR -T_TIMESTAMP -T_TINYINT -T_VARCHAR -T_VARCHAR2 -T_XML -T_TYPE -T_ROWTYPE -T_MAX -T_BYTE -T_CASESPECIFIC -T_CS -T_DATABASE -T_SCHEMA -T_LOCATION -T_OR -T_FUNCTION -T_RETURNS -T_PACKAGE -T_PROC -T_BODY -T_OUT -T_INOUT -T_LANGUAGE -T_SQL -T_SECURITY -T_CREATOR -T_DEFINER -T_INVOKER -T_OWNER -T_DYNAMIC -T_SETS -T_EXEC -T_EXECUTE -T_INTO -T_ELSE -T_ELSIF -T_ELSEIF -T_INCLUDE -T_INSERT -T_OVERWRITE -T_VALUES -T_DIRECTORY -T_GET -T_DIAGNOSTICS -T_MESSAGE_TEXT -T_ROW_COUNT -T_GRANT -T_ROLE -T_LEAVE -T_OBJECT -T_AT -T_OPEN -T_FETCH -T_FROM -T_COLLECT -T_STATISTICS -T_STATS -T_COLUMN -T_CLOSE -T_CMP -T_SUM -T_COPY -T_HDFS -T_BATCHSIZE -T_DELIMITER -T_SQLINSERT -T_IGNORE -T_WORK -T_PRINT -T_QUIT -T_RAISE -T_RESIGNAL -T_SQLSTATE -T_VALUE -T_ROLLBACK -T_CURRENT -T_CURRENT_SCHEMA -T_ANSI_NULLS -T_ANSI_PADDING -T_NOCOUNT -T_QUOTED_IDENTIFIER -T_XACT_ABORT -T_OFF -T_QUERY_BAND -T_NONE -T_SESSION -T_SIGNAL -T_SUMMARY -T_TOP -T_LIMIT -T_TRUNCATE -T_USE -T_WHILE -T_DO -T_LOOP -T_REVERSE -T_DOT2 -T_STEP -L_LABEL -T_LESS -T_GREATER -T_USING -T_UNION -T_ALL -T_EXCEPT T_INTERSECT -T_SELECT -T_SEL -T_DISTINCT -T_TITLE -L_S_STRING -T_INNER -T_JOIN -T_LEFT -T_RIGHT -T_FULL -T_OUTER -T_WHERE -T_GROUP -T_HAVING -T_QUALIFY -T_ORDER -T_RR -T_RS -T_UR -T_AND -T_KEEP -T_EXCLUSIVE -T_SHARE -T_LOCKS -T_MERGE -T_MATCHED -T_DESCRIBE -T_BETWEEN -T_EQUAL2 -T_NOTEQUAL -T_NOTEQUAL2 -T_LESSEQUAL -T_GREATEREQUAL -T_RLIKE -T_REGEXP -T_MUL -T_DIV -T_ADD -T_SUB T_INTERVAL -T_DAY -T_DAYS +T_INTO +T_INVOKER +T_IS +T_ISOPEN +T_ITEMS +T_JOIN +T_KEEP +T_KEY +T_KEYS +T_LANGUAGE +T_LEAVE +T_LEFT +T_LIKE +T_LIMIT +T_LINES +T_LOCAL +T_LOCATION +T_LOCATOR +T_LOCATORS +T_LOCKS +T_LOG +T_LOGGED +T_LOGGING +T_LOOP +T_MAP +T_MATCHED +T_MAX +T_MAXTRANS +T_MERGE +T_MESSAGE_TEXT T_MICROSECOND T_MICROSECONDS +T_MIN +T_MULTISET +T_NCHAR +T_NEW +T_NVARCHAR +T_NO +T_NOCOUNT +T_NOCOMPRESS +T_NOLOGGING +T_NONE +T_NOT +T_NOTFOUND +T_NULL +T_NUMERIC +T_NUMBER +T_OBJECT +T_OFF +T_ON +T_ONLY +T_OPEN +T_OR +T_ORDER +T_OUT +T_OUTER +T_OVER +T_OVERWRITE +T_OWNER +T_PACKAGE +T_PARTITION +T_PCTFREE +T_PCTUSED +T_PLS_INTEGER +T_PRECISION +T_PRESERVE +T_PRIMARY +T_PRINT +T_PROC +T_PROCEDURE +T_QUALIFY +T_QUERY_BAND +T_QUIT +T_QUOTED_IDENTIFIER +T_RAISE +T_REAL +T_REFERENCES +T_REGEXP +T_REPLACE +T_RESIGNAL +T_RESTRICT +T_RESULT +T_RESULT_SET_LOCATOR +T_RETURN +T_RETURNS +T_REVERSE +T_RIGHT +T_RLIKE +T_ROLE +T_ROLLBACK +T_ROW +T_ROWS +T_ROWTYPE +T_ROW_COUNT +T_RR +T_RS +T_PWD +T_TRIM +T_SCHEMA T_SECOND T_SECONDS -T_PIPE -T_CONCAT -T_CASE -T_ISOPEN -T_NOTFOUND -T_AVG -T_COUNT -T_COUNT_BIG +T_SECURITY +T_SEGMENT +T_SEL +T_SELECT +T_SET +T_SESSION +T_SESSIONS +T_SETS +T_SHARE +T_SIGNAL +T_SIMPLE_DOUBLE +T_SIMPLE_FLOAT +T_SIMPLE_INTEGER +T_SMALLDATETIME +T_SMALLINT +T_SQL +T_SQLEXCEPTION +T_SQLINSERT +T_SQLSTATE +T_SQLWARNING +T_STATS +T_STATISTICS +T_STEP +T_STORAGE +T_STORED +T_STRING +T_SUBDIR +T_SUBSTRING +T_SUM +T_SUMMARY +T_SYS_REFCURSOR +T_TABLE +T_TABLESPACE +T_TEMPORARY +T_TERMINATED +T_TEXTIMAGE_ON +T_THEN +T_TIMESTAMP +T_TINYINT +T_TITLE +T_TO +T_TOP +T_TRANSACTION +T_TRUE +T_TRUNCATE +T_TYPE +T_UNION +T_UNIQUE +T_UPDATE +T_UR +T_USE +T_USING +T_VALUE +T_VALUES +T_VAR +T_VARCHAR +T_VARCHAR2 +T_VARYING +T_VOLATILE +T_WHEN +T_WHERE +T_WHILE +T_WITH +T_WITHOUT +T_WORK +T_XACT_ABORT +T_XML +T_YES +T_ACTIVITY_COUNT T_CUME_DIST +T_CURRENT_DATE +T_CURRENT_TIMESTAMP +T_CURRENT_USER T_DENSE_RANK T_FIRST_VALUE T_LAG T_LAST_VALUE T_LEAD -T_MIN -T_RANK -T_ROW_NUMBER -T_STDEV -T_VAR -T_VARIANCE -T_OVER -T_PARTITION -T_ACTIVITY_COUNT -T_CAST -T_CURRENT_DATE -T_CURRENT_TIMESTAMP -T_CURRENT_USER -T_USER T_MAX_PART_STRING T_MIN_PART_STRING T_MAX_PART_INT @@ -734,23 +711,50 @@ T_MAX_PART_DATE T_MIN_PART_DATE T_PART_COUNT T_PART_LOC -T_TRIM -T_SUBSTRING +T_RANK +T_ROW_NUMBER +T_STDEV T_SYSDATE -T_HIVE -T_HOST -L_FILE +T_VARIANCE +T_USER +T_ADD +T_COLON +T_COMMA +T_PIPE +T_DIV +T_DOT +T_DOT2 +T_EQUAL +T_EQUAL2 +T_SHARP +T_NOTE +T_NOTEQUAL +T_NOTEQUAL2 +T_GREATER +T_GREATEREQUAL +T_LESS +T_LESSEQUAL +T_MUL +T_PRECENT +T_CALLS +T_OPEN_B +T_OPEN_P +T_OPEN_SB +T_CLOSE_B +T_CLOSE_P +T_CLOSE_SB +T_SEMICOLON +T_SUB +L_ID +L_S_STRING L_D_STRING +L_INT L_DEC -T_TRUE -T_FALSE -T_DIR -T_FILE -T_FILES -T_NEW -T_PWD -T_SESSIONS -T_SUBDIR +L_WS +L_M_COMMENT +L_S_COMMENT +L_FILE +L_LABEL rule names: program @@ -982,4 +986,4 @@ non_reserved_words atn: -[3, 24715, 42794, 33075, 47597, 16764, 15335, 30598, 22884, 3, 376, 3345, 4, 2, 9, 2, 4, 3, 9, 3, 4, 4, 9, 4, 4, 5, 9, 5, 4, 6, 9, 6, 4, 7, 9, 7, 4, 8, 9, 8, 4, 9, 9, 9, 4, 10, 9, 10, 4, 11, 9, 11, 4, 12, 9, 12, 4, 13, 9, 13, 4, 14, 9, 14, 4, 15, 9, 15, 4, 16, 9, 16, 4, 17, 9, 17, 4, 18, 9, 18, 4, 19, 9, 19, 4, 20, 9, 20, 4, 21, 9, 21, 4, 22, 9, 22, 4, 23, 9, 23, 4, 24, 9, 24, 4, 25, 9, 25, 4, 26, 9, 26, 4, 27, 9, 27, 4, 28, 9, 28, 4, 29, 9, 29, 4, 30, 9, 30, 4, 31, 9, 31, 4, 32, 9, 32, 4, 33, 9, 33, 4, 34, 9, 34, 4, 35, 9, 35, 4, 36, 9, 36, 4, 37, 9, 37, 4, 38, 9, 38, 4, 39, 9, 39, 4, 40, 9, 40, 4, 41, 9, 41, 4, 42, 9, 42, 4, 43, 9, 43, 4, 44, 9, 44, 4, 45, 9, 45, 4, 46, 9, 46, 4, 47, 9, 47, 4, 48, 9, 48, 4, 49, 9, 49, 4, 50, 9, 50, 4, 51, 9, 51, 4, 52, 9, 52, 4, 53, 9, 53, 4, 54, 9, 54, 4, 55, 9, 55, 4, 56, 9, 56, 4, 57, 9, 57, 4, 58, 9, 58, 4, 59, 9, 59, 4, 60, 9, 60, 4, 61, 9, 61, 4, 62, 9, 62, 4, 63, 9, 63, 4, 64, 9, 64, 4, 65, 9, 65, 4, 66, 9, 66, 4, 67, 9, 67, 4, 68, 9, 68, 4, 69, 9, 69, 4, 70, 9, 70, 4, 71, 9, 71, 4, 72, 9, 72, 4, 73, 9, 73, 4, 74, 9, 74, 4, 75, 9, 75, 4, 76, 9, 76, 4, 77, 9, 77, 4, 78, 9, 78, 4, 79, 9, 79, 4, 80, 9, 80, 4, 81, 9, 81, 4, 82, 9, 82, 4, 83, 9, 83, 4, 84, 9, 84, 4, 85, 9, 85, 4, 86, 9, 86, 4, 87, 9, 87, 4, 88, 9, 88, 4, 89, 9, 89, 4, 90, 9, 90, 4, 91, 9, 91, 4, 92, 9, 92, 4, 93, 9, 93, 4, 94, 9, 94, 4, 95, 9, 95, 4, 96, 9, 96, 4, 97, 9, 97, 4, 98, 9, 98, 4, 99, 9, 99, 4, 100, 9, 100, 4, 101, 9, 101, 4, 102, 9, 102, 4, 103, 9, 103, 4, 104, 9, 104, 4, 105, 9, 105, 4, 106, 9, 106, 4, 107, 9, 107, 4, 108, 9, 108, 4, 109, 9, 109, 4, 110, 9, 110, 4, 111, 9, 111, 4, 112, 9, 112, 4, 113, 9, 113, 4, 114, 9, 114, 4, 115, 9, 115, 4, 116, 9, 116, 4, 117, 9, 117, 4, 118, 9, 118, 4, 119, 9, 119, 4, 120, 9, 120, 4, 121, 9, 121, 4, 122, 9, 122, 4, 123, 9, 123, 4, 124, 9, 124, 4, 125, 9, 125, 4, 126, 9, 126, 4, 127, 9, 127, 4, 128, 9, 128, 4, 129, 9, 129, 4, 130, 9, 130, 4, 131, 9, 131, 4, 132, 9, 132, 4, 133, 9, 133, 4, 134, 9, 134, 4, 135, 9, 135, 4, 136, 9, 136, 4, 137, 9, 137, 4, 138, 9, 138, 4, 139, 9, 139, 4, 140, 9, 140, 4, 141, 9, 141, 4, 142, 9, 142, 4, 143, 9, 143, 4, 144, 9, 144, 4, 145, 9, 145, 4, 146, 9, 146, 4, 147, 9, 147, 4, 148, 9, 148, 4, 149, 9, 149, 4, 150, 9, 150, 4, 151, 9, 151, 4, 152, 9, 152, 4, 153, 9, 153, 4, 154, 9, 154, 4, 155, 9, 155, 4, 156, 9, 156, 4, 157, 9, 157, 4, 158, 9, 158, 4, 159, 9, 159, 4, 160, 9, 160, 4, 161, 9, 161, 4, 162, 9, 162, 4, 163, 9, 163, 4, 164, 9, 164, 4, 165, 9, 165, 4, 166, 9, 166, 4, 167, 9, 167, 4, 168, 9, 168, 4, 169, 9, 169, 4, 170, 9, 170, 4, 171, 9, 171, 4, 172, 9, 172, 4, 173, 9, 173, 4, 174, 9, 174, 4, 175, 9, 175, 4, 176, 9, 176, 4, 177, 9, 177, 4, 178, 9, 178, 4, 179, 9, 179, 4, 180, 9, 180, 4, 181, 9, 181, 4, 182, 9, 182, 4, 183, 9, 183, 4, 184, 9, 184, 4, 185, 9, 185, 4, 186, 9, 186, 4, 187, 9, 187, 4, 188, 9, 188, 4, 189, 9, 189, 4, 190, 9, 190, 4, 191, 9, 191, 4, 192, 9, 192, 4, 193, 9, 193, 4, 194, 9, 194, 4, 195, 9, 195, 4, 196, 9, 196, 4, 197, 9, 197, 4, 198, 9, 198, 4, 199, 9, 199, 4, 200, 9, 200, 4, 201, 9, 201, 4, 202, 9, 202, 4, 203, 9, 203, 4, 204, 9, 204, 4, 205, 9, 205, 4, 206, 9, 206, 4, 207, 9, 207, 4, 208, 9, 208, 4, 209, 9, 209, 4, 210, 9, 210, 4, 211, 9, 211, 4, 212, 9, 212, 4, 213, 9, 213, 4, 214, 9, 214, 4, 215, 9, 215, 4, 216, 9, 216, 4, 217, 9, 217, 4, 218, 9, 218, 4, 219, 9, 219, 4, 220, 9, 220, 4, 221, 9, 221, 4, 222, 9, 222, 4, 223, 9, 223, 4, 224, 9, 224, 4, 225, 9, 225, 4, 226, 9, 226, 4, 227, 9, 227, 3, 2, 3, 2, 3, 2, 3, 3, 3, 3, 5, 3, 460, 10, 3, 3, 3, 5, 3, 463, 10, 3, 6, 3, 465, 10, 3, 13, 3, 14, 3, 466, 3, 4, 5, 4, 470, 10, 4, 3, 4, 3, 4, 3, 4, 5, 4, 475, 10, 4, 3, 4, 3, 4, 3, 5, 3, 5, 3, 5, 5, 5, 482, 10, 5, 3, 5, 3, 5, 3, 5, 3, 5, 5, 5, 488, 10, 5, 5, 5, 490, 10, 5, 3, 6, 3, 6, 3, 6, 3, 7, 3, 7, 6, 7, 497, 10, 7, 13, 7, 14, 7, 498, 3, 7, 5, 7, 502, 10, 7, 5, 7, 504, 10, 7, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 5, 8, 567, 10, 8, 3, 9, 3, 9, 3, 10, 3, 10, 6, 10, 573, 10, 10, 13, 10, 14, 10, 574, 3, 11, 3, 11, 3, 11, 3, 11, 3, 11, 3, 11, 3, 12, 3, 12, 3, 13, 3, 13, 3, 13, 3, 14, 3, 14, 3, 14, 5, 14, 591, 10, 14, 3, 14, 3, 14, 3, 14, 7, 14, 596, 10, 14, 12, 14, 14, 14, 599, 11, 14, 5, 14, 601, 10, 14, 3, 15, 3, 15, 3, 15, 5, 15, 606, 10, 15, 3, 16, 3, 16, 5, 16, 610, 10, 16, 3, 16, 3, 16, 3, 16, 3, 16, 3, 16, 3, 16, 3, 16, 5, 16, 619, 10, 16, 3, 16, 3, 16, 3, 16, 5, 16, 624, 10, 16, 3, 17, 3, 17, 3, 17, 3, 17, 7, 17, 630, 10, 17, 12, 17, 14, 17, 633, 11, 17, 3, 17, 3, 17, 5, 17, 637, 10, 17, 3, 17, 3, 17, 3, 17, 3, 17, 3, 17, 7, 17, 644, 10, 17, 12, 17, 14, 17, 647, 11, 17, 3, 17, 3, 17, 3, 18, 3, 18, 3, 18, 3, 18, 3, 18, 7, 18, 656, 10, 18, 12, 18, 14, 18, 659, 11, 18, 3, 18, 3, 18, 5, 18, 663, 10, 18, 3, 18, 5, 18, 666, 10, 18, 3, 18, 3, 18, 3, 18, 3, 18, 3, 18, 3, 19, 3, 19, 3, 19, 3, 19, 3, 19, 3, 19, 3, 19, 5, 19, 680, 10, 19, 3, 19, 3, 19, 3, 20, 3, 20, 3, 20, 5, 20, 687, 10, 20, 3, 20, 3, 20, 3, 20, 3, 20, 3, 20, 7, 20, 694, 10, 20, 12, 20, 14, 20, 697, 11, 20, 3, 20, 3, 20, 3, 20, 3, 20, 3, 20, 3, 21, 3, 21, 3, 21, 3, 22, 3, 22, 3, 23, 3, 23, 3, 23, 3, 23, 5, 23, 713, 10, 23, 3, 23, 3, 23, 5, 23, 717, 10, 23, 3, 24, 3, 24, 3, 24, 3, 24, 7, 24, 723, 10, 24, 12, 24, 14, 24, 726, 11, 24, 3, 25, 3, 25, 3, 25, 3, 25, 3, 25, 3, 25, 7, 25, 734, 10, 25, 12, 25, 14, 25, 737, 11, 25, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 7, 26, 744, 10, 26, 12, 26, 14, 26, 747, 11, 26, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 5, 27, 754, 10, 27, 3, 28, 3, 28, 3, 28, 7, 28, 759, 10, 28, 12, 28, 14, 28, 762, 11, 28, 3, 28, 5, 28, 765, 10, 28, 3, 28, 3, 28, 5, 28, 769, 10, 28, 3, 28, 7, 28, 772, 10, 28, 12, 28, 14, 28, 775, 11, 28, 3, 28, 5, 28, 778, 10, 28, 3, 28, 3, 28, 3, 28, 5, 28, 783, 10, 28, 3, 28, 3, 28, 5, 28, 787, 10, 28, 3, 28, 3, 28, 5, 28, 791, 10, 28, 3, 29, 3, 29, 3, 29, 3, 30, 3, 30, 3, 30, 3, 30, 3, 30, 5, 30, 801, 10, 30, 3, 30, 3, 30, 5, 30, 805, 10, 30, 3, 30, 3, 30, 3, 30, 5, 30, 810, 10, 30, 3, 31, 3, 31, 3, 31, 5, 31, 815, 10, 31, 3, 31, 3, 31, 5, 31, 819, 10, 31, 3, 32, 3, 32, 3, 32, 3, 33, 3, 33, 3, 33, 3, 33, 3, 33, 3, 33, 3, 33, 3, 33, 5, 33, 832, 10, 33, 3, 33, 3, 33, 3, 34, 5, 34, 837, 10, 34, 3, 34, 3, 34, 3, 34, 3, 34, 5, 34, 843, 10, 34, 3, 34, 3, 34, 3, 35, 3, 35, 3, 35, 3, 35, 3, 35, 5, 35, 852, 10, 35, 3, 35, 3, 35, 5, 35, 856, 10, 35, 3, 35, 3, 35, 3, 36, 3, 36, 3, 36, 3, 36, 5, 36, 864, 10, 36, 3, 36, 5, 36, 867, 10, 36, 3, 36, 3, 36, 3, 36, 5, 36, 872, 10, 36, 3, 36, 3, 36, 3, 37, 5, 37, 877, 10, 37, 3, 37, 3, 37, 3, 37, 3, 37, 3, 37, 5, 37, 884, 10, 37, 3, 37, 3, 37, 3, 37, 3, 37, 3, 37, 3, 37, 3, 37, 5, 37, 893, 10, 37, 3, 37, 5, 37, 896, 10, 37, 3, 38, 3, 38, 3, 38, 7, 38, 901, 10, 38, 12, 38, 14, 38, 904, 11, 38, 3, 39, 3, 39, 3, 39, 5, 39, 909, 10, 39, 3, 39, 7, 39, 912, 10, 39, 12, 39, 14, 39, 915, 11, 39, 3, 39, 7, 39, 918, 10, 39, 12, 39, 14, 39, 921, 11, 39, 3, 39, 3, 39, 5, 39, 925, 10, 39, 3, 39, 5, 39, 928, 10, 39, 3, 40, 3, 40, 3, 41, 3, 41, 5, 41, 934, 10, 41, 3, 41, 3, 41, 3, 41, 3, 41, 3, 41, 3, 41, 3, 41, 3, 41, 3, 41, 3, 41, 7, 41, 946, 10, 41, 12, 41, 14, 41, 949, 11, 41, 3, 41, 3, 41, 3, 41, 3, 41, 3, 41, 7, 41, 956, 10, 41, 12, 41, 14, 41, 959, 11, 41, 3, 41, 3, 41, 3, 41, 5, 41, 964, 10, 41, 3, 42, 3, 42, 3, 42, 5, 42, 969, 10, 42, 3, 42, 3, 42, 3, 42, 5, 42, 974, 10, 42, 3, 42, 3, 42, 3, 42, 5, 42, 979, 10, 42, 7, 42, 981, 10, 42, 12, 42, 14, 42, 984, 11, 42, 3, 42, 3, 42, 5, 42, 988, 10, 42, 3, 42, 5, 42, 991, 10, 42, 3, 42, 3, 42, 3, 42, 3, 42, 3, 42, 3, 42, 7, 42, 999, 10, 42, 12, 42, 14, 42, 1002, 11, 42, 3, 42, 3, 42, 3, 42, 3, 42, 3, 42, 3, 42, 3, 42, 7, 42, 1011, 10, 42, 12, 42, 14, 42, 1014, 11, 42, 3, 42, 3, 42, 7, 42, 1018, 10, 42, 12, 42, 14, 42, 1021, 11, 42, 5, 42, 1023, 10, 42, 3, 43, 3, 43, 3, 43, 3, 43, 3, 43, 3, 43, 3, 43, 3, 43, 3, 43, 3, 43, 5, 43, 1035, 10, 43, 3, 44, 6, 44, 1038, 10, 44, 13, 44, 14, 44, 1039, 3, 45, 3, 45, 3, 45, 5, 45, 1045, 10, 45, 3, 46, 5, 46, 1048, 10, 46, 3, 46, 3, 46, 3, 47, 6, 47, 1053, 10, 47, 13, 47, 14, 47, 1054, 3, 48, 3, 48, 3, 48, 3, 48, 3, 48, 3, 48, 3, 48, 3, 48, 3, 48, 3, 48, 5, 48, 1067, 10, 48, 3, 49, 3, 49, 3, 49, 3, 49, 3, 49, 3, 49, 3, 49, 3, 49, 3, 49, 3, 49, 3, 49, 6, 49, 1080, 10, 49, 13, 49, 14, 49, 1081, 3, 49, 3, 49, 3, 49, 5, 49, 1087, 10, 49, 3, 50, 5, 50, 1090, 10, 50, 3, 50, 3, 50, 3, 50, 3, 50, 3, 50, 3, 50, 3, 50, 3, 50, 3, 50, 3, 50, 3, 50, 7, 50, 1103, 10, 50, 12, 50, 14, 50, 1106, 11, 50, 3, 50, 3, 50, 3, 50, 5, 50, 1111, 10, 50, 3, 50, 3, 50, 3, 50, 3, 50, 3, 50, 3, 50, 3, 50, 3, 50, 3, 50, 5, 50, 1122, 10, 50, 3, 51, 5, 51, 1125, 10, 51, 3, 51, 3, 51, 3, 51, 3, 51, 3, 51, 3, 51, 7, 51, 1133, 10, 51, 12, 51, 14, 51, 1136, 11, 51, 3, 51, 3, 51, 3, 51, 3, 51, 5, 51, 1142, 10, 51, 3, 52, 3, 52, 3, 52, 3, 52, 5, 52, 1148, 10, 52, 3, 53, 3, 53, 3, 53, 3, 53, 7, 53, 1154, 10, 53, 12, 53, 14, 53, 1157, 11, 53, 3, 54, 3, 54, 3, 54, 3, 54, 3, 54, 3, 54, 3, 54, 5, 54, 1166, 10, 54, 3, 54, 3, 54, 3, 54, 3, 54, 3, 54, 3, 54, 3, 54, 3, 54, 3, 54, 3, 54, 3, 54, 3, 54, 3, 54, 3, 54, 3, 54, 3, 54, 3, 54, 3, 54, 5, 54, 1186, 10, 54, 3, 55, 3, 55, 3, 55, 3, 55, 5, 55, 1192, 10, 55, 3, 56, 3, 56, 5, 56, 1196, 10, 56, 3, 56, 3, 56, 3, 56, 5, 56, 1201, 10, 56, 3, 56, 3, 56, 5, 56, 1205, 10, 56, 3, 56, 3, 56, 3, 56, 5, 56, 1210, 10, 56, 3, 56, 5, 56, 1213, 10, 56, 3, 56, 3, 56, 3, 56, 5, 56, 1218, 10, 56, 3, 56, 5, 56, 1221, 10, 56, 3, 57, 3, 57, 3, 57, 3, 57, 3, 57, 3, 58, 3, 58, 3, 59, 3, 59, 3, 59, 5, 59, 1233, 10, 59, 3, 59, 3, 59, 3, 60, 3, 60, 3, 60, 5, 60, 1240, 10, 60, 3, 60, 3, 60, 3, 60, 5, 60, 1245, 10, 60, 3, 60, 3, 60, 3, 60, 5, 60, 1250, 10, 60, 7, 60, 1252, 10, 60, 12, 60, 14, 60, 1255, 11, 60, 3, 60, 3, 60, 5, 60, 1259, 10, 60, 3, 60, 5, 60, 1262, 10, 60, 3, 60, 3, 60, 3, 60, 3, 60, 3, 60, 3, 60, 7, 60, 1270, 10, 60, 12, 60, 14, 60, 1273, 11, 60, 3, 60, 3, 60, 3, 60, 3, 60, 3, 60, 3, 60, 3, 60, 7, 60, 1282, 10, 60, 12, 60, 14, 60, 1285, 11, 60, 3, 60, 3, 60, 7, 60, 1289, 10, 60, 12, 60, 14, 60, 1292, 11, 60, 3, 60, 3, 60, 3, 60, 3, 60, 3, 60, 5, 60, 1299, 10, 60, 3, 61, 3, 61, 3, 61, 3, 61, 3, 61, 3, 61, 3, 61, 3, 61, 3, 61, 3, 61, 3, 61, 3, 61, 3, 61, 5, 61, 1314, 10, 61, 3, 61, 3, 61, 3, 61, 3, 61, 3, 61, 3, 61, 3, 61, 3, 61, 3, 61, 3, 61, 3, 61, 3, 61, 3, 61, 3, 61, 3, 61, 3, 61, 3, 61, 3, 61, 3, 61, 3, 61, 3, 61, 3, 61, 3, 61, 3, 61, 3, 61, 3, 61, 3, 61, 3, 61, 3, 61, 5, 61, 1345, 10, 61, 5, 61, 1347, 10, 61, 3, 62, 3, 62, 3, 62, 5, 62, 1352, 10, 62, 3, 62, 3, 62, 5, 62, 1356, 10, 62, 3, 62, 3, 62, 3, 63, 5, 63, 1361, 10, 63, 3, 63, 3, 63, 3, 63, 3, 63, 3, 63, 5, 63, 1368, 10, 63, 3, 63, 5, 63, 1371, 10, 63, 3, 64, 5, 64, 1374, 10, 64, 3, 64, 3, 64, 3, 64, 5, 64, 1379, 10, 64, 3, 64, 3, 64, 5, 64, 1383, 10, 64, 5, 64, 1385, 10, 64, 3, 65, 3, 65, 3, 65, 3, 65, 3, 65, 5, 65, 1392, 10, 65, 3, 65, 3, 65, 7, 65, 1396, 10, 65, 12, 65, 14, 65, 1399, 11, 65, 3, 66, 3, 66, 3, 66, 3, 66, 5, 66, 1405, 10, 66, 3, 67, 3, 67, 3, 67, 3, 67, 5, 67, 1411, 10, 67, 3, 67, 5, 67, 1414, 10, 67, 3, 67, 3, 67, 3, 67, 5, 67, 1419, 10, 67, 3, 67, 3, 67, 5, 67, 1423, 10, 67, 3, 67, 5, 67, 1426, 10, 67, 3, 67, 3, 67, 3, 68, 3, 68, 3, 68, 5, 68, 1433, 10, 68, 3, 69, 3, 69, 3, 69, 3, 69, 5, 69, 1439, 10, 69, 3, 69, 5, 69, 1442, 10, 69, 3, 69, 3, 69, 3, 69, 3, 69, 3, 69, 3, 69, 3, 69, 3, 69, 5, 69, 1452, 10, 69, 3, 70, 3, 70, 3, 70, 3, 70, 3, 70, 7, 70, 1459, 10, 70, 12, 70, 14, 70, 1462, 11, 70, 3, 71, 3, 71, 3, 71, 3, 71, 5, 71, 1468, 10, 71, 3, 71, 3, 71, 3, 71, 3, 71, 3, 71, 5, 71, 1475, 10, 71, 5, 71, 1477, 10, 71, 3, 72, 3, 72, 3, 72, 3, 72, 5, 72, 1483, 10, 72, 3, 72, 5, 72, 1486, 10, 72, 3, 72, 3, 72, 3, 72, 3, 72, 3, 72, 3, 72, 3, 72, 3, 72, 3, 72, 5, 72, 1497, 10, 72, 3, 73, 3, 73, 3, 73, 3, 73, 3, 73, 7, 73, 1504, 10, 73, 12, 73, 14, 73, 1507, 11, 73, 3, 74, 3, 74, 3, 74, 5, 74, 1512, 10, 74, 3, 75, 3, 75, 3, 75, 3, 75, 5, 75, 1518, 10, 75, 3, 75, 5, 75, 1521, 10, 75, 3, 75, 3, 75, 3, 75, 5, 75, 1526, 10, 75, 3, 75, 5, 75, 1529, 10, 75, 3, 75, 5, 75, 1532, 10, 75, 3, 75, 5, 75, 1535, 10, 75, 3, 75, 5, 75, 1538, 10, 75, 3, 75, 3, 75, 3, 75, 3, 75, 5, 75, 1544, 10, 75, 3, 76, 3, 76, 3, 76, 3, 76, 3, 76, 3, 76, 7, 76, 1552, 10, 76, 12, 76, 14, 76, 1555, 11, 76, 3, 76, 3, 76, 3, 76, 3, 76, 3, 76, 3, 76, 7, 76, 1563, 10, 76, 12, 76, 14, 76, 1566, 11, 76, 5, 76, 1568, 10, 76, 3, 77, 3, 77, 3, 77, 3, 77, 3, 77, 5, 77, 1575, 10, 77, 3, 77, 3, 77, 3, 77, 5, 77, 1580, 10, 77, 3, 77, 7, 77, 1583, 10, 77, 12, 77, 14, 77, 1586, 11, 77, 3, 77, 5, 77, 1589, 10, 77, 3, 77, 3, 77, 3, 77, 3, 77, 3, 77, 3, 77, 5, 77, 1597, 10, 77, 3, 77, 3, 77, 5, 77, 1601, 10, 77, 3, 77, 7, 77, 1604, 10, 77, 12, 77, 14, 77, 1607, 11, 77, 3, 77, 5, 77, 1610, 10, 77, 5, 77, 1612, 10, 77, 3, 78, 6, 78, 1615, 10, 78, 13, 78, 14, 78, 1616, 3, 79, 3, 79, 3, 79, 3, 79, 3, 79, 3, 79, 5, 79, 1625, 10, 79, 3, 79, 3, 79, 3, 79, 5, 79, 1630, 10, 79, 3, 80, 3, 80, 3, 80, 3, 80, 5, 80, 1636, 10, 80, 3, 80, 3, 80, 3, 80, 3, 80, 3, 80, 5, 80, 1643, 10, 80, 3, 80, 5, 80, 1646, 10, 80, 3, 81, 3, 81, 3, 81, 3, 82, 3, 82, 5, 82, 1653, 10, 82, 3, 82, 3, 82, 3, 82, 3, 82, 3, 82, 3, 82, 5, 82, 1661, 10, 82, 3, 82, 3, 82, 3, 82, 3, 82, 7, 82, 1667, 10, 82, 12, 82, 14, 82, 1670, 11, 82, 5, 82, 1672, 10, 82, 3, 82, 5, 82, 1675, 10, 82, 3, 83, 3, 83, 3, 83, 5, 83, 1680, 10, 83, 3, 84, 3, 84, 3, 84, 3, 84, 3, 84, 7, 84, 1687, 10, 84, 12, 84, 14, 84, 1690, 11, 84, 3, 84, 5, 84, 1693, 10, 84, 3, 84, 3, 84, 3, 84, 3, 85, 3, 85, 3, 85, 3, 85, 3, 85, 5, 85, 1703, 10, 85, 3, 86, 3, 86, 3, 86, 3, 86, 3, 86, 3, 86, 3, 87, 3, 87, 3, 87, 3, 87, 3, 87, 3, 88, 3, 88, 3, 88, 3, 89, 3, 89, 3, 89, 5, 89, 1722, 10, 89, 3, 90, 3, 90, 3, 90, 3, 90, 3, 90, 5, 90, 1729, 10, 90, 5, 90, 1731, 10, 90, 3, 90, 3, 90, 5, 90, 1735, 10, 90, 3, 90, 3, 90, 5, 90, 1739, 10, 90, 3, 91, 3, 91, 3, 91, 3, 91, 7, 91, 1745, 10, 91, 12, 91, 14, 91, 1748, 11, 91, 3, 91, 3, 91, 3, 92, 3, 92, 3, 92, 3, 92, 7, 92, 1756, 10, 92, 12, 92, 14, 92, 1759, 11, 92, 3, 93, 3, 93, 3, 93, 3, 93, 7, 93, 1765, 10, 93, 12, 93, 14, 93, 1768, 11, 93, 3, 93, 3, 93, 3, 94, 3, 94, 3, 94, 5, 94, 1775, 10, 94, 3, 94, 3, 94, 3, 94, 3, 94, 3, 95, 3, 95, 5, 95, 1783, 10, 95, 3, 95, 3, 95, 5, 95, 1787, 10, 95, 3, 96, 3, 96, 3, 96, 3, 96, 3, 97, 3, 97, 5, 97, 1795, 10, 97, 3, 98, 3, 98, 3, 98, 3, 98, 3, 98, 3, 98, 3, 99, 3, 99, 3, 99, 3, 99, 3, 100, 3, 100, 3, 100, 3, 100, 7, 100, 1811, 10, 100, 12, 100, 14, 100, 1814, 11, 100, 3, 100, 3, 100, 3, 100, 3, 100, 3, 101, 3, 101, 3, 101, 3, 101, 3, 101, 3, 102, 3, 102, 5, 102, 1827, 10, 102, 3, 103, 3, 103, 3, 103, 3, 103, 3, 103, 5, 103, 1834, 10, 103, 3, 103, 3, 103, 5, 103, 1838, 10, 103, 3, 104, 3, 104, 3, 104, 3, 104, 3, 104, 5, 104, 1845, 10, 104, 5, 104, 1847, 10, 104, 3, 105, 3, 105, 5, 105, 1851, 10, 105, 3, 105, 3, 105, 3, 105, 3, 105, 3, 105, 7, 105, 1858, 10, 105, 12, 105, 14, 105, 1861, 11, 105, 3, 106, 3, 106, 3, 106, 3, 106, 3, 106, 5, 106, 1868, 10, 106, 3, 107, 3, 107, 3, 107, 3, 107, 3, 107, 7, 107, 1875, 10, 107, 12, 107, 14, 107, 1878, 11, 107, 3, 107, 3, 107, 3, 108, 3, 108, 3, 108, 3, 109, 3, 109, 3, 109, 3, 109, 3, 109, 3, 109, 3, 110, 3, 110, 5, 110, 1893, 10, 110, 3, 110, 3, 110, 3, 110, 3, 110, 5, 110, 1899, 10, 110, 3, 110, 3, 110, 5, 110, 1903, 10, 110, 3, 111, 3, 111, 3, 111, 3, 111, 3, 111, 3, 111, 7, 111, 1911, 10, 111, 12, 111, 14, 111, 1914, 11, 111, 3, 111, 3, 111, 3, 111, 7, 111, 1919, 10, 111, 12, 111, 14, 111, 1922, 11, 111, 3, 112, 3, 112, 3, 112, 3, 112, 3, 112, 3, 112, 5, 112, 1930, 10, 112, 3, 112, 3, 112, 5, 112, 1934, 10, 112, 3, 112, 3, 112, 7, 112, 1938, 10, 112, 12, 112, 14, 112, 1941, 11, 112, 3, 113, 3, 113, 5, 113, 1945, 10, 113, 3, 114, 3, 114, 5, 114, 1949, 10, 114, 3, 115, 3, 115, 3, 115, 3, 115, 3, 115, 3, 115, 3, 115, 3, 115, 5, 115, 1959, 10, 115, 3, 116, 3, 116, 3, 117, 3, 117, 5, 117, 1965, 10, 117, 3, 118, 3, 118, 5, 118, 1969, 10, 118, 3, 118, 3, 118, 3, 118, 3, 118, 3, 118, 3, 118, 3, 118, 3, 118, 7, 118, 1979, 10, 118, 12, 118, 14, 118, 1982, 11, 118, 3, 118, 3, 118, 3, 119, 3, 119, 5, 119, 1988, 10, 119, 3, 120, 3, 120, 3, 121, 3, 121, 3, 121, 3, 121, 3, 121, 3, 121, 3, 121, 3, 121, 3, 121, 3, 121, 7, 121, 2002, 10, 121, 12, 121, 14, 121, 2005, 11, 121, 3, 121, 3, 121, 7, 121, 2009, 10, 121, 12, 121, 14, 121, 2012, 11, 121, 3, 122, 3, 122, 3, 122, 3, 122, 3, 122, 3, 122, 3, 122, 5, 122, 2021, 10, 122, 3, 123, 5, 123, 2024, 10, 123, 3, 123, 3, 123, 5, 123, 2028, 10, 123, 3, 124, 3, 124, 3, 125, 3, 125, 3, 125, 5, 125, 2035, 10, 125, 3, 125, 3, 125, 3, 125, 3, 125, 3, 125, 5, 125, 2042, 10, 125, 5, 125, 2044, 10, 125, 3, 126, 3, 126, 5, 126, 2048, 10, 126, 3, 127, 3, 127, 5, 127, 2052, 10, 127, 3, 128, 3, 128, 3, 128, 5, 128, 2057, 10, 128, 3, 129, 5, 129, 2060, 10, 129, 3, 129, 3, 129, 5, 129, 2064, 10, 129, 3, 129, 5, 129, 2067, 10, 129, 3, 129, 3, 129, 3, 130, 3, 130, 3, 130, 3, 131, 3, 131, 3, 131, 3, 131, 5, 131, 2078, 10, 131, 3, 131, 5, 131, 2081, 10, 131, 3, 131, 3, 131, 3, 131, 3, 132, 3, 132, 3, 132, 3, 133, 3, 133, 3, 133, 5, 133, 2092, 10, 133, 3, 133, 3, 133, 3, 133, 3, 133, 5, 133, 2098, 10, 133, 3, 133, 3, 133, 5, 133, 2102, 10, 133, 5, 133, 2104, 10, 133, 3, 134, 3, 134, 5, 134, 2108, 10, 134, 3, 134, 3, 134, 3, 135, 3, 135, 3, 135, 3, 136, 3, 136, 5, 136, 2117, 10, 136, 3, 136, 3, 136, 3, 136, 7, 136, 2122, 10, 136, 12, 136, 14, 136, 2125, 11, 136, 3, 136, 5, 136, 2128, 10, 136, 3, 136, 3, 136, 5, 136, 2132, 10, 136, 3, 136, 3, 136, 3, 136, 7, 136, 2137, 10, 136, 12, 136, 14, 136, 2140, 11, 136, 3, 136, 5, 136, 2143, 10, 136, 3, 137, 3, 137, 3, 137, 3, 137, 3, 137, 3, 137, 5, 137, 2151, 10, 137, 3, 138, 3, 138, 3, 138, 3, 138, 5, 138, 2157, 10, 138, 3, 138, 3, 138, 5, 138, 2161, 10, 138, 3, 138, 3, 138, 3, 138, 3, 138, 3, 138, 3, 139, 3, 139, 3, 139, 3, 139, 5, 139, 2172, 10, 139, 3, 139, 3, 139, 3, 139, 3, 139, 3, 139, 5, 139, 2179, 10, 139, 3, 139, 3, 139, 3, 139, 3, 139, 3, 139, 3, 140, 3, 140, 3, 140, 3, 140, 3, 140, 3, 140, 5, 140, 2192, 10, 140, 3, 141, 3, 141, 3, 141, 3, 141, 7, 141, 2198, 10, 141, 12, 141, 14, 141, 2201, 11, 141, 3, 142, 5, 142, 2204, 10, 142, 3, 142, 3, 142, 3, 143, 3, 143, 3, 143, 3, 143, 7, 143, 2212, 10, 143, 12, 143, 14, 143, 2215, 11, 143, 3, 144, 3, 144, 5, 144, 2219, 10, 144, 3, 144, 3, 144, 3, 144, 3, 144, 3, 144, 3, 145, 3, 145, 3, 145, 3, 145, 7, 145, 2230, 10, 145, 12, 145, 14, 145, 2233, 11, 145, 3, 145, 3, 145, 3, 146, 3, 146, 3, 146, 3, 146, 7, 146, 2241, 10, 146, 12, 146, 14, 146, 2244, 11, 146, 3, 147, 3, 147, 3, 147, 3, 147, 3, 147, 5, 147, 2251, 10, 147, 3, 148, 3, 148, 5, 148, 2255, 10, 148, 3, 148, 3, 148, 5, 148, 2259, 10, 148, 3, 148, 3, 148, 5, 148, 2263, 10, 148, 5, 148, 2265, 10, 148, 3, 149, 3, 149, 3, 149, 5, 149, 2270, 10, 149, 3, 149, 5, 149, 2273, 10, 149, 3, 149, 5, 149, 2276, 10, 149, 3, 149, 5, 149, 2279, 10, 149, 3, 149, 3, 149, 5, 149, 2283, 10, 149, 3, 149, 5, 149, 2286, 10, 149, 3, 149, 5, 149, 2289, 10, 149, 3, 150, 5, 150, 2292, 10, 150, 3, 150, 5, 150, 2295, 10, 150, 3, 150, 3, 150, 3, 150, 7, 150, 2300, 10, 150, 12, 150, 14, 150, 2303, 11, 150, 3, 151, 3, 151, 3, 152, 3, 152, 3, 152, 3, 153, 3, 153, 3, 153, 5, 153, 2313, 10, 153, 3, 153, 3, 153, 5, 153, 2317, 10, 153, 3, 153, 5, 153, 2320, 10, 153, 3, 154, 3, 154, 5, 154, 2324, 10, 154, 3, 154, 3, 154, 3, 154, 3, 154, 3, 154, 5, 154, 2331, 10, 154, 3, 155, 3, 155, 5, 155, 2335, 10, 155, 3, 155, 3, 155, 3, 156, 3, 156, 3, 156, 3, 156, 7, 156, 2343, 10, 156, 12, 156, 14, 156, 2346, 11, 156, 3, 157, 3, 157, 3, 157, 7, 157, 2351, 10, 157, 12, 157, 14, 157, 2354, 11, 157, 3, 158, 3, 158, 3, 158, 5, 158, 2359, 10, 158, 3, 159, 3, 159, 5, 159, 2363, 10, 159, 3, 160, 3, 160, 3, 160, 3, 160, 5, 160, 2369, 10, 160, 3, 161, 3, 161, 3, 161, 3, 161, 3, 161, 3, 161, 3, 161, 5, 161, 2378, 10, 161, 3, 162, 5, 162, 2381, 10, 162, 3, 162, 3, 162, 3, 162, 5, 162, 2386, 10, 162, 3, 162, 5, 162, 2389, 10, 162, 3, 163, 3, 163, 3, 163, 3, 163, 3, 163, 3, 163, 7, 163, 2397, 10, 163, 12, 163, 14, 163, 2400, 11, 163, 3, 163, 3, 163, 5, 163, 2404, 10, 163, 3, 164, 3, 164, 3, 164, 3, 164, 3, 164, 7, 164, 2411, 10, 164, 12, 164, 14, 164, 2414, 11, 164, 3, 164, 3, 164, 5, 164, 2418, 10, 164, 3, 165, 3, 165, 5, 165, 2422, 10, 165, 3, 165, 3, 165, 3, 165, 3, 165, 3, 165, 7, 165, 2429, 10, 165, 12, 165, 14, 165, 2432, 11, 165, 3, 165, 5, 165, 2435, 10, 165, 3, 166, 3, 166, 3, 167, 3, 167, 3, 167, 3, 168, 3, 168, 3, 168, 3, 168, 3, 168, 7, 168, 2447, 10, 168, 12, 168, 14, 168, 2450, 11, 168, 3, 169, 3, 169, 3, 169, 3, 170, 3, 170, 3, 170, 3, 171, 3, 171, 3, 171, 3, 171, 5, 171, 2462, 10, 171, 3, 171, 3, 171, 3, 171, 5, 171, 2467, 10, 171, 7, 171, 2469, 10, 171, 12, 171, 14, 171, 2472, 11, 171, 3, 172, 6, 172, 2475, 10, 172, 13, 172, 14, 172, 2476, 3, 173, 3, 173, 3, 173, 3, 173, 3, 173, 3, 173, 3, 173, 3, 173, 3, 173, 5, 173, 2488, 10, 173, 5, 173, 2490, 10, 173, 3, 174, 3, 174, 3, 174, 3, 174, 3, 174, 5, 174, 2497, 10, 174, 3, 174, 5, 174, 2500, 10, 174, 3, 175, 3, 175, 3, 175, 7, 175, 2505, 10, 175, 12, 175, 14, 175, 2508, 11, 175, 3, 176, 3, 176, 5, 176, 2512, 10, 176, 3, 176, 3, 176, 3, 176, 3, 176, 5, 176, 2518, 10, 176, 3, 176, 5, 176, 2521, 10, 176, 3, 176, 5, 176, 2524, 10, 176, 3, 177, 3, 177, 3, 177, 3, 178, 3, 178, 3, 178, 3, 178, 3, 178, 3, 178, 3, 178, 3, 178, 6, 178, 2537, 10, 178, 13, 178, 14, 178, 2538, 3, 179, 3, 179, 3, 179, 3, 179, 3, 179, 5, 179, 2546, 10, 179, 3, 179, 5, 179, 2549, 10, 179, 3, 179, 5, 179, 2552, 10, 179, 3, 180, 3, 180, 5, 180, 2556, 10, 180, 3, 180, 3, 180, 3, 180, 5, 180, 2561, 10, 180, 3, 180, 3, 180, 3, 180, 3, 180, 5, 180, 2567, 10, 180, 3, 181, 3, 181, 5, 181, 2571, 10, 181, 3, 181, 3, 181, 3, 181, 3, 181, 3, 181, 3, 181, 3, 181, 7, 181, 2580, 10, 181, 12, 181, 14, 181, 2583, 11, 181, 3, 181, 5, 181, 2586, 10, 181, 3, 181, 5, 181, 2589, 10, 181, 3, 182, 3, 182, 5, 182, 2593, 10, 182, 3, 182, 3, 182, 5, 182, 2597, 10, 182, 3, 182, 3, 182, 5, 182, 2601, 10, 182, 3, 183, 3, 183, 5, 183, 2605, 10, 183, 3, 183, 3, 183, 3, 184, 3, 184, 5, 184, 2611, 10, 184, 3, 184, 3, 184, 3, 185, 3, 185, 5, 185, 2617, 10, 185, 3, 185, 3, 185, 3, 185, 3, 185, 3, 185, 5, 185, 2624, 10, 185, 3, 185, 3, 185, 3, 185, 3, 185, 7, 185, 2630, 10, 185, 12, 185, 14, 185, 2633, 11, 185, 3, 186, 3, 186, 3, 186, 5, 186, 2638, 10, 186, 3, 187, 3, 187, 3, 187, 5, 187, 2643, 10, 187, 3, 187, 3, 187, 3, 187, 3, 187, 3, 187, 3, 187, 3, 187, 3, 187, 3, 187, 5, 187, 2654, 10, 187, 3, 187, 3, 187, 3, 187, 3, 187, 3, 187, 3, 187, 3, 187, 5, 187, 2663, 10, 187, 3, 188, 3, 188, 5, 188, 2667, 10, 188, 3, 188, 3, 188, 3, 188, 3, 188, 3, 188, 7, 188, 2674, 10, 188, 12, 188, 14, 188, 2677, 11, 188, 3, 188, 5, 188, 2680, 10, 188, 3, 188, 3, 188, 3, 189, 3, 189, 3, 189, 3, 189, 7, 189, 2688, 10, 189, 12, 189, 14, 189, 2691, 11, 189, 3, 189, 3, 189, 5, 189, 2695, 10, 189, 3, 189, 3, 189, 3, 189, 3, 189, 3, 189, 3, 190, 3, 190, 3, 190, 3, 190, 3, 191, 3, 191, 3, 192, 3, 192, 3, 192, 3, 192, 3, 192, 3, 192, 3, 192, 3, 192, 3, 192, 5, 192, 2717, 10, 192, 3, 192, 5, 192, 2720, 10, 192, 3, 193, 3, 193, 3, 193, 3, 193, 3, 193, 3, 193, 3, 193, 3, 193, 3, 193, 3, 193, 3, 193, 3, 193, 3, 193, 3, 193, 3, 193, 3, 193, 3, 193, 5, 193, 2739, 10, 193, 3, 193, 3, 193, 3, 193, 3, 193, 3, 193, 3, 193, 3, 193, 3, 193, 3, 193, 3, 193, 3, 193, 3, 193, 3, 193, 3, 193, 7, 193, 2755, 10, 193, 12, 193, 14, 193, 2758, 11, 193, 3, 194, 3, 194, 3, 194, 3, 194, 3, 194, 3, 194, 3, 194, 3, 194, 5, 194, 2768, 10, 194, 3, 195, 3, 195, 3, 195, 3, 195, 3, 196, 3, 196, 3, 197, 3, 197, 3, 197, 3, 197, 3, 197, 7, 197, 2781, 10, 197, 12, 197, 14, 197, 2784, 11, 197, 3, 198, 3, 198, 3, 198, 3, 198, 3, 198, 3, 198, 3, 198, 3, 198, 3, 198, 5, 198, 2795, 10, 198, 3, 199, 3, 199, 5, 199, 2799, 10, 199, 3, 200, 3, 200, 3, 200, 3, 200, 3, 200, 3, 200, 3, 200, 6, 200, 2808, 10, 200, 13, 200, 14, 200, 2809, 3, 200, 3, 200, 5, 200, 2814, 10, 200, 3, 200, 3, 200, 3, 201, 3, 201, 3, 201, 3, 201, 3, 201, 3, 201, 6, 201, 2824, 10, 201, 13, 201, 14, 201, 2825, 3, 201, 3, 201, 5, 201, 2830, 10, 201, 3, 201, 3, 201, 3, 202, 3, 202, 3, 202, 3, 202, 3, 203, 3, 203, 3, 203, 5, 203, 2841, 10, 203, 3, 203, 3, 203, 3, 203, 5, 203, 2846, 10, 203, 3, 203, 3, 203, 3, 203, 5, 203, 2851, 10, 203, 3, 203, 3, 203, 5, 203, 2855, 10, 203, 3, 203, 3, 203, 5, 203, 2859, 10, 203, 3, 203, 3, 203, 3, 203, 5, 203, 2864, 10, 203, 3, 203, 3, 203, 5, 203, 2868, 10, 203, 3, 203, 3, 203, 5, 203, 2872, 10, 203, 3, 203, 3, 203, 3, 203, 3, 203, 3, 203, 3, 203, 3, 203, 3, 203, 3, 203, 3, 203, 3, 203, 3, 203, 3, 203, 3, 203, 3, 203, 3, 203, 3, 203, 3, 203, 3, 203, 3, 203, 3, 203, 5, 203, 2895, 10, 203, 5, 203, 2897, 10, 203, 3, 203, 3, 203, 3, 203, 3, 203, 3, 203, 3, 203, 3, 203, 3, 203, 3, 203, 3, 203, 3, 203, 3, 203, 3, 203, 3, 203, 3, 203, 3, 203, 5, 203, 2915, 10, 203, 5, 203, 2917, 10, 203, 3, 203, 3, 203, 3, 203, 3, 203, 3, 203, 3, 203, 5, 203, 2925, 10, 203, 3, 203, 3, 203, 3, 203, 5, 203, 2930, 10, 203, 3, 203, 3, 203, 3, 203, 5, 203, 2935, 10, 203, 3, 203, 3, 203, 3, 203, 5, 203, 2940, 10, 203, 3, 203, 3, 203, 3, 203, 3, 203, 3, 203, 3, 203, 3, 203, 3, 203, 3, 203, 3, 203, 3, 203, 5, 203, 2953, 10, 203, 3, 203, 3, 203, 3, 203, 5, 203, 2958, 10, 203, 3, 203, 3, 203, 3, 203, 5, 203, 2963, 10, 203, 3, 203, 3, 203, 3, 203, 5, 203, 2968, 10, 203, 3, 203, 3, 203, 3, 203, 5, 203, 2973, 10, 203, 3, 203, 3, 203, 3, 203, 5, 203, 2978, 10, 203, 3, 203, 3, 203, 3, 203, 5, 203, 2983, 10, 203, 3, 203, 3, 203, 3, 203, 5, 203, 2988, 10, 203, 5, 203, 2990, 10, 203, 3, 204, 3, 204, 3, 205, 3, 205, 3, 205, 5, 205, 2997, 10, 205, 3, 205, 5, 205, 3000, 10, 205, 3, 205, 3, 205, 3, 206, 3, 206, 3, 206, 3, 206, 3, 206, 7, 206, 3009, 10, 206, 12, 206, 14, 206, 3012, 11, 206, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 5, 207, 3021, 10, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 5, 207, 3029, 10, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 5, 207, 3038, 10, 207, 3, 207, 3, 207, 3, 207, 3, 207, 5, 207, 3044, 10, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 7, 207, 3059, 10, 207, 12, 207, 14, 207, 3062, 11, 207, 5, 207, 3064, 10, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 7, 207, 3078, 10, 207, 12, 207, 14, 207, 3081, 11, 207, 5, 207, 3083, 10, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 7, 207, 3097, 10, 207, 12, 207, 14, 207, 3100, 11, 207, 5, 207, 3102, 10, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 7, 207, 3116, 10, 207, 12, 207, 14, 207, 3119, 11, 207, 5, 207, 3121, 10, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 7, 207, 3135, 10, 207, 12, 207, 14, 207, 3138, 11, 207, 5, 207, 3140, 10, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 7, 207, 3154, 10, 207, 12, 207, 14, 207, 3157, 11, 207, 5, 207, 3159, 10, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 7, 207, 3171, 10, 207, 12, 207, 14, 207, 3174, 11, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 6, 207, 3186, 10, 207, 13, 207, 14, 207, 3187, 3, 207, 3, 207, 5, 207, 3192, 10, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 5, 207, 3208, 10, 207, 3, 207, 3, 207, 3, 207, 3, 207, 5, 207, 3214, 10, 207, 3, 208, 3, 208, 3, 208, 5, 208, 3219, 10, 208, 3, 208, 3, 208, 3, 209, 3, 209, 3, 209, 7, 209, 3226, 10, 209, 12, 209, 14, 209, 3229, 11, 209, 3, 210, 3, 210, 3, 210, 3, 210, 5, 210, 3235, 10, 210, 5, 210, 3237, 10, 210, 3, 210, 3, 210, 3, 211, 3, 211, 5, 211, 3243, 10, 211, 3, 212, 3, 212, 5, 212, 3247, 10, 212, 3, 213, 3, 213, 7, 213, 3251, 10, 213, 12, 213, 14, 213, 3254, 11, 213, 3, 214, 3, 214, 3, 214, 3, 214, 3, 214, 3, 214, 3, 214, 3, 214, 3, 214, 3, 214, 3, 214, 3, 214, 5, 214, 3268, 10, 214, 3, 215, 3, 215, 3, 215, 3, 215, 3, 215, 5, 215, 3275, 10, 215, 3, 216, 7, 216, 3278, 10, 216, 12, 216, 14, 216, 3281, 11, 216, 3, 217, 3, 217, 3, 217, 3, 218, 3, 218, 3, 218, 3, 218, 5, 218, 3290, 10, 218, 3, 218, 3, 218, 3, 218, 7, 218, 3295, 10, 218, 12, 218, 14, 218, 3298, 11, 218, 5, 218, 3300, 10, 218, 3, 219, 3, 219, 3, 219, 3, 220, 3, 220, 3, 220, 3, 221, 5, 221, 3309, 10, 221, 3, 221, 3, 221, 5, 221, 3313, 10, 221, 3, 221, 3, 221, 3, 221, 5, 221, 3318, 10, 221, 7, 221, 3320, 10, 221, 12, 221, 14, 221, 3323, 11, 221, 3, 222, 3, 222, 5, 222, 3327, 10, 222, 3, 223, 5, 223, 3330, 10, 223, 3, 223, 3, 223, 3, 224, 5, 224, 3335, 10, 224, 3, 224, 3, 224, 3, 225, 3, 225, 3, 226, 3, 226, 3, 227, 3, 227, 3, 227, 3, 3279, 4, 368, 384, 228, 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, 2, 51, 4, 2, 3, 5, 15, 15, 4, 2, 16, 16, 18, 18, 3, 2, 34, 35, 5, 2, 30, 30, 41, 41, 44, 44, 3, 2, 48, 49, 3, 2, 51, 52, 4, 2, 22, 22, 65, 65, 3, 2, 78, 79, 3, 2, 82, 83, 3, 2, 89, 90, 4, 2, 83, 83, 92, 92, 3, 2, 96, 97, 3, 2, 98, 101, 3, 2, 103, 104, 4, 2, 84, 84, 115, 115, 3, 2, 177, 178, 4, 2, 74, 74, 179, 179, 4, 2, 139, 139, 180, 180, 3, 2, 181, 182, 3, 2, 183, 184, 4, 2, 41, 41, 44, 44, 4, 2, 45, 45, 188, 188, 4, 2, 32, 32, 190, 190, 3, 2, 197, 200, 3, 2, 203, 204, 3, 2, 207, 208, 3, 2, 227, 228, 4, 2, 217, 217, 232, 232, 5, 2, 83, 83, 211, 211, 238, 238, 3, 2, 249, 253, 4, 2, 81, 81, 254, 254, 4, 2, 37, 37, 257, 257, 5, 2, 14, 14, 20, 20, 265, 266, 4, 2, 264, 264, 266, 266, 4, 2, 111, 111, 269, 269, 3, 2, 278, 279, 4, 2, 275, 275, 280, 280, 3, 2, 285, 287, 4, 2, 182, 182, 294, 296, 4, 2, 82, 82, 299, 300, 4, 2, 79, 79, 304, 304, 4, 2, 186, 186, 297, 297, 4, 2, 67, 67, 311, 312, 3, 2, 318, 323, 3, 2, 324, 325, 4, 2, 57, 57, 327, 328, 3, 2, 11, 12, 3, 2, 368, 369, 24, 2, 13, 14, 17, 17, 20, 20, 22, 22, 28, 73, 75, 142, 144, 160, 162, 166, 168, 172, 174, 176, 179, 205, 209, 267, 269, 269, 273, 273, 275, 281, 283, 288, 290, 305, 311, 312, 317, 323, 325, 351, 358, 364, 368, 376, 2, 3772, 2, 454, 3, 2, 2, 2, 4, 464, 3, 2, 2, 2, 6, 469, 3, 2, 2, 2, 8, 489, 3, 2, 2, 2, 10, 491, 3, 2, 2, 2, 12, 503, 3, 2, 2, 2, 14, 566, 3, 2, 2, 2, 16, 568, 3, 2, 2, 2, 18, 570, 3, 2, 2, 2, 20, 576, 3, 2, 2, 2, 22, 582, 3, 2, 2, 2, 24, 584, 3, 2, 2, 2, 26, 600, 3, 2, 2, 2, 28, 605, 3, 2, 2, 2, 30, 623, 3, 2, 2, 2, 32, 625, 3, 2, 2, 2, 34, 662, 3, 2, 2, 2, 36, 672, 3, 2, 2, 2, 38, 683, 3, 2, 2, 2, 40, 703, 3, 2, 2, 2, 42, 706, 3, 2, 2, 2, 44, 708, 3, 2, 2, 2, 46, 718, 3, 2, 2, 2, 48, 727, 3, 2, 2, 2, 50, 738, 3, 2, 2, 2, 52, 753, 3, 2, 2, 2, 54, 790, 3, 2, 2, 2, 56, 792, 3, 2, 2, 2, 58, 800, 3, 2, 2, 2, 60, 811, 3, 2, 2, 2, 62, 820, 3, 2, 2, 2, 64, 823, 3, 2, 2, 2, 66, 836, 3, 2, 2, 2, 68, 846, 3, 2, 2, 2, 70, 859, 3, 2, 2, 2, 72, 892, 3, 2, 2, 2, 74, 897, 3, 2, 2, 2, 76, 927, 3, 2, 2, 2, 78, 929, 3, 2, 2, 2, 80, 963, 3, 2, 2, 2, 82, 1022, 3, 2, 2, 2, 84, 1024, 3, 2, 2, 2, 86, 1037, 3, 2, 2, 2, 88, 1044, 3, 2, 2, 2, 90, 1047, 3, 2, 2, 2, 92, 1052, 3, 2, 2, 2, 94, 1066, 3, 2, 2, 2, 96, 1086, 3, 2, 2, 2, 98, 1121, 3, 2, 2, 2, 100, 1141, 3, 2, 2, 2, 102, 1147, 3, 2, 2, 2, 104, 1149, 3, 2, 2, 2, 106, 1185, 3, 2, 2, 2, 108, 1191, 3, 2, 2, 2, 110, 1220, 3, 2, 2, 2, 112, 1222, 3, 2, 2, 2, 114, 1227, 3, 2, 2, 2, 116, 1229, 3, 2, 2, 2, 118, 1298, 3, 2, 2, 2, 120, 1346, 3, 2, 2, 2, 122, 1348, 3, 2, 2, 2, 124, 1370, 3, 2, 2, 2, 126, 1384, 3, 2, 2, 2, 128, 1386, 3, 2, 2, 2, 130, 1404, 3, 2, 2, 2, 132, 1413, 3, 2, 2, 2, 134, 1429, 3, 2, 2, 2, 136, 1441, 3, 2, 2, 2, 138, 1453, 3, 2, 2, 2, 140, 1476, 3, 2, 2, 2, 142, 1485, 3, 2, 2, 2, 144, 1498, 3, 2, 2, 2, 146, 1511, 3, 2, 2, 2, 148, 1520, 3, 2, 2, 2, 150, 1567, 3, 2, 2, 2, 152, 1611, 3, 2, 2, 2, 154, 1614, 3, 2, 2, 2, 156, 1629, 3, 2, 2, 2, 158, 1645, 3, 2, 2, 2, 160, 1647, 3, 2, 2, 2, 162, 1650, 3, 2, 2, 2, 164, 1679, 3, 2, 2, 2, 166, 1681, 3, 2, 2, 2, 168, 1697, 3, 2, 2, 2, 170, 1704, 3, 2, 2, 2, 172, 1710, 3, 2, 2, 2, 174, 1715, 3, 2, 2, 2, 176, 1718, 3, 2, 2, 2, 178, 1723, 3, 2, 2, 2, 180, 1740, 3, 2, 2, 2, 182, 1751, 3, 2, 2, 2, 184, 1760, 3, 2, 2, 2, 186, 1771, 3, 2, 2, 2, 188, 1780, 3, 2, 2, 2, 190, 1788, 3, 2, 2, 2, 192, 1794, 3, 2, 2, 2, 194, 1796, 3, 2, 2, 2, 196, 1802, 3, 2, 2, 2, 198, 1806, 3, 2, 2, 2, 200, 1819, 3, 2, 2, 2, 202, 1824, 3, 2, 2, 2, 204, 1828, 3, 2, 2, 2, 206, 1839, 3, 2, 2, 2, 208, 1848, 3, 2, 2, 2, 210, 1862, 3, 2, 2, 2, 212, 1869, 3, 2, 2, 2, 214, 1881, 3, 2, 2, 2, 216, 1884, 3, 2, 2, 2, 218, 1898, 3, 2, 2, 2, 220, 1904, 3, 2, 2, 2, 222, 1923, 3, 2, 2, 2, 224, 1944, 3, 2, 2, 2, 226, 1948, 3, 2, 2, 2, 228, 1958, 3, 2, 2, 2, 230, 1960, 3, 2, 2, 2, 232, 1962, 3, 2, 2, 2, 234, 1966, 3, 2, 2, 2, 236, 1985, 3, 2, 2, 2, 238, 1989, 3, 2, 2, 2, 240, 1991, 3, 2, 2, 2, 242, 2020, 3, 2, 2, 2, 244, 2023, 3, 2, 2, 2, 246, 2029, 3, 2, 2, 2, 248, 2031, 3, 2, 2, 2, 250, 2045, 3, 2, 2, 2, 252, 2049, 3, 2, 2, 2, 254, 2056, 3, 2, 2, 2, 256, 2063, 3, 2, 2, 2, 258, 2070, 3, 2, 2, 2, 260, 2073, 3, 2, 2, 2, 262, 2085, 3, 2, 2, 2, 264, 2088, 3, 2, 2, 2, 266, 2105, 3, 2, 2, 2, 268, 2111, 3, 2, 2, 2, 270, 2114, 3, 2, 2, 2, 272, 2144, 3, 2, 2, 2, 274, 2152, 3, 2, 2, 2, 276, 2167, 3, 2, 2, 2, 278, 2191, 3, 2, 2, 2, 280, 2193, 3, 2, 2, 2, 282, 2203, 3, 2, 2, 2, 284, 2207, 3, 2, 2, 2, 286, 2216, 3, 2, 2, 2, 288, 2225, 3, 2, 2, 2, 290, 2236, 3, 2, 2, 2, 292, 2250, 3, 2, 2, 2, 294, 2264, 3, 2, 2, 2, 296, 2266, 3, 2, 2, 2, 298, 2291, 3, 2, 2, 2, 300, 2304, 3, 2, 2, 2, 302, 2306, 3, 2, 2, 2, 304, 2319, 3, 2, 2, 2, 306, 2330, 3, 2, 2, 2, 308, 2334, 3, 2, 2, 2, 310, 2338, 3, 2, 2, 2, 312, 2347, 3, 2, 2, 2, 314, 2358, 3, 2, 2, 2, 316, 2360, 3, 2, 2, 2, 318, 2364, 3, 2, 2, 2, 320, 2377, 3, 2, 2, 2, 322, 2388, 3, 2, 2, 2, 324, 2390, 3, 2, 2, 2, 326, 2417, 3, 2, 2, 2, 328, 2419, 3, 2, 2, 2, 330, 2436, 3, 2, 2, 2, 332, 2438, 3, 2, 2, 2, 334, 2441, 3, 2, 2, 2, 336, 2451, 3, 2, 2, 2, 338, 2454, 3, 2, 2, 2, 340, 2457, 3, 2, 2, 2, 342, 2474, 3, 2, 2, 2, 344, 2489, 3, 2, 2, 2, 346, 2491, 3, 2, 2, 2, 348, 2501, 3, 2, 2, 2, 350, 2517, 3, 2, 2, 2, 352, 2525, 3, 2, 2, 2, 354, 2528, 3, 2, 2, 2, 356, 2545, 3, 2, 2, 2, 358, 2566, 3, 2, 2, 2, 360, 2588, 3, 2, 2, 2, 362, 2590, 3, 2, 2, 2, 364, 2602, 3, 2, 2, 2, 366, 2608, 3, 2, 2, 2, 368, 2623, 3, 2, 2, 2, 370, 2637, 3, 2, 2, 2, 372, 2662, 3, 2, 2, 2, 374, 2664, 3, 2, 2, 2, 376, 2683, 3, 2, 2, 2, 378, 2701, 3, 2, 2, 2, 380, 2705, 3, 2, 2, 2, 382, 2719, 3, 2, 2, 2, 384, 2738, 3, 2, 2, 2, 386, 2767, 3, 2, 2, 2, 388, 2769, 3, 2, 2, 2, 390, 2773, 3, 2, 2, 2, 392, 2775, 3, 2, 2, 2, 394, 2794, 3, 2, 2, 2, 396, 2798, 3, 2, 2, 2, 398, 2800, 3, 2, 2, 2, 400, 2817, 3, 2, 2, 2, 402, 2833, 3, 2, 2, 2, 404, 2989, 3, 2, 2, 2, 406, 2991, 3, 2, 2, 2, 408, 2993, 3, 2, 2, 2, 410, 3003, 3, 2, 2, 2, 412, 3213, 3, 2, 2, 2, 414, 3215, 3, 2, 2, 2, 416, 3222, 3, 2, 2, 2, 418, 3230, 3, 2, 2, 2, 420, 3242, 3, 2, 2, 2, 422, 3246, 3, 2, 2, 2, 424, 3248, 3, 2, 2, 2, 426, 3267, 3, 2, 2, 2, 428, 3274, 3, 2, 2, 2, 430, 3279, 3, 2, 2, 2, 432, 3282, 3, 2, 2, 2, 434, 3299, 3, 2, 2, 2, 436, 3301, 3, 2, 2, 2, 438, 3304, 3, 2, 2, 2, 440, 3308, 3, 2, 2, 2, 442, 3326, 3, 2, 2, 2, 444, 3329, 3, 2, 2, 2, 446, 3334, 3, 2, 2, 2, 448, 3338, 3, 2, 2, 2, 450, 3340, 3, 2, 2, 2, 452, 3342, 3, 2, 2, 2, 454, 455, 5, 4, 3, 2, 455, 456, 7, 2, 2, 3, 456, 3, 3, 2, 2, 2, 457, 460, 5, 6, 4, 2, 458, 460, 5, 14, 8, 2, 459, 457, 3, 2, 2, 2, 459, 458, 3, 2, 2, 2, 460, 462, 3, 2, 2, 2, 461, 463, 7, 13, 2, 2, 462, 461, 3, 2, 2, 2, 462, 463, 3, 2, 2, 2, 463, 465, 3, 2, 2, 2, 464, 459, 3, 2, 2, 2, 465, 466, 3, 2, 2, 2, 466, 464, 3, 2, 2, 2, 466, 467, 3, 2, 2, 2, 467, 5, 3, 2, 2, 2, 468, 470, 5, 48, 25, 2, 469, 468, 3, 2, 2, 2, 469, 470, 3, 2, 2, 2, 470, 471, 3, 2, 2, 2, 471, 472, 7, 14, 2, 2, 472, 474, 5, 4, 3, 2, 473, 475, 5, 18, 10, 2, 474, 473, 3, 2, 2, 2, 474, 475, 3, 2, 2, 2, 475, 476, 3, 2, 2, 2, 476, 477, 5, 10, 6, 2, 477, 7, 3, 2, 2, 2, 478, 479, 7, 14, 2, 2, 479, 481, 5, 4, 3, 2, 480, 482, 5, 18, 10, 2, 481, 480, 3, 2, 2, 2, 481, 482, 3, 2, 2, 2, 482, 483, 3, 2, 2, 2, 483, 484, 5, 10, 6, 2, 484, 490, 3, 2, 2, 2, 485, 487, 5, 14, 8, 2, 486, 488, 7, 15, 2, 2, 487, 486, 3, 2, 2, 2, 487, 488, 3, 2, 2, 2, 488, 490, 3, 2, 2, 2, 489, 478, 3, 2, 2, 2, 489, 485, 3, 2, 2, 2, 490, 9, 3, 2, 2, 2, 491, 492, 6, 6, 2, 2, 492, 493, 7, 16, 2, 2, 493, 11, 3, 2, 2, 2, 494, 504, 5, 6, 4, 2, 495, 497, 5, 14, 8, 2, 496, 495, 3, 2, 2, 2, 497, 498, 3, 2, 2, 2, 498, 496, 3, 2, 2, 2, 498, 499, 3, 2, 2, 2, 499, 501, 3, 2, 2, 2, 500, 502, 7, 13, 2, 2, 501, 500, 3, 2, 2, 2, 501, 502, 3, 2, 2, 2, 502, 504, 3, 2, 2, 2, 503, 494, 3, 2, 2, 2, 503, 496, 3, 2, 2, 2, 504, 13, 3, 2, 2, 2, 505, 567, 5, 26, 14, 2, 506, 567, 5, 36, 19, 2, 507, 567, 5, 112, 57, 2, 508, 567, 5, 38, 20, 2, 509, 567, 5, 40, 21, 2, 510, 567, 5, 42, 22, 2, 511, 567, 5, 44, 23, 2, 512, 567, 5, 210, 106, 2, 513, 567, 5, 214, 108, 2, 514, 567, 5, 216, 109, 2, 515, 567, 5, 220, 111, 2, 516, 567, 5, 222, 112, 2, 517, 567, 5, 232, 117, 2, 518, 567, 5, 128, 65, 2, 519, 567, 5, 132, 67, 2, 520, 567, 5, 234, 118, 2, 521, 567, 5, 70, 36, 2, 522, 567, 5, 136, 69, 2, 523, 567, 5, 142, 72, 2, 524, 567, 5, 148, 75, 2, 525, 567, 5, 68, 35, 2, 526, 567, 5, 46, 24, 2, 527, 567, 5, 362, 182, 2, 528, 567, 5, 366, 184, 2, 529, 567, 5, 158, 80, 2, 530, 567, 5, 160, 81, 2, 531, 567, 5, 162, 82, 2, 532, 567, 5, 188, 95, 2, 533, 567, 5, 208, 105, 2, 534, 567, 5, 274, 138, 2, 535, 567, 5, 276, 139, 2, 536, 567, 5, 164, 83, 2, 537, 567, 5, 176, 89, 2, 538, 567, 5, 178, 90, 2, 539, 567, 5, 186, 94, 2, 540, 567, 5, 190, 96, 2, 541, 567, 5, 198, 100, 2, 542, 567, 5, 202, 102, 2, 543, 567, 5, 204, 103, 2, 544, 567, 5, 354, 178, 2, 545, 567, 5, 206, 104, 2, 546, 567, 5, 242, 122, 2, 547, 567, 5, 244, 123, 2, 548, 567, 5, 246, 124, 2, 549, 567, 5, 248, 125, 2, 550, 567, 5, 250, 126, 2, 551, 567, 5, 252, 127, 2, 552, 567, 5, 282, 142, 2, 553, 567, 5, 262, 132, 2, 554, 567, 5, 264, 133, 2, 555, 567, 5, 346, 174, 2, 556, 567, 5, 268, 135, 2, 557, 567, 5, 266, 134, 2, 558, 567, 5, 270, 136, 2, 559, 567, 5, 272, 137, 2, 560, 567, 5, 278, 140, 2, 561, 567, 5, 424, 213, 2, 562, 567, 5, 428, 215, 2, 563, 567, 5, 22, 12, 2, 564, 567, 5, 24, 13, 2, 565, 567, 5, 16, 9, 2, 566, 505, 3, 2, 2, 2, 566, 506, 3, 2, 2, 2, 566, 507, 3, 2, 2, 2, 566, 508, 3, 2, 2, 2, 566, 509, 3, 2, 2, 2, 566, 510, 3, 2, 2, 2, 566, 511, 3, 2, 2, 2, 566, 512, 3, 2, 2, 2, 566, 513, 3, 2, 2, 2, 566, 514, 3, 2, 2, 2, 566, 515, 3, 2, 2, 2, 566, 516, 3, 2, 2, 2, 566, 517, 3, 2, 2, 2, 566, 518, 3, 2, 2, 2, 566, 519, 3, 2, 2, 2, 566, 520, 3, 2, 2, 2, 566, 521, 3, 2, 2, 2, 566, 522, 3, 2, 2, 2, 566, 523, 3, 2, 2, 2, 566, 524, 3, 2, 2, 2, 566, 525, 3, 2, 2, 2, 566, 526, 3, 2, 2, 2, 566, 527, 3, 2, 2, 2, 566, 528, 3, 2, 2, 2, 566, 529, 3, 2, 2, 2, 566, 530, 3, 2, 2, 2, 566, 531, 3, 2, 2, 2, 566, 532, 3, 2, 2, 2, 566, 533, 3, 2, 2, 2, 566, 534, 3, 2, 2, 2, 566, 535, 3, 2, 2, 2, 566, 536, 3, 2, 2, 2, 566, 537, 3, 2, 2, 2, 566, 538, 3, 2, 2, 2, 566, 539, 3, 2, 2, 2, 566, 540, 3, 2, 2, 2, 566, 541, 3, 2, 2, 2, 566, 542, 3, 2, 2, 2, 566, 543, 3, 2, 2, 2, 566, 544, 3, 2, 2, 2, 566, 545, 3, 2, 2, 2, 566, 546, 3, 2, 2, 2, 566, 547, 3, 2, 2, 2, 566, 548, 3, 2, 2, 2, 566, 549, 3, 2, 2, 2, 566, 550, 3, 2, 2, 2, 566, 551, 3, 2, 2, 2, 566, 552, 3, 2, 2, 2, 566, 553, 3, 2, 2, 2, 566, 554, 3, 2, 2, 2, 566, 555, 3, 2, 2, 2, 566, 556, 3, 2, 2, 2, 566, 557, 3, 2, 2, 2, 566, 558, 3, 2, 2, 2, 566, 559, 3, 2, 2, 2, 566, 560, 3, 2, 2, 2, 566, 561, 3, 2, 2, 2, 566, 562, 3, 2, 2, 2, 566, 563, 3, 2, 2, 2, 566, 564, 3, 2, 2, 2, 566, 565, 3, 2, 2, 2, 567, 15, 3, 2, 2, 2, 568, 569, 9, 2, 2, 2, 569, 17, 3, 2, 2, 2, 570, 572, 7, 17, 2, 2, 571, 573, 5, 20, 11, 2, 572, 571, 3, 2, 2, 2, 573, 574, 3, 2, 2, 2, 574, 572, 3, 2, 2, 2, 574, 575, 3, 2, 2, 2, 575, 19, 3, 2, 2, 2, 576, 577, 7, 18, 2, 2, 577, 578, 7, 19, 2, 2, 578, 579, 7, 20, 2, 2, 579, 580, 5, 4, 3, 2, 580, 581, 10, 3, 2, 2, 581, 21, 3, 2, 2, 2, 582, 583, 7, 21, 2, 2, 583, 23, 3, 2, 2, 2, 584, 585, 6, 13, 3, 2, 585, 586, 5, 384, 193, 2, 586, 25, 3, 2, 2, 2, 587, 588, 7, 22, 2, 2, 588, 601, 5, 254, 128, 2, 589, 591, 7, 22, 2, 2, 590, 589, 3, 2, 2, 2, 590, 591, 3, 2, 2, 2, 591, 592, 3, 2, 2, 2, 592, 597, 5, 28, 15, 2, 593, 594, 7, 23, 2, 2, 594, 596, 5, 28, 15, 2, 595, 593, 3, 2, 2, 2, 596, 599, 3, 2, 2, 2, 597, 595, 3, 2, 2, 2, 597, 598, 3, 2, 2, 2, 598, 601, 3, 2, 2, 2, 599, 597, 3, 2, 2, 2, 600, 587, 3, 2, 2, 2, 600, 590, 3, 2, 2, 2, 601, 27, 3, 2, 2, 2, 602, 606, 5, 30, 16, 2, 603, 606, 5, 32, 17, 2, 604, 606, 5, 34, 18, 2, 605, 602, 3, 2, 2, 2, 605, 603, 3, 2, 2, 2, 605, 604, 3, 2, 2, 2, 606, 29, 3, 2, 2, 2, 607, 609, 5, 440, 221, 2, 608, 610, 7, 24, 2, 2, 609, 608, 3, 2, 2, 2, 609, 610, 3, 2, 2, 2, 610, 611, 3, 2, 2, 2, 611, 612, 7, 25, 2, 2, 612, 613, 5, 384, 193, 2, 613, 624, 3, 2, 2, 2, 614, 615, 7, 26, 2, 2, 615, 616, 5, 440, 221, 2, 616, 618, 7, 27, 2, 2, 617, 619, 7, 24, 2, 2, 618, 617, 3, 2, 2, 2, 618, 619, 3, 2, 2, 2, 619, 620, 3, 2, 2, 2, 620, 621, 7, 25, 2, 2, 621, 622, 5, 384, 193, 2, 622, 624, 3, 2, 2, 2, 623, 607, 3, 2, 2, 2, 623, 614, 3, 2, 2, 2, 624, 31, 3, 2, 2, 2, 625, 626, 7, 26, 2, 2, 626, 631, 5, 440, 221, 2, 627, 628, 7, 23, 2, 2, 628, 630, 5, 440, 221, 2, 629, 627, 3, 2, 2, 2, 630, 633, 3, 2, 2, 2, 631, 629, 3, 2, 2, 2, 631, 632, 3, 2, 2, 2, 632, 634, 3, 2, 2, 2, 633, 631, 3, 2, 2, 2, 634, 636, 7, 27, 2, 2, 635, 637, 7, 24, 2, 2, 636, 635, 3, 2, 2, 2, 636, 637, 3, 2, 2, 2, 637, 638, 3, 2, 2, 2, 638, 639, 7, 25, 2, 2, 639, 640, 7, 26, 2, 2, 640, 645, 5, 384, 193, 2, 641, 642, 7, 23, 2, 2, 642, 644, 5, 384, 193, 2, 643, 641, 3, 2, 2, 2, 644, 647, 3, 2, 2, 2, 645, 643, 3, 2, 2, 2, 645, 646, 3, 2, 2, 2, 646, 648, 3, 2, 2, 2, 647, 645, 3, 2, 2, 2, 648, 649, 7, 27, 2, 2, 649, 33, 3, 2, 2, 2, 650, 663, 5, 440, 221, 2, 651, 652, 7, 26, 2, 2, 652, 657, 5, 440, 221, 2, 653, 654, 7, 23, 2, 2, 654, 656, 5, 440, 221, 2, 655, 653, 3, 2, 2, 2, 656, 659, 3, 2, 2, 2, 657, 655, 3, 2, 2, 2, 657, 658, 3, 2, 2, 2, 658, 660, 3, 2, 2, 2, 659, 657, 3, 2, 2, 2, 660, 661, 7, 27, 2, 2, 661, 663, 3, 2, 2, 2, 662, 650, 3, 2, 2, 2, 662, 651, 3, 2, 2, 2, 663, 665, 3, 2, 2, 2, 664, 666, 7, 24, 2, 2, 665, 664, 3, 2, 2, 2, 665, 666, 3, 2, 2, 2, 666, 667, 3, 2, 2, 2, 667, 668, 7, 25, 2, 2, 668, 669, 7, 26, 2, 2, 669, 670, 5, 282, 142, 2, 670, 671, 7, 27, 2, 2, 671, 35, 3, 2, 2, 2, 672, 673, 7, 28, 2, 2, 673, 674, 5, 440, 221, 2, 674, 675, 7, 29, 2, 2, 675, 679, 7, 30, 2, 2, 676, 677, 7, 31, 2, 2, 677, 680, 7, 22, 2, 2, 678, 680, 7, 32, 2, 2, 679, 676, 3, 2, 2, 2, 679, 678, 3, 2, 2, 2, 680, 681, 3, 2, 2, 2, 681, 682, 5, 440, 221, 2, 682, 37, 3, 2, 2, 2, 683, 686, 7, 33, 2, 2, 684, 685, 7, 31, 2, 2, 685, 687, 7, 22, 2, 2, 686, 684, 3, 2, 2, 2, 686, 687, 3, 2, 2, 2, 687, 688, 3, 2, 2, 2, 688, 689, 9, 4, 2, 2, 689, 690, 7, 26, 2, 2, 690, 695, 5, 440, 221, 2, 691, 692, 7, 23, 2, 2, 692, 694, 5, 440, 221, 2, 693, 691, 3, 2, 2, 2, 694, 697, 3, 2, 2, 2, 695, 693, 3, 2, 2, 2, 695, 696, 3, 2, 2, 2, 696, 698, 3, 2, 2, 2, 697, 695, 3, 2, 2, 2, 698, 699, 7, 27, 2, 2, 699, 700, 7, 36, 2, 2, 700, 701, 7, 32, 2, 2, 701, 702, 5, 440, 221, 2, 702, 39, 3, 2, 2, 2, 703, 704, 7, 14, 2, 2, 704, 705, 7, 37, 2, 2, 705, 41, 3, 2, 2, 2, 706, 707, 7, 38, 2, 2, 707, 43, 3, 2, 2, 2, 708, 709, 7, 39, 2, 2, 709, 716, 5, 440, 221, 2, 710, 712, 7, 26, 2, 2, 711, 713, 5, 416, 209, 2, 712, 711, 3, 2, 2, 2, 712, 713, 3, 2, 2, 2, 713, 714, 3, 2, 2, 2, 714, 717, 7, 27, 2, 2, 715, 717, 5, 416, 209, 2, 716, 710, 3, 2, 2, 2, 716, 715, 3, 2, 2, 2, 716, 717, 3, 2, 2, 2, 717, 45, 3, 2, 2, 2, 718, 719, 7, 40, 2, 2, 719, 724, 5, 52, 27, 2, 720, 721, 7, 23, 2, 2, 721, 723, 5, 52, 27, 2, 722, 720, 3, 2, 2, 2, 723, 726, 3, 2, 2, 2, 724, 722, 3, 2, 2, 2, 724, 725, 3, 2, 2, 2, 725, 47, 3, 2, 2, 2, 726, 724, 3, 2, 2, 2, 727, 728, 7, 40, 2, 2, 728, 729, 5, 52, 27, 2, 729, 735, 7, 15, 2, 2, 730, 731, 5, 52, 27, 2, 731, 732, 7, 15, 2, 2, 732, 734, 3, 2, 2, 2, 733, 730, 3, 2, 2, 2, 734, 737, 3, 2, 2, 2, 735, 733, 3, 2, 2, 2, 735, 736, 3, 2, 2, 2, 736, 49, 3, 2, 2, 2, 737, 735, 3, 2, 2, 2, 738, 739, 5, 52, 27, 2, 739, 745, 7, 15, 2, 2, 740, 741, 5, 52, 27, 2, 741, 742, 7, 15, 2, 2, 742, 744, 3, 2, 2, 2, 743, 740, 3, 2, 2, 2, 744, 747, 3, 2, 2, 2, 745, 743, 3, 2, 2, 2, 745, 746, 3, 2, 2, 2, 746, 51, 3, 2, 2, 2, 747, 745, 3, 2, 2, 2, 748, 754, 5, 58, 30, 2, 749, 754, 5, 56, 29, 2, 750, 754, 5, 64, 33, 2, 751, 754, 5, 54, 28, 2, 752, 754, 5, 66, 34, 2, 753, 748, 3, 2, 2, 2, 753, 749, 3, 2, 2, 2, 753, 750, 3, 2, 2, 2, 753, 751, 3, 2, 2, 2, 753, 752, 3, 2, 2, 2, 754, 53, 3, 2, 2, 2, 755, 760, 5, 440, 221, 2, 756, 757, 7, 23, 2, 2, 757, 759, 5, 440, 221, 2, 758, 756, 3, 2, 2, 2, 759, 762, 3, 2, 2, 2, 760, 758, 3, 2, 2, 2, 760, 761, 3, 2, 2, 2, 761, 764, 3, 2, 2, 2, 762, 760, 3, 2, 2, 2, 763, 765, 7, 41, 2, 2, 764, 763, 3, 2, 2, 2, 764, 765, 3, 2, 2, 2, 765, 766, 3, 2, 2, 2, 766, 768, 5, 120, 61, 2, 767, 769, 5, 122, 62, 2, 768, 767, 3, 2, 2, 2, 768, 769, 3, 2, 2, 2, 769, 773, 3, 2, 2, 2, 770, 772, 5, 124, 63, 2, 771, 770, 3, 2, 2, 2, 772, 775, 3, 2, 2, 2, 773, 771, 3, 2, 2, 2, 773, 774, 3, 2, 2, 2, 774, 777, 3, 2, 2, 2, 775, 773, 3, 2, 2, 2, 776, 778, 5, 126, 64, 2, 777, 776, 3, 2, 2, 2, 777, 778, 3, 2, 2, 2, 778, 791, 3, 2, 2, 2, 779, 780, 5, 440, 221, 2, 780, 782, 7, 42, 2, 2, 781, 783, 7, 41, 2, 2, 782, 781, 3, 2, 2, 2, 782, 783, 3, 2, 2, 2, 783, 784, 3, 2, 2, 2, 784, 786, 5, 120, 61, 2, 785, 787, 5, 122, 62, 2, 786, 785, 3, 2, 2, 2, 786, 787, 3, 2, 2, 2, 787, 788, 3, 2, 2, 2, 788, 789, 5, 126, 64, 2, 789, 791, 3, 2, 2, 2, 790, 755, 3, 2, 2, 2, 790, 779, 3, 2, 2, 2, 791, 55, 3, 2, 2, 2, 792, 793, 5, 440, 221, 2, 793, 794, 7, 43, 2, 2, 794, 57, 3, 2, 2, 2, 795, 796, 7, 29, 2, 2, 796, 801, 5, 440, 221, 2, 797, 798, 5, 440, 221, 2, 798, 799, 7, 29, 2, 2, 799, 801, 3, 2, 2, 2, 800, 795, 3, 2, 2, 2, 800, 797, 3, 2, 2, 2, 801, 804, 3, 2, 2, 2, 802, 805, 5, 60, 31, 2, 803, 805, 5, 62, 32, 2, 804, 802, 3, 2, 2, 2, 804, 803, 3, 2, 2, 2, 804, 805, 3, 2, 2, 2, 805, 806, 3, 2, 2, 2, 806, 809, 9, 5, 2, 2, 807, 810, 5, 282, 142, 2, 808, 810, 5, 384, 193, 2, 809, 807, 3, 2, 2, 2, 809, 808, 3, 2, 2, 2, 810, 59, 3, 2, 2, 2, 811, 812, 7, 36, 2, 2, 812, 814, 7, 45, 2, 2, 813, 815, 7, 46, 2, 2, 814, 813, 3, 2, 2, 2, 814, 815, 3, 2, 2, 2, 815, 818, 3, 2, 2, 2, 816, 817, 7, 47, 2, 2, 817, 819, 9, 6, 2, 2, 818, 816, 3, 2, 2, 2, 818, 819, 3, 2, 2, 2, 819, 61, 3, 2, 2, 2, 820, 821, 7, 50, 2, 2, 821, 822, 7, 45, 2, 2, 822, 63, 3, 2, 2, 2, 823, 824, 9, 7, 2, 2, 824, 825, 7, 53, 2, 2, 825, 831, 7, 30, 2, 2, 826, 832, 7, 54, 2, 2, 827, 832, 7, 55, 2, 2, 828, 829, 7, 56, 2, 2, 829, 832, 7, 57, 2, 2, 830, 832, 5, 440, 221, 2, 831, 826, 3, 2, 2, 2, 831, 827, 3, 2, 2, 2, 831, 828, 3, 2, 2, 2, 831, 830, 3, 2, 2, 2, 832, 833, 3, 2, 2, 2, 833, 834, 5, 8, 5, 2, 834, 65, 3, 2, 2, 2, 835, 837, 7, 58, 2, 2, 836, 835, 3, 2, 2, 2, 836, 837, 3, 2, 2, 2, 837, 838, 3, 2, 2, 2, 838, 839, 7, 59, 2, 2, 839, 840, 7, 60, 2, 2, 840, 842, 5, 440, 221, 2, 841, 843, 5, 86, 44, 2, 842, 841, 3, 2, 2, 2, 842, 843, 3, 2, 2, 2, 843, 844, 3, 2, 2, 2, 844, 845, 5, 72, 37, 2, 845, 67, 3, 2, 2, 2, 846, 847, 7, 61, 2, 2, 847, 851, 7, 60, 2, 2, 848, 849, 7, 62, 2, 2, 849, 850, 7, 56, 2, 2, 850, 852, 7, 63, 2, 2, 851, 848, 3, 2, 2, 2, 851, 852, 3, 2, 2, 2, 852, 853, 3, 2, 2, 2, 853, 855, 5, 330, 166, 2, 854, 856, 5, 86, 44, 2, 855, 854, 3, 2, 2, 2, 855, 856, 3, 2, 2, 2, 856, 857, 3, 2, 2, 2, 857, 858, 5, 72, 37, 2, 858, 69, 3, 2, 2, 2, 859, 866, 7, 61, 2, 2, 860, 861, 7, 64, 2, 2, 861, 867, 7, 59, 2, 2, 862, 864, 9, 8, 2, 2, 863, 862, 3, 2, 2, 2, 863, 864, 3, 2, 2, 2, 864, 865, 3, 2, 2, 2, 865, 867, 7, 66, 2, 2, 866, 860, 3, 2, 2, 2, 866, 863, 3, 2, 2, 2, 867, 868, 3, 2, 2, 2, 868, 869, 7, 60, 2, 2, 869, 871, 5, 440, 221, 2, 870, 872, 5, 86, 44, 2, 871, 870, 3, 2, 2, 2, 871, 872, 3, 2, 2, 2, 872, 873, 3, 2, 2, 2, 873, 874, 5, 72, 37, 2, 874, 71, 3, 2, 2, 2, 875, 877, 7, 41, 2, 2, 876, 875, 3, 2, 2, 2, 876, 877, 3, 2, 2, 2, 877, 878, 3, 2, 2, 2, 878, 879, 7, 26, 2, 2, 879, 880, 5, 282, 142, 2, 880, 881, 7, 27, 2, 2, 881, 893, 3, 2, 2, 2, 882, 884, 7, 41, 2, 2, 883, 882, 3, 2, 2, 2, 883, 884, 3, 2, 2, 2, 884, 885, 3, 2, 2, 2, 885, 893, 5, 282, 142, 2, 886, 887, 7, 26, 2, 2, 887, 888, 5, 74, 38, 2, 888, 889, 7, 27, 2, 2, 889, 893, 3, 2, 2, 2, 890, 891, 7, 67, 2, 2, 891, 893, 5, 330, 166, 2, 892, 876, 3, 2, 2, 2, 892, 883, 3, 2, 2, 2, 892, 886, 3, 2, 2, 2, 892, 890, 3, 2, 2, 2, 893, 895, 3, 2, 2, 2, 894, 896, 5, 92, 47, 2, 895, 894, 3, 2, 2, 2, 895, 896, 3, 2, 2, 2, 896, 73, 3, 2, 2, 2, 897, 902, 5, 76, 39, 2, 898, 899, 7, 23, 2, 2, 899, 901, 5, 76, 39, 2, 900, 898, 3, 2, 2, 2, 901, 904, 3, 2, 2, 2, 902, 900, 3, 2, 2, 2, 902, 903, 3, 2, 2, 2, 903, 75, 3, 2, 2, 2, 904, 902, 3, 2, 2, 2, 905, 906, 5, 78, 40, 2, 906, 908, 5, 120, 61, 2, 907, 909, 5, 122, 62, 2, 908, 907, 3, 2, 2, 2, 908, 909, 3, 2, 2, 2, 909, 913, 3, 2, 2, 2, 910, 912, 5, 124, 63, 2, 911, 910, 3, 2, 2, 2, 912, 915, 3, 2, 2, 2, 913, 911, 3, 2, 2, 2, 913, 914, 3, 2, 2, 2, 914, 919, 3, 2, 2, 2, 915, 913, 3, 2, 2, 2, 916, 918, 5, 80, 41, 2, 917, 916, 3, 2, 2, 2, 918, 921, 3, 2, 2, 2, 919, 917, 3, 2, 2, 2, 919, 920, 3, 2, 2, 2, 920, 928, 3, 2, 2, 2, 921, 919, 3, 2, 2, 2, 922, 923, 7, 68, 2, 2, 923, 925, 5, 440, 221, 2, 924, 922, 3, 2, 2, 2, 924, 925, 3, 2, 2, 2, 925, 926, 3, 2, 2, 2, 926, 928, 5, 82, 42, 2, 927, 905, 3, 2, 2, 2, 927, 924, 3, 2, 2, 2, 928, 77, 3, 2, 2, 2, 929, 930, 5, 440, 221, 2, 930, 79, 3, 2, 2, 2, 931, 964, 5, 126, 64, 2, 932, 934, 7, 56, 2, 2, 933, 932, 3, 2, 2, 2, 933, 934, 3, 2, 2, 2, 934, 935, 3, 2, 2, 2, 935, 964, 7, 21, 2, 2, 936, 937, 7, 69, 2, 2, 937, 964, 7, 70, 2, 2, 938, 964, 7, 71, 2, 2, 939, 940, 7, 72, 2, 2, 940, 941, 5, 330, 166, 2, 941, 942, 7, 26, 2, 2, 942, 943, 5, 440, 221, 2, 943, 947, 7, 27, 2, 2, 944, 946, 5, 84, 43, 2, 945, 944, 3, 2, 2, 2, 946, 949, 3, 2, 2, 2, 947, 945, 3, 2, 2, 2, 947, 948, 3, 2, 2, 2, 948, 964, 3, 2, 2, 2, 949, 947, 3, 2, 2, 2, 950, 951, 7, 73, 2, 2, 951, 952, 7, 26, 2, 2, 952, 957, 7, 74, 2, 2, 953, 954, 7, 23, 2, 2, 954, 956, 7, 74, 2, 2, 955, 953, 3, 2, 2, 2, 956, 959, 3, 2, 2, 2, 957, 955, 3, 2, 2, 2, 957, 958, 3, 2, 2, 2, 958, 960, 3, 2, 2, 2, 959, 957, 3, 2, 2, 2, 960, 964, 7, 27, 2, 2, 961, 964, 7, 75, 2, 2, 962, 964, 7, 76, 2, 2, 963, 931, 3, 2, 2, 2, 963, 933, 3, 2, 2, 2, 963, 936, 3, 2, 2, 2, 963, 938, 3, 2, 2, 2, 963, 939, 3, 2, 2, 2, 963, 950, 3, 2, 2, 2, 963, 961, 3, 2, 2, 2, 963, 962, 3, 2, 2, 2, 964, 81, 3, 2, 2, 2, 965, 966, 7, 69, 2, 2, 966, 968, 7, 70, 2, 2, 967, 969, 7, 77, 2, 2, 968, 967, 3, 2, 2, 2, 968, 969, 3, 2, 2, 2, 969, 970, 3, 2, 2, 2, 970, 971, 7, 26, 2, 2, 971, 973, 5, 440, 221, 2, 972, 974, 9, 9, 2, 2, 973, 972, 3, 2, 2, 2, 973, 974, 3, 2, 2, 2, 974, 982, 3, 2, 2, 2, 975, 976, 7, 23, 2, 2, 976, 978, 5, 440, 221, 2, 977, 979, 9, 9, 2, 2, 978, 977, 3, 2, 2, 2, 978, 979, 3, 2, 2, 2, 979, 981, 3, 2, 2, 2, 980, 975, 3, 2, 2, 2, 981, 984, 3, 2, 2, 2, 982, 980, 3, 2, 2, 2, 982, 983, 3, 2, 2, 2, 983, 985, 3, 2, 2, 2, 984, 982, 3, 2, 2, 2, 985, 987, 7, 27, 2, 2, 986, 988, 7, 76, 2, 2, 987, 986, 3, 2, 2, 2, 987, 988, 3, 2, 2, 2, 988, 990, 3, 2, 2, 2, 989, 991, 5, 238, 120, 2, 990, 989, 3, 2, 2, 2, 990, 991, 3, 2, 2, 2, 991, 1023, 3, 2, 2, 2, 992, 993, 7, 80, 2, 2, 993, 994, 7, 70, 2, 2, 994, 995, 7, 26, 2, 2, 995, 1000, 5, 440, 221, 2, 996, 997, 7, 23, 2, 2, 997, 999, 5, 440, 221, 2, 998, 996, 3, 2, 2, 2, 999, 1002, 3, 2, 2, 2, 1000, 998, 3, 2, 2, 2, 1000, 1001, 3, 2, 2, 2, 1001, 1003, 3, 2, 2, 2, 1002, 1000, 3, 2, 2, 2, 1003, 1004, 7, 27, 2, 2, 1004, 1005, 7, 72, 2, 2, 1005, 1006, 5, 330, 166, 2, 1006, 1007, 7, 26, 2, 2, 1007, 1012, 5, 440, 221, 2, 1008, 1009, 7, 23, 2, 2, 1009, 1011, 5, 440, 221, 2, 1010, 1008, 3, 2, 2, 2, 1011, 1014, 3, 2, 2, 2, 1012, 1010, 3, 2, 2, 2, 1012, 1013, 3, 2, 2, 2, 1013, 1015, 3, 2, 2, 2, 1014, 1012, 3, 2, 2, 2, 1015, 1019, 7, 27, 2, 2, 1016, 1018, 5, 84, 43, 2, 1017, 1016, 3, 2, 2, 2, 1018, 1021, 3, 2, 2, 2, 1019, 1017, 3, 2, 2, 2, 1019, 1020, 3, 2, 2, 2, 1020, 1023, 3, 2, 2, 2, 1021, 1019, 3, 2, 2, 2, 1022, 965, 3, 2, 2, 2, 1022, 992, 3, 2, 2, 2, 1023, 83, 3, 2, 2, 2, 1024, 1025, 7, 81, 2, 2, 1025, 1034, 9, 10, 2, 2, 1026, 1027, 7, 84, 2, 2, 1027, 1035, 7, 85, 2, 2, 1028, 1035, 7, 86, 2, 2, 1029, 1030, 7, 22, 2, 2, 1030, 1035, 7, 21, 2, 2, 1031, 1032, 7, 22, 2, 2, 1032, 1035, 7, 87, 2, 2, 1033, 1035, 7, 88, 2, 2, 1034, 1026, 3, 2, 2, 2, 1034, 1028, 3, 2, 2, 2, 1034, 1029, 3, 2, 2, 2, 1034, 1031, 3, 2, 2, 2, 1034, 1033, 3, 2, 2, 2, 1035, 85, 3, 2, 2, 2, 1036, 1038, 5, 88, 45, 2, 1037, 1036, 3, 2, 2, 2, 1038, 1039, 3, 2, 2, 2, 1039, 1037, 3, 2, 2, 2, 1039, 1040, 3, 2, 2, 2, 1040, 87, 3, 2, 2, 2, 1041, 1042, 7, 23, 2, 2, 1042, 1045, 5, 90, 46, 2, 1043, 1045, 5, 102, 52, 2, 1044, 1041, 3, 2, 2, 2, 1044, 1043, 3, 2, 2, 2, 1045, 89, 3, 2, 2, 2, 1046, 1048, 7, 84, 2, 2, 1047, 1046, 3, 2, 2, 2, 1047, 1048, 3, 2, 2, 2, 1048, 1049, 3, 2, 2, 2, 1049, 1050, 9, 11, 2, 2, 1050, 91, 3, 2, 2, 2, 1051, 1053, 5, 94, 48, 2, 1052, 1051, 3, 2, 2, 2, 1053, 1054, 3, 2, 2, 2, 1054, 1052, 3, 2, 2, 2, 1054, 1055, 3, 2, 2, 2, 1055, 93, 3, 2, 2, 2, 1056, 1057, 7, 81, 2, 2, 1057, 1058, 7, 91, 2, 2, 1058, 1059, 9, 12, 2, 2, 1059, 1067, 7, 93, 2, 2, 1060, 1067, 5, 96, 49, 2, 1061, 1067, 5, 98, 50, 2, 1062, 1067, 5, 100, 51, 2, 1063, 1067, 5, 102, 52, 2, 1064, 1067, 5, 108, 55, 2, 1065, 1067, 5, 110, 56, 2, 1066, 1056, 3, 2, 2, 2, 1066, 1060, 3, 2, 2, 2, 1066, 1061, 3, 2, 2, 2, 1066, 1062, 3, 2, 2, 2, 1066, 1063, 3, 2, 2, 2, 1066, 1064, 3, 2, 2, 2, 1066, 1065, 3, 2, 2, 2, 1067, 95, 3, 2, 2, 2, 1068, 1069, 7, 94, 2, 2, 1069, 1070, 7, 95, 2, 2, 1070, 1087, 9, 13, 2, 2, 1071, 1072, 9, 14, 2, 2, 1072, 1087, 7, 74, 2, 2, 1073, 1087, 7, 102, 2, 2, 1074, 1087, 9, 15, 2, 2, 1075, 1076, 7, 105, 2, 2, 1076, 1079, 7, 26, 2, 2, 1077, 1080, 5, 440, 221, 2, 1078, 1080, 7, 74, 2, 2, 1079, 1077, 3, 2, 2, 2, 1079, 1078, 3, 2, 2, 2, 1080, 1081, 3, 2, 2, 2, 1081, 1079, 3, 2, 2, 2, 1081, 1082, 3, 2, 2, 2, 1082, 1083, 3, 2, 2, 2, 1083, 1087, 7, 27, 2, 2, 1084, 1085, 7, 106, 2, 2, 1085, 1087, 5, 440, 221, 2, 1086, 1068, 3, 2, 2, 2, 1086, 1071, 3, 2, 2, 2, 1086, 1073, 3, 2, 2, 2, 1086, 1074, 3, 2, 2, 2, 1086, 1075, 3, 2, 2, 2, 1086, 1084, 3, 2, 2, 2, 1087, 97, 3, 2, 2, 2, 1088, 1090, 7, 107, 2, 2, 1089, 1088, 3, 2, 2, 2, 1089, 1090, 3, 2, 2, 2, 1090, 1091, 3, 2, 2, 2, 1091, 1092, 7, 108, 2, 2, 1092, 1122, 5, 440, 221, 2, 1093, 1094, 7, 36, 2, 2, 1094, 1122, 7, 109, 2, 2, 1095, 1096, 7, 110, 2, 2, 1096, 1097, 7, 111, 2, 2, 1097, 1098, 7, 112, 2, 2, 1098, 1099, 7, 26, 2, 2, 1099, 1104, 5, 440, 221, 2, 1100, 1101, 7, 23, 2, 2, 1101, 1103, 5, 440, 221, 2, 1102, 1100, 3, 2, 2, 2, 1103, 1106, 3, 2, 2, 2, 1104, 1102, 3, 2, 2, 2, 1104, 1105, 3, 2, 2, 2, 1105, 1107, 3, 2, 2, 2, 1106, 1104, 3, 2, 2, 2, 1107, 1108, 7, 27, 2, 2, 1108, 1122, 3, 2, 2, 2, 1109, 1111, 7, 56, 2, 2, 1110, 1109, 3, 2, 2, 2, 1110, 1111, 3, 2, 2, 2, 1111, 1112, 3, 2, 2, 2, 1112, 1122, 7, 113, 2, 2, 1113, 1114, 7, 114, 2, 2, 1114, 1122, 9, 16, 2, 2, 1115, 1116, 7, 116, 2, 2, 1116, 1122, 7, 46, 2, 2, 1117, 1118, 7, 36, 2, 2, 1118, 1119, 7, 86, 2, 2, 1119, 1120, 7, 81, 2, 2, 1120, 1122, 7, 117, 2, 2, 1121, 1089, 3, 2, 2, 2, 1121, 1093, 3, 2, 2, 2, 1121, 1095, 3, 2, 2, 2, 1121, 1110, 3, 2, 2, 2, 1121, 1113, 3, 2, 2, 2, 1121, 1115, 3, 2, 2, 2, 1121, 1117, 3, 2, 2, 2, 1122, 99, 3, 2, 2, 2, 1123, 1125, 7, 71, 2, 2, 1124, 1123, 3, 2, 2, 2, 1124, 1125, 3, 2, 2, 2, 1125, 1126, 3, 2, 2, 2, 1126, 1127, 7, 69, 2, 2, 1127, 1128, 7, 107, 2, 2, 1128, 1129, 7, 26, 2, 2, 1129, 1134, 5, 440, 221, 2, 1130, 1131, 7, 23, 2, 2, 1131, 1133, 5, 440, 221, 2, 1132, 1130, 3, 2, 2, 2, 1133, 1136, 3, 2, 2, 2, 1134, 1132, 3, 2, 2, 2, 1134, 1135, 3, 2, 2, 2, 1135, 1137, 3, 2, 2, 2, 1136, 1134, 3, 2, 2, 2, 1137, 1138, 7, 27, 2, 2, 1138, 1142, 3, 2, 2, 2, 1139, 1140, 7, 36, 2, 2, 1140, 1142, 7, 118, 2, 2, 1141, 1124, 3, 2, 2, 2, 1141, 1139, 3, 2, 2, 2, 1142, 101, 3, 2, 2, 2, 1143, 1148, 5, 104, 53, 2, 1144, 1145, 7, 119, 2, 2, 1145, 1146, 7, 41, 2, 2, 1146, 1148, 5, 440, 221, 2, 1147, 1143, 3, 2, 2, 2, 1147, 1144, 3, 2, 2, 2, 1148, 103, 3, 2, 2, 2, 1149, 1150, 7, 120, 2, 2, 1150, 1151, 7, 121, 2, 2, 1151, 1155, 7, 122, 2, 2, 1152, 1154, 5, 106, 54, 2, 1153, 1152, 3, 2, 2, 2, 1154, 1157, 3, 2, 2, 2, 1155, 1153, 3, 2, 2, 2, 1155, 1156, 3, 2, 2, 2, 1156, 105, 3, 2, 2, 2, 1157, 1155, 3, 2, 2, 2, 1158, 1159, 7, 123, 2, 2, 1159, 1160, 7, 124, 2, 2, 1160, 1161, 7, 111, 2, 2, 1161, 1165, 5, 384, 193, 2, 1162, 1163, 7, 125, 2, 2, 1163, 1164, 7, 111, 2, 2, 1164, 1166, 5, 384, 193, 2, 1165, 1162, 3, 2, 2, 2, 1165, 1166, 3, 2, 2, 2, 1166, 1186, 3, 2, 2, 2, 1167, 1168, 7, 126, 2, 2, 1168, 1169, 7, 127, 2, 2, 1169, 1170, 7, 124, 2, 2, 1170, 1171, 7, 111, 2, 2, 1171, 1186, 5, 384, 193, 2, 1172, 1173, 7, 128, 2, 2, 1173, 1174, 7, 129, 2, 2, 1174, 1175, 7, 124, 2, 2, 1175, 1176, 7, 111, 2, 2, 1176, 1186, 5, 384, 193, 2, 1177, 1178, 7, 130, 2, 2, 1178, 1179, 7, 124, 2, 2, 1179, 1180, 7, 111, 2, 2, 1180, 1186, 5, 384, 193, 2, 1181, 1182, 7, 21, 2, 2, 1182, 1183, 7, 131, 2, 2, 1183, 1184, 7, 41, 2, 2, 1184, 1186, 5, 384, 193, 2, 1185, 1158, 3, 2, 2, 2, 1185, 1167, 3, 2, 2, 2, 1185, 1172, 3, 2, 2, 2, 1185, 1177, 3, 2, 2, 2, 1185, 1181, 3, 2, 2, 2, 1186, 107, 3, 2, 2, 2, 1187, 1188, 7, 81, 2, 2, 1188, 1192, 5, 440, 221, 2, 1189, 1190, 7, 132, 2, 2, 1190, 1192, 5, 440, 221, 2, 1191, 1187, 3, 2, 2, 2, 1191, 1189, 3, 2, 2, 2, 1192, 109, 3, 2, 2, 2, 1193, 1195, 7, 75, 2, 2, 1194, 1196, 7, 25, 2, 2, 1195, 1194, 3, 2, 2, 2, 1195, 1196, 3, 2, 2, 2, 1196, 1197, 3, 2, 2, 2, 1197, 1221, 5, 384, 193, 2, 1198, 1200, 7, 133, 2, 2, 1199, 1201, 7, 25, 2, 2, 1200, 1199, 3, 2, 2, 2, 1200, 1201, 3, 2, 2, 2, 1201, 1202, 3, 2, 2, 2, 1202, 1221, 5, 384, 193, 2, 1203, 1205, 7, 87, 2, 2, 1204, 1203, 3, 2, 2, 2, 1204, 1205, 3, 2, 2, 2, 1205, 1209, 3, 2, 2, 2, 1206, 1207, 7, 134, 2, 2, 1207, 1210, 7, 22, 2, 2, 1208, 1210, 7, 135, 2, 2, 1209, 1206, 3, 2, 2, 2, 1209, 1208, 3, 2, 2, 2, 1210, 1212, 3, 2, 2, 2, 1211, 1213, 7, 25, 2, 2, 1212, 1211, 3, 2, 2, 2, 1212, 1213, 3, 2, 2, 2, 1213, 1214, 3, 2, 2, 2, 1214, 1221, 5, 384, 193, 2, 1215, 1217, 7, 136, 2, 2, 1216, 1218, 7, 25, 2, 2, 1217, 1216, 3, 2, 2, 2, 1217, 1218, 3, 2, 2, 2, 1218, 1219, 3, 2, 2, 2, 1219, 1221, 5, 384, 193, 2, 1220, 1193, 3, 2, 2, 2, 1220, 1198, 3, 2, 2, 2, 1220, 1204, 3, 2, 2, 2, 1220, 1215, 3, 2, 2, 2, 1221, 111, 3, 2, 2, 2, 1222, 1223, 7, 137, 2, 2, 1223, 1224, 7, 60, 2, 2, 1224, 1225, 5, 330, 166, 2, 1225, 1226, 5, 114, 58, 2, 1226, 113, 3, 2, 2, 2, 1227, 1228, 5, 116, 59, 2, 1228, 115, 3, 2, 2, 2, 1229, 1232, 7, 138, 2, 2, 1230, 1231, 7, 68, 2, 2, 1231, 1233, 5, 440, 221, 2, 1232, 1230, 3, 2, 2, 2, 1232, 1233, 3, 2, 2, 2, 1233, 1234, 3, 2, 2, 2, 1234, 1235, 5, 118, 60, 2, 1235, 117, 3, 2, 2, 2, 1236, 1237, 7, 69, 2, 2, 1237, 1239, 7, 70, 2, 2, 1238, 1240, 7, 77, 2, 2, 1239, 1238, 3, 2, 2, 2, 1239, 1240, 3, 2, 2, 2, 1240, 1241, 3, 2, 2, 2, 1241, 1242, 7, 26, 2, 2, 1242, 1244, 5, 440, 221, 2, 1243, 1245, 9, 9, 2, 2, 1244, 1243, 3, 2, 2, 2, 1244, 1245, 3, 2, 2, 2, 1245, 1253, 3, 2, 2, 2, 1246, 1247, 7, 23, 2, 2, 1247, 1249, 5, 440, 221, 2, 1248, 1250, 9, 9, 2, 2, 1249, 1248, 3, 2, 2, 2, 1249, 1250, 3, 2, 2, 2, 1250, 1252, 3, 2, 2, 2, 1251, 1246, 3, 2, 2, 2, 1252, 1255, 3, 2, 2, 2, 1253, 1251, 3, 2, 2, 2, 1253, 1254, 3, 2, 2, 2, 1254, 1256, 3, 2, 2, 2, 1255, 1253, 3, 2, 2, 2, 1256, 1258, 7, 27, 2, 2, 1257, 1259, 7, 76, 2, 2, 1258, 1257, 3, 2, 2, 2, 1258, 1259, 3, 2, 2, 2, 1259, 1261, 3, 2, 2, 2, 1260, 1262, 5, 238, 120, 2, 1261, 1260, 3, 2, 2, 2, 1261, 1262, 3, 2, 2, 2, 1262, 1299, 3, 2, 2, 2, 1263, 1264, 7, 80, 2, 2, 1264, 1265, 7, 70, 2, 2, 1265, 1266, 7, 26, 2, 2, 1266, 1271, 5, 440, 221, 2, 1267, 1268, 7, 23, 2, 2, 1268, 1270, 5, 440, 221, 2, 1269, 1267, 3, 2, 2, 2, 1270, 1273, 3, 2, 2, 2, 1271, 1269, 3, 2, 2, 2, 1271, 1272, 3, 2, 2, 2, 1272, 1274, 3, 2, 2, 2, 1273, 1271, 3, 2, 2, 2, 1274, 1275, 7, 27, 2, 2, 1275, 1276, 7, 72, 2, 2, 1276, 1277, 5, 330, 166, 2, 1277, 1278, 7, 26, 2, 2, 1278, 1283, 5, 440, 221, 2, 1279, 1280, 7, 23, 2, 2, 1280, 1282, 5, 440, 221, 2, 1281, 1279, 3, 2, 2, 2, 1282, 1285, 3, 2, 2, 2, 1283, 1281, 3, 2, 2, 2, 1283, 1284, 3, 2, 2, 2, 1284, 1286, 3, 2, 2, 2, 1285, 1283, 3, 2, 2, 2, 1286, 1290, 7, 27, 2, 2, 1287, 1289, 5, 84, 43, 2, 1288, 1287, 3, 2, 2, 2, 1289, 1292, 3, 2, 2, 2, 1290, 1288, 3, 2, 2, 2, 1290, 1291, 3, 2, 2, 2, 1291, 1299, 3, 2, 2, 2, 1292, 1290, 3, 2, 2, 2, 1293, 1294, 7, 87, 2, 2, 1294, 1295, 5, 384, 193, 2, 1295, 1296, 7, 30, 2, 2, 1296, 1297, 5, 440, 221, 2, 1297, 1299, 3, 2, 2, 2, 1298, 1236, 3, 2, 2, 2, 1298, 1263, 3, 2, 2, 2, 1298, 1293, 3, 2, 2, 2, 1299, 119, 3, 2, 2, 2, 1300, 1347, 7, 139, 2, 2, 1301, 1347, 7, 134, 2, 2, 1302, 1347, 7, 140, 2, 2, 1303, 1347, 7, 141, 2, 2, 1304, 1347, 7, 142, 2, 2, 1305, 1347, 7, 143, 2, 2, 1306, 1347, 7, 144, 2, 2, 1307, 1347, 7, 145, 2, 2, 1308, 1347, 7, 146, 2, 2, 1309, 1347, 7, 147, 2, 2, 1310, 1347, 7, 148, 2, 2, 1311, 1313, 7, 149, 2, 2, 1312, 1314, 7, 150, 2, 2, 1313, 1312, 3, 2, 2, 2, 1313, 1314, 3, 2, 2, 2, 1314, 1347, 3, 2, 2, 2, 1315, 1347, 7, 151, 2, 2, 1316, 1347, 7, 152, 2, 2, 1317, 1347, 7, 153, 2, 2, 1318, 1347, 7, 154, 2, 2, 1319, 1347, 7, 155, 2, 2, 1320, 1347, 7, 156, 2, 2, 1321, 1347, 7, 157, 2, 2, 1322, 1347, 7, 158, 2, 2, 1323, 1347, 7, 159, 2, 2, 1324, 1347, 7, 160, 2, 2, 1325, 1347, 7, 161, 2, 2, 1326, 1347, 7, 162, 2, 2, 1327, 1328, 7, 163, 2, 2, 1328, 1347, 7, 164, 2, 2, 1329, 1347, 7, 165, 2, 2, 1330, 1347, 7, 166, 2, 2, 1331, 1347, 7, 167, 2, 2, 1332, 1347, 7, 168, 2, 2, 1333, 1347, 7, 169, 2, 2, 1334, 1347, 7, 170, 2, 2, 1335, 1347, 7, 171, 2, 2, 1336, 1347, 7, 172, 2, 2, 1337, 1347, 7, 173, 2, 2, 1338, 1347, 7, 174, 2, 2, 1339, 1347, 7, 175, 2, 2, 1340, 1347, 7, 176, 2, 2, 1341, 1344, 5, 440, 221, 2, 1342, 1343, 7, 6, 2, 2, 1343, 1345, 9, 17, 2, 2, 1344, 1342, 3, 2, 2, 2, 1344, 1345, 3, 2, 2, 2, 1345, 1347, 3, 2, 2, 2, 1346, 1300, 3, 2, 2, 2, 1346, 1301, 3, 2, 2, 2, 1346, 1302, 3, 2, 2, 2, 1346, 1303, 3, 2, 2, 2, 1346, 1304, 3, 2, 2, 2, 1346, 1305, 3, 2, 2, 2, 1346, 1306, 3, 2, 2, 2, 1346, 1307, 3, 2, 2, 2, 1346, 1308, 3, 2, 2, 2, 1346, 1309, 3, 2, 2, 2, 1346, 1310, 3, 2, 2, 2, 1346, 1311, 3, 2, 2, 2, 1346, 1315, 3, 2, 2, 2, 1346, 1316, 3, 2, 2, 2, 1346, 1317, 3, 2, 2, 2, 1346, 1318, 3, 2, 2, 2, 1346, 1319, 3, 2, 2, 2, 1346, 1320, 3, 2, 2, 2, 1346, 1321, 3, 2, 2, 2, 1346, 1322, 3, 2, 2, 2, 1346, 1323, 3, 2, 2, 2, 1346, 1324, 3, 2, 2, 2, 1346, 1325, 3, 2, 2, 2, 1346, 1326, 3, 2, 2, 2, 1346, 1327, 3, 2, 2, 2, 1346, 1329, 3, 2, 2, 2, 1346, 1330, 3, 2, 2, 2, 1346, 1331, 3, 2, 2, 2, 1346, 1332, 3, 2, 2, 2, 1346, 1333, 3, 2, 2, 2, 1346, 1334, 3, 2, 2, 2, 1346, 1335, 3, 2, 2, 2, 1346, 1336, 3, 2, 2, 2, 1346, 1337, 3, 2, 2, 2, 1346, 1338, 3, 2, 2, 2, 1346, 1339, 3, 2, 2, 2, 1346, 1340, 3, 2, 2, 2, 1346, 1341, 3, 2, 2, 2, 1347, 121, 3, 2, 2, 2, 1348, 1349, 7, 26, 2, 2, 1349, 1351, 9, 18, 2, 2, 1350, 1352, 9, 19, 2, 2, 1351, 1350, 3, 2, 2, 2, 1351, 1352, 3, 2, 2, 2, 1352, 1355, 3, 2, 2, 2, 1353, 1354, 7, 23, 2, 2, 1354, 1356, 7, 74, 2, 2, 1355, 1353, 3, 2, 2, 2, 1355, 1356, 3, 2, 2, 2, 1356, 1357, 3, 2, 2, 2, 1357, 1358, 7, 27, 2, 2, 1358, 123, 3, 2, 2, 2, 1359, 1361, 7, 56, 2, 2, 1360, 1359, 3, 2, 2, 2, 1360, 1361, 3, 2, 2, 2, 1361, 1362, 3, 2, 2, 2, 1362, 1371, 7, 21, 2, 2, 1363, 1364, 7, 134, 2, 2, 1364, 1365, 7, 22, 2, 2, 1365, 1371, 5, 440, 221, 2, 1366, 1368, 7, 56, 2, 2, 1367, 1366, 3, 2, 2, 2, 1367, 1368, 3, 2, 2, 2, 1368, 1369, 3, 2, 2, 2, 1369, 1371, 9, 20, 2, 2, 1370, 1360, 3, 2, 2, 2, 1370, 1363, 3, 2, 2, 2, 1370, 1367, 3, 2, 2, 2, 1371, 125, 3, 2, 2, 2, 1372, 1374, 7, 24, 2, 2, 1373, 1372, 3, 2, 2, 2, 1373, 1374, 3, 2, 2, 2, 1374, 1375, 3, 2, 2, 2, 1375, 1376, 7, 25, 2, 2, 1376, 1385, 5, 384, 193, 2, 1377, 1379, 7, 36, 2, 2, 1378, 1377, 3, 2, 2, 2, 1378, 1379, 3, 2, 2, 2, 1379, 1380, 3, 2, 2, 2, 1380, 1382, 7, 87, 2, 2, 1381, 1383, 5, 384, 193, 2, 1382, 1381, 3, 2, 2, 2, 1382, 1383, 3, 2, 2, 2, 1383, 1385, 3, 2, 2, 2, 1384, 1373, 3, 2, 2, 2, 1384, 1378, 3, 2, 2, 2, 1385, 127, 3, 2, 2, 2, 1386, 1387, 7, 61, 2, 2, 1387, 1391, 9, 21, 2, 2, 1388, 1389, 7, 62, 2, 2, 1389, 1390, 7, 56, 2, 2, 1390, 1392, 7, 63, 2, 2, 1391, 1388, 3, 2, 2, 2, 1391, 1392, 3, 2, 2, 2, 1392, 1393, 3, 2, 2, 2, 1393, 1397, 5, 384, 193, 2, 1394, 1396, 5, 130, 66, 2, 1395, 1394, 3, 2, 2, 2, 1396, 1399, 3, 2, 2, 2, 1397, 1395, 3, 2, 2, 2, 1397, 1398, 3, 2, 2, 2, 1398, 129, 3, 2, 2, 2, 1399, 1397, 3, 2, 2, 2, 1400, 1401, 7, 133, 2, 2, 1401, 1405, 5, 384, 193, 2, 1402, 1403, 7, 185, 2, 2, 1403, 1405, 5, 384, 193, 2, 1404, 1400, 3, 2, 2, 2, 1404, 1402, 3, 2, 2, 2, 1405, 131, 3, 2, 2, 2, 1406, 1414, 7, 137, 2, 2, 1407, 1410, 7, 61, 2, 2, 1408, 1409, 7, 186, 2, 2, 1409, 1411, 7, 109, 2, 2, 1410, 1408, 3, 2, 2, 2, 1410, 1411, 3, 2, 2, 2, 1411, 1414, 3, 2, 2, 2, 1412, 1414, 7, 109, 2, 2, 1413, 1406, 3, 2, 2, 2, 1413, 1407, 3, 2, 2, 2, 1413, 1412, 3, 2, 2, 2, 1413, 1414, 3, 2, 2, 2, 1414, 1415, 3, 2, 2, 2, 1415, 1416, 7, 187, 2, 2, 1416, 1418, 5, 440, 221, 2, 1417, 1419, 5, 150, 76, 2, 1418, 1417, 3, 2, 2, 2, 1418, 1419, 3, 2, 2, 2, 1419, 1420, 3, 2, 2, 2, 1420, 1422, 5, 134, 68, 2, 1421, 1423, 9, 22, 2, 2, 1422, 1421, 3, 2, 2, 2, 1422, 1423, 3, 2, 2, 2, 1423, 1425, 3, 2, 2, 2, 1424, 1426, 5, 50, 26, 2, 1425, 1424, 3, 2, 2, 2, 1425, 1426, 3, 2, 2, 2, 1426, 1427, 3, 2, 2, 2, 1427, 1428, 5, 8, 5, 2, 1428, 133, 3, 2, 2, 2, 1429, 1430, 9, 23, 2, 2, 1430, 1432, 5, 120, 61, 2, 1431, 1433, 5, 122, 62, 2, 1432, 1431, 3, 2, 2, 2, 1432, 1433, 3, 2, 2, 2, 1433, 135, 3, 2, 2, 2, 1434, 1442, 7, 137, 2, 2, 1435, 1438, 7, 61, 2, 2, 1436, 1437, 7, 186, 2, 2, 1437, 1439, 7, 109, 2, 2, 1438, 1436, 3, 2, 2, 2, 1438, 1439, 3, 2, 2, 2, 1439, 1442, 3, 2, 2, 2, 1440, 1442, 7, 109, 2, 2, 1441, 1434, 3, 2, 2, 2, 1441, 1435, 3, 2, 2, 2, 1441, 1440, 3, 2, 2, 2, 1441, 1442, 3, 2, 2, 2, 1442, 1443, 3, 2, 2, 2, 1443, 1444, 7, 189, 2, 2, 1444, 1445, 5, 440, 221, 2, 1445, 1446, 9, 22, 2, 2, 1446, 1447, 5, 138, 70, 2, 1447, 1451, 7, 16, 2, 2, 1448, 1449, 5, 440, 221, 2, 1449, 1450, 7, 15, 2, 2, 1450, 1452, 3, 2, 2, 2, 1451, 1448, 3, 2, 2, 2, 1451, 1452, 3, 2, 2, 2, 1452, 137, 3, 2, 2, 2, 1453, 1454, 5, 140, 71, 2, 1454, 1460, 7, 15, 2, 2, 1455, 1456, 5, 140, 71, 2, 1456, 1457, 7, 15, 2, 2, 1457, 1459, 3, 2, 2, 2, 1458, 1455, 3, 2, 2, 2, 1459, 1462, 3, 2, 2, 2, 1460, 1458, 3, 2, 2, 2, 1460, 1461, 3, 2, 2, 2, 1461, 139, 3, 2, 2, 2, 1462, 1460, 3, 2, 2, 2, 1463, 1477, 5, 52, 27, 2, 1464, 1465, 7, 187, 2, 2, 1465, 1467, 5, 440, 221, 2, 1466, 1468, 5, 150, 76, 2, 1467, 1466, 3, 2, 2, 2, 1467, 1468, 3, 2, 2, 2, 1468, 1469, 3, 2, 2, 2, 1469, 1470, 5, 134, 68, 2, 1470, 1477, 3, 2, 2, 2, 1471, 1472, 9, 24, 2, 2, 1472, 1474, 5, 440, 221, 2, 1473, 1475, 5, 150, 76, 2, 1474, 1473, 3, 2, 2, 2, 1474, 1475, 3, 2, 2, 2, 1475, 1477, 3, 2, 2, 2, 1476, 1463, 3, 2, 2, 2, 1476, 1464, 3, 2, 2, 2, 1476, 1471, 3, 2, 2, 2, 1477, 141, 3, 2, 2, 2, 1478, 1486, 7, 137, 2, 2, 1479, 1482, 7, 61, 2, 2, 1480, 1481, 7, 186, 2, 2, 1481, 1483, 7, 109, 2, 2, 1482, 1480, 3, 2, 2, 2, 1482, 1483, 3, 2, 2, 2, 1483, 1486, 3, 2, 2, 2, 1484, 1486, 7, 109, 2, 2, 1485, 1478, 3, 2, 2, 2, 1485, 1479, 3, 2, 2, 2, 1485, 1484, 3, 2, 2, 2, 1485, 1486, 3, 2, 2, 2, 1486, 1487, 3, 2, 2, 2, 1487, 1488, 7, 189, 2, 2, 1488, 1489, 7, 191, 2, 2, 1489, 1490, 5, 440, 221, 2, 1490, 1491, 9, 22, 2, 2, 1491, 1492, 5, 144, 73, 2, 1492, 1496, 7, 16, 2, 2, 1493, 1494, 5, 440, 221, 2, 1494, 1495, 7, 15, 2, 2, 1495, 1497, 3, 2, 2, 2, 1496, 1493, 3, 2, 2, 2, 1496, 1497, 3, 2, 2, 2, 1497, 143, 3, 2, 2, 2, 1498, 1499, 5, 146, 74, 2, 1499, 1505, 7, 15, 2, 2, 1500, 1501, 5, 146, 74, 2, 1501, 1502, 7, 15, 2, 2, 1502, 1504, 3, 2, 2, 2, 1503, 1500, 3, 2, 2, 2, 1504, 1507, 3, 2, 2, 2, 1505, 1503, 3, 2, 2, 2, 1505, 1506, 3, 2, 2, 2, 1506, 145, 3, 2, 2, 2, 1507, 1505, 3, 2, 2, 2, 1508, 1512, 5, 52, 27, 2, 1509, 1512, 5, 132, 67, 2, 1510, 1512, 5, 148, 75, 2, 1511, 1508, 3, 2, 2, 2, 1511, 1509, 3, 2, 2, 2, 1511, 1510, 3, 2, 2, 2, 1512, 147, 3, 2, 2, 2, 1513, 1521, 7, 137, 2, 2, 1514, 1517, 7, 61, 2, 2, 1515, 1516, 7, 186, 2, 2, 1516, 1518, 7, 109, 2, 2, 1517, 1515, 3, 2, 2, 2, 1517, 1518, 3, 2, 2, 2, 1518, 1521, 3, 2, 2, 2, 1519, 1521, 7, 109, 2, 2, 1520, 1513, 3, 2, 2, 2, 1520, 1514, 3, 2, 2, 2, 1520, 1519, 3, 2, 2, 2, 1520, 1521, 3, 2, 2, 2, 1521, 1522, 3, 2, 2, 2, 1522, 1523, 9, 24, 2, 2, 1523, 1525, 5, 440, 221, 2, 1524, 1526, 5, 150, 76, 2, 1525, 1524, 3, 2, 2, 2, 1525, 1526, 3, 2, 2, 2, 1526, 1528, 3, 2, 2, 2, 1527, 1529, 5, 154, 78, 2, 1528, 1527, 3, 2, 2, 2, 1528, 1529, 3, 2, 2, 2, 1529, 1531, 3, 2, 2, 2, 1530, 1532, 9, 22, 2, 2, 1531, 1530, 3, 2, 2, 2, 1531, 1532, 3, 2, 2, 2, 1532, 1534, 3, 2, 2, 2, 1533, 1535, 5, 50, 26, 2, 1534, 1533, 3, 2, 2, 2, 1534, 1535, 3, 2, 2, 2, 1535, 1537, 3, 2, 2, 2, 1536, 1538, 5, 278, 140, 2, 1537, 1536, 3, 2, 2, 2, 1537, 1538, 3, 2, 2, 2, 1538, 1539, 3, 2, 2, 2, 1539, 1543, 5, 12, 7, 2, 1540, 1541, 5, 440, 221, 2, 1541, 1542, 7, 15, 2, 2, 1542, 1544, 3, 2, 2, 2, 1543, 1540, 3, 2, 2, 2, 1543, 1544, 3, 2, 2, 2, 1544, 149, 3, 2, 2, 2, 1545, 1546, 7, 26, 2, 2, 1546, 1568, 7, 27, 2, 2, 1547, 1548, 7, 26, 2, 2, 1548, 1553, 5, 152, 77, 2, 1549, 1550, 7, 23, 2, 2, 1550, 1552, 5, 152, 77, 2, 1551, 1549, 3, 2, 2, 2, 1552, 1555, 3, 2, 2, 2, 1553, 1551, 3, 2, 2, 2, 1553, 1554, 3, 2, 2, 2, 1554, 1556, 3, 2, 2, 2, 1555, 1553, 3, 2, 2, 2, 1556, 1557, 7, 27, 2, 2, 1557, 1568, 3, 2, 2, 2, 1558, 1559, 6, 76, 4, 2, 1559, 1564, 5, 152, 77, 2, 1560, 1561, 7, 23, 2, 2, 1561, 1563, 5, 152, 77, 2, 1562, 1560, 3, 2, 2, 2, 1563, 1566, 3, 2, 2, 2, 1564, 1562, 3, 2, 2, 2, 1564, 1565, 3, 2, 2, 2, 1565, 1568, 3, 2, 2, 2, 1566, 1564, 3, 2, 2, 2, 1567, 1545, 3, 2, 2, 2, 1567, 1547, 3, 2, 2, 2, 1567, 1558, 3, 2, 2, 2, 1568, 151, 3, 2, 2, 2, 1569, 1575, 7, 108, 2, 2, 1570, 1575, 7, 192, 2, 2, 1571, 1575, 7, 193, 2, 2, 1572, 1573, 7, 108, 2, 2, 1573, 1575, 7, 192, 2, 2, 1574, 1569, 3, 2, 2, 2, 1574, 1570, 3, 2, 2, 2, 1574, 1571, 3, 2, 2, 2, 1574, 1572, 3, 2, 2, 2, 1574, 1575, 3, 2, 2, 2, 1575, 1576, 3, 2, 2, 2, 1576, 1577, 5, 440, 221, 2, 1577, 1579, 5, 120, 61, 2, 1578, 1580, 5, 122, 62, 2, 1579, 1578, 3, 2, 2, 2, 1579, 1580, 3, 2, 2, 2, 1580, 1584, 3, 2, 2, 2, 1581, 1583, 5, 124, 63, 2, 1582, 1581, 3, 2, 2, 2, 1583, 1586, 3, 2, 2, 2, 1584, 1582, 3, 2, 2, 2, 1584, 1585, 3, 2, 2, 2, 1585, 1588, 3, 2, 2, 2, 1586, 1584, 3, 2, 2, 2, 1587, 1589, 5, 126, 64, 2, 1588, 1587, 3, 2, 2, 2, 1588, 1589, 3, 2, 2, 2, 1589, 1612, 3, 2, 2, 2, 1590, 1596, 5, 440, 221, 2, 1591, 1597, 7, 108, 2, 2, 1592, 1597, 7, 192, 2, 2, 1593, 1597, 7, 193, 2, 2, 1594, 1595, 7, 108, 2, 2, 1595, 1597, 7, 192, 2, 2, 1596, 1591, 3, 2, 2, 2, 1596, 1592, 3, 2, 2, 2, 1596, 1593, 3, 2, 2, 2, 1596, 1594, 3, 2, 2, 2, 1596, 1597, 3, 2, 2, 2, 1597, 1598, 3, 2, 2, 2, 1598, 1600, 5, 120, 61, 2, 1599, 1601, 5, 122, 62, 2, 1600, 1599, 3, 2, 2, 2, 1600, 1601, 3, 2, 2, 2, 1601, 1605, 3, 2, 2, 2, 1602, 1604, 5, 124, 63, 2, 1603, 1602, 3, 2, 2, 2, 1604, 1607, 3, 2, 2, 2, 1605, 1603, 3, 2, 2, 2, 1605, 1606, 3, 2, 2, 2, 1606, 1609, 3, 2, 2, 2, 1607, 1605, 3, 2, 2, 2, 1608, 1610, 5, 126, 64, 2, 1609, 1608, 3, 2, 2, 2, 1609, 1610, 3, 2, 2, 2, 1610, 1612, 3, 2, 2, 2, 1611, 1574, 3, 2, 2, 2, 1611, 1590, 3, 2, 2, 2, 1612, 153, 3, 2, 2, 2, 1613, 1615, 5, 156, 79, 2, 1614, 1613, 3, 2, 2, 2, 1615, 1616, 3, 2, 2, 2, 1616, 1614, 3, 2, 2, 2, 1616, 1617, 3, 2, 2, 2, 1617, 155, 3, 2, 2, 2, 1618, 1619, 7, 194, 2, 2, 1619, 1630, 7, 195, 2, 2, 1620, 1621, 7, 195, 2, 2, 1621, 1622, 7, 196, 2, 2, 1622, 1630, 9, 25, 2, 2, 1623, 1625, 7, 201, 2, 2, 1624, 1623, 3, 2, 2, 2, 1624, 1625, 3, 2, 2, 2, 1625, 1626, 3, 2, 2, 2, 1626, 1627, 7, 31, 2, 2, 1627, 1628, 7, 202, 2, 2, 1628, 1630, 7, 74, 2, 2, 1629, 1618, 3, 2, 2, 2, 1629, 1620, 3, 2, 2, 2, 1629, 1624, 3, 2, 2, 2, 1630, 157, 3, 2, 2, 2, 1631, 1632, 7, 117, 2, 2, 1632, 1635, 7, 60, 2, 2, 1633, 1634, 7, 62, 2, 2, 1634, 1636, 7, 63, 2, 2, 1635, 1633, 3, 2, 2, 2, 1635, 1636, 3, 2, 2, 2, 1636, 1637, 3, 2, 2, 2, 1637, 1646, 5, 330, 166, 2, 1638, 1639, 7, 117, 2, 2, 1639, 1642, 9, 21, 2, 2, 1640, 1641, 7, 62, 2, 2, 1641, 1643, 7, 63, 2, 2, 1642, 1640, 3, 2, 2, 2, 1642, 1643, 3, 2, 2, 2, 1643, 1644, 3, 2, 2, 2, 1644, 1646, 5, 384, 193, 2, 1645, 1631, 3, 2, 2, 2, 1645, 1638, 3, 2, 2, 2, 1646, 159, 3, 2, 2, 2, 1647, 1648, 7, 16, 2, 2, 1648, 1649, 7, 37, 2, 2, 1649, 161, 3, 2, 2, 2, 1650, 1652, 9, 26, 2, 2, 1651, 1653, 7, 96, 2, 2, 1652, 1651, 3, 2, 2, 2, 1652, 1653, 3, 2, 2, 2, 1653, 1654, 3, 2, 2, 2, 1654, 1660, 5, 384, 193, 2, 1655, 1656, 7, 26, 2, 2, 1656, 1657, 5, 416, 209, 2, 1657, 1658, 7, 27, 2, 2, 1658, 1661, 3, 2, 2, 2, 1659, 1661, 5, 416, 209, 2, 1660, 1655, 3, 2, 2, 2, 1660, 1659, 3, 2, 2, 2, 1660, 1661, 3, 2, 2, 2, 1661, 1671, 3, 2, 2, 2, 1662, 1663, 7, 205, 2, 2, 1663, 1668, 7, 19, 2, 2, 1664, 1665, 7, 23, 2, 2, 1665, 1667, 7, 19, 2, 2, 1666, 1664, 3, 2, 2, 2, 1667, 1670, 3, 2, 2, 2, 1668, 1666, 3, 2, 2, 2, 1668, 1669, 3, 2, 2, 2, 1669, 1672, 3, 2, 2, 2, 1670, 1668, 3, 2, 2, 2, 1671, 1662, 3, 2, 2, 2, 1671, 1672, 3, 2, 2, 2, 1672, 1674, 3, 2, 2, 2, 1673, 1675, 5, 280, 141, 2, 1674, 1673, 3, 2, 2, 2, 1674, 1675, 3, 2, 2, 2, 1675, 163, 3, 2, 2, 2, 1676, 1680, 5, 166, 84, 2, 1677, 1680, 5, 168, 85, 2, 1678, 1680, 5, 170, 86, 2, 1679, 1676, 3, 2, 2, 2, 1679, 1677, 3, 2, 2, 2, 1679, 1678, 3, 2, 2, 2, 1680, 165, 3, 2, 2, 2, 1681, 1682, 7, 62, 2, 2, 1682, 1683, 5, 368, 185, 2, 1683, 1684, 7, 20, 2, 2, 1684, 1688, 5, 4, 3, 2, 1685, 1687, 5, 172, 87, 2, 1686, 1685, 3, 2, 2, 2, 1687, 1690, 3, 2, 2, 2, 1688, 1686, 3, 2, 2, 2, 1688, 1689, 3, 2, 2, 2, 1689, 1692, 3, 2, 2, 2, 1690, 1688, 3, 2, 2, 2, 1691, 1693, 5, 174, 88, 2, 1692, 1691, 3, 2, 2, 2, 1692, 1693, 3, 2, 2, 2, 1693, 1694, 3, 2, 2, 2, 1694, 1695, 7, 16, 2, 2, 1695, 1696, 7, 62, 2, 2, 1696, 167, 3, 2, 2, 2, 1697, 1698, 7, 62, 2, 2, 1698, 1699, 5, 368, 185, 2, 1699, 1702, 5, 8, 5, 2, 1700, 1701, 7, 206, 2, 2, 1701, 1703, 5, 8, 5, 2, 1702, 1700, 3, 2, 2, 2, 1702, 1703, 3, 2, 2, 2, 1703, 169, 3, 2, 2, 2, 1704, 1705, 7, 7, 2, 2, 1705, 1706, 7, 62, 2, 2, 1706, 1707, 5, 368, 185, 2, 1707, 1708, 7, 20, 2, 2, 1708, 1709, 5, 8, 5, 2, 1709, 171, 3, 2, 2, 2, 1710, 1711, 9, 27, 2, 2, 1711, 1712, 5, 368, 185, 2, 1712, 1713, 7, 20, 2, 2, 1713, 1714, 5, 4, 3, 2, 1714, 173, 3, 2, 2, 2, 1715, 1716, 7, 206, 2, 2, 1716, 1717, 5, 4, 3, 2, 1717, 175, 3, 2, 2, 2, 1718, 1721, 7, 209, 2, 2, 1719, 1722, 5, 434, 218, 2, 1720, 1722, 5, 384, 193, 2, 1721, 1719, 3, 2, 2, 2, 1721, 1720, 3, 2, 2, 2, 1722, 177, 3, 2, 2, 2, 1723, 1730, 7, 210, 2, 2, 1724, 1725, 7, 211, 2, 2, 1725, 1731, 7, 60, 2, 2, 1726, 1728, 7, 205, 2, 2, 1727, 1729, 7, 60, 2, 2, 1728, 1727, 3, 2, 2, 2, 1728, 1729, 3, 2, 2, 2, 1729, 1731, 3, 2, 2, 2, 1730, 1724, 3, 2, 2, 2, 1730, 1726, 3, 2, 2, 2, 1731, 1732, 3, 2, 2, 2, 1732, 1734, 5, 330, 166, 2, 1733, 1735, 5, 180, 91, 2, 1734, 1733, 3, 2, 2, 2, 1734, 1735, 3, 2, 2, 2, 1735, 1738, 3, 2, 2, 2, 1736, 1739, 5, 282, 142, 2, 1737, 1739, 5, 182, 92, 2, 1738, 1736, 3, 2, 2, 2, 1738, 1737, 3, 2, 2, 2, 1739, 179, 3, 2, 2, 2, 1740, 1741, 7, 26, 2, 2, 1741, 1746, 5, 440, 221, 2, 1742, 1743, 7, 23, 2, 2, 1743, 1745, 5, 440, 221, 2, 1744, 1742, 3, 2, 2, 2, 1745, 1748, 3, 2, 2, 2, 1746, 1744, 3, 2, 2, 2, 1746, 1747, 3, 2, 2, 2, 1747, 1749, 3, 2, 2, 2, 1748, 1746, 3, 2, 2, 2, 1749, 1750, 7, 27, 2, 2, 1750, 181, 3, 2, 2, 2, 1751, 1752, 7, 212, 2, 2, 1752, 1757, 5, 184, 93, 2, 1753, 1754, 7, 23, 2, 2, 1754, 1756, 5, 184, 93, 2, 1755, 1753, 3, 2, 2, 2, 1756, 1759, 3, 2, 2, 2, 1757, 1755, 3, 2, 2, 2, 1757, 1758, 3, 2, 2, 2, 1758, 183, 3, 2, 2, 2, 1759, 1757, 3, 2, 2, 2, 1760, 1761, 7, 26, 2, 2, 1761, 1766, 5, 384, 193, 2, 1762, 1763, 7, 23, 2, 2, 1763, 1765, 5, 384, 193, 2, 1764, 1762, 3, 2, 2, 2, 1765, 1768, 3, 2, 2, 2, 1766, 1764, 3, 2, 2, 2, 1766, 1767, 3, 2, 2, 2, 1767, 1769, 3, 2, 2, 2, 1768, 1766, 3, 2, 2, 2, 1769, 1770, 7, 27, 2, 2, 1770, 185, 3, 2, 2, 2, 1771, 1772, 7, 210, 2, 2, 1772, 1774, 7, 211, 2, 2, 1773, 1775, 7, 64, 2, 2, 1774, 1773, 3, 2, 2, 2, 1774, 1775, 3, 2, 2, 2, 1775, 1776, 3, 2, 2, 2, 1776, 1777, 7, 213, 2, 2, 1777, 1778, 5, 422, 212, 2, 1778, 1779, 5, 420, 211, 2, 1779, 187, 3, 2, 2, 2, 1780, 1782, 7, 52, 2, 2, 1781, 1783, 7, 19, 2, 2, 1782, 1781, 3, 2, 2, 2, 1782, 1783, 3, 2, 2, 2, 1783, 1786, 3, 2, 2, 2, 1784, 1785, 7, 18, 2, 2, 1785, 1787, 5, 368, 185, 2, 1786, 1784, 3, 2, 2, 2, 1786, 1787, 3, 2, 2, 2, 1787, 189, 3, 2, 2, 2, 1788, 1789, 7, 214, 2, 2, 1789, 1790, 7, 215, 2, 2, 1790, 1791, 5, 192, 97, 2, 1791, 191, 3, 2, 2, 2, 1792, 1795, 5, 194, 98, 2, 1793, 1795, 5, 196, 99, 2, 1794, 1792, 3, 2, 2, 2, 1794, 1793, 3, 2, 2, 2, 1795, 193, 3, 2, 2, 2, 1796, 1797, 7, 17, 2, 2, 1797, 1798, 7, 74, 2, 2, 1798, 1799, 5, 440, 221, 2, 1799, 1800, 7, 25, 2, 2, 1800, 1801, 7, 216, 2, 2, 1801, 195, 3, 2, 2, 2, 1802, 1803, 5, 440, 221, 2, 1803, 1804, 7, 25, 2, 2, 1804, 1805, 7, 217, 2, 2, 1805, 197, 3, 2, 2, 2, 1806, 1807, 7, 218, 2, 2, 1807, 1812, 5, 200, 101, 2, 1808, 1809, 7, 23, 2, 2, 1809, 1811, 5, 200, 101, 2, 1810, 1808, 3, 2, 2, 2, 1811, 1814, 3, 2, 2, 2, 1812, 1810, 3, 2, 2, 2, 1812, 1813, 3, 2, 2, 2, 1813, 1815, 3, 2, 2, 2, 1814, 1812, 3, 2, 2, 2, 1815, 1816, 7, 47, 2, 2, 1816, 1817, 7, 219, 2, 2, 1817, 1818, 5, 440, 221, 2, 1818, 199, 3, 2, 2, 2, 1819, 1820, 7, 204, 2, 2, 1820, 1821, 7, 81, 2, 2, 1821, 1822, 7, 32, 2, 2, 1822, 1823, 5, 440, 221, 2, 1823, 201, 3, 2, 2, 2, 1824, 1826, 7, 220, 2, 2, 1825, 1827, 7, 19, 2, 2, 1826, 1825, 3, 2, 2, 2, 1826, 1827, 3, 2, 2, 2, 1827, 203, 3, 2, 2, 2, 1828, 1829, 7, 128, 2, 2, 1829, 1830, 7, 221, 2, 2, 1830, 1833, 5, 384, 193, 2, 1831, 1832, 7, 47, 2, 2, 1832, 1834, 5, 384, 193, 2, 1833, 1831, 3, 2, 2, 2, 1833, 1834, 3, 2, 2, 2, 1834, 1837, 3, 2, 2, 2, 1835, 1836, 7, 222, 2, 2, 1836, 1838, 5, 384, 193, 2, 1837, 1835, 3, 2, 2, 2, 1837, 1838, 3, 2, 2, 2, 1838, 205, 3, 2, 2, 2, 1839, 1840, 7, 223, 2, 2, 1840, 1846, 7, 19, 2, 2, 1841, 1844, 7, 30, 2, 2, 1842, 1845, 5, 282, 142, 2, 1843, 1845, 5, 384, 193, 2, 1844, 1842, 3, 2, 2, 2, 1844, 1843, 3, 2, 2, 2, 1845, 1847, 3, 2, 2, 2, 1846, 1841, 3, 2, 2, 2, 1846, 1847, 3, 2, 2, 2, 1847, 207, 3, 2, 2, 2, 1848, 1850, 7, 224, 2, 2, 1849, 1851, 7, 225, 2, 2, 1850, 1849, 3, 2, 2, 2, 1850, 1851, 3, 2, 2, 2, 1851, 1852, 3, 2, 2, 2, 1852, 1853, 7, 19, 2, 2, 1853, 1854, 7, 205, 2, 2, 1854, 1859, 7, 19, 2, 2, 1855, 1856, 7, 23, 2, 2, 1856, 1858, 7, 19, 2, 2, 1857, 1855, 3, 2, 2, 2, 1858, 1861, 3, 2, 2, 2, 1859, 1857, 3, 2, 2, 2, 1859, 1860, 3, 2, 2, 2, 1860, 209, 3, 2, 2, 2, 1861, 1859, 3, 2, 2, 2, 1862, 1863, 7, 226, 2, 2, 1863, 1864, 9, 28, 2, 2, 1864, 1865, 7, 81, 2, 2, 1865, 1867, 5, 330, 166, 2, 1866, 1868, 5, 212, 107, 2, 1867, 1866, 3, 2, 2, 2, 1867, 1868, 3, 2, 2, 2, 1868, 211, 3, 2, 2, 2, 1869, 1870, 7, 229, 2, 2, 1870, 1871, 7, 26, 2, 2, 1871, 1876, 5, 440, 221, 2, 1872, 1873, 7, 23, 2, 2, 1873, 1875, 5, 440, 221, 2, 1874, 1872, 3, 2, 2, 2, 1875, 1878, 3, 2, 2, 2, 1876, 1874, 3, 2, 2, 2, 1876, 1877, 3, 2, 2, 2, 1877, 1879, 3, 2, 2, 2, 1878, 1876, 3, 2, 2, 2, 1879, 1880, 7, 27, 2, 2, 1880, 213, 3, 2, 2, 2, 1881, 1882, 7, 230, 2, 2, 1882, 1883, 7, 19, 2, 2, 1883, 215, 3, 2, 2, 2, 1884, 1885, 7, 231, 2, 2, 1885, 1886, 9, 29, 2, 2, 1886, 1887, 5, 218, 110, 2, 1887, 1888, 7, 23, 2, 2, 1888, 1889, 5, 218, 110, 2, 1889, 217, 3, 2, 2, 2, 1890, 1892, 5, 330, 166, 2, 1891, 1893, 5, 332, 167, 2, 1892, 1891, 3, 2, 2, 2, 1892, 1893, 3, 2, 2, 2, 1893, 1899, 3, 2, 2, 2, 1894, 1895, 7, 26, 2, 2, 1895, 1896, 5, 282, 142, 2, 1896, 1897, 7, 27, 2, 2, 1897, 1899, 3, 2, 2, 2, 1898, 1890, 3, 2, 2, 2, 1898, 1894, 3, 2, 2, 2, 1899, 1902, 3, 2, 2, 2, 1900, 1901, 7, 222, 2, 2, 1901, 1903, 5, 440, 221, 2, 1902, 1900, 3, 2, 2, 2, 1902, 1903, 3, 2, 2, 2, 1903, 219, 3, 2, 2, 2, 1904, 1905, 7, 233, 2, 2, 1905, 1906, 7, 225, 2, 2, 1906, 1907, 7, 64, 2, 2, 1907, 1912, 5, 224, 113, 2, 1908, 1909, 7, 23, 2, 2, 1909, 1911, 5, 224, 113, 2, 1910, 1908, 3, 2, 2, 2, 1911, 1914, 3, 2, 2, 2, 1912, 1910, 3, 2, 2, 2, 1912, 1913, 3, 2, 2, 2, 1913, 1915, 3, 2, 2, 2, 1914, 1912, 3, 2, 2, 2, 1915, 1916, 7, 47, 2, 2, 1916, 1920, 5, 226, 114, 2, 1917, 1919, 5, 230, 116, 2, 1918, 1917, 3, 2, 2, 2, 1919, 1922, 3, 2, 2, 2, 1920, 1918, 3, 2, 2, 2, 1920, 1921, 3, 2, 2, 2, 1921, 221, 3, 2, 2, 2, 1922, 1920, 3, 2, 2, 2, 1923, 1929, 7, 233, 2, 2, 1924, 1930, 5, 330, 166, 2, 1925, 1926, 7, 26, 2, 2, 1926, 1927, 5, 282, 142, 2, 1927, 1928, 7, 27, 2, 2, 1928, 1930, 3, 2, 2, 2, 1929, 1924, 3, 2, 2, 2, 1929, 1925, 3, 2, 2, 2, 1930, 1931, 3, 2, 2, 2, 1931, 1933, 7, 47, 2, 2, 1932, 1934, 7, 234, 2, 2, 1933, 1932, 3, 2, 2, 2, 1933, 1934, 3, 2, 2, 2, 1934, 1935, 3, 2, 2, 2, 1935, 1939, 5, 226, 114, 2, 1936, 1938, 5, 228, 115, 2, 1937, 1936, 3, 2, 2, 2, 1938, 1941, 3, 2, 2, 2, 1939, 1937, 3, 2, 2, 2, 1939, 1940, 3, 2, 2, 2, 1940, 223, 3, 2, 2, 2, 1941, 1939, 3, 2, 2, 2, 1942, 1945, 5, 434, 218, 2, 1943, 1945, 5, 384, 193, 2, 1944, 1942, 3, 2, 2, 2, 1944, 1943, 3, 2, 2, 2, 1945, 225, 3, 2, 2, 2, 1946, 1949, 5, 434, 218, 2, 1947, 1949, 5, 384, 193, 2, 1948, 1946, 3, 2, 2, 2, 1948, 1947, 3, 2, 2, 2, 1949, 227, 3, 2, 2, 2, 1950, 1951, 7, 222, 2, 2, 1951, 1959, 5, 440, 221, 2, 1952, 1953, 7, 235, 2, 2, 1953, 1959, 5, 384, 193, 2, 1954, 1955, 7, 236, 2, 2, 1955, 1959, 5, 384, 193, 2, 1956, 1957, 7, 237, 2, 2, 1957, 1959, 5, 440, 221, 2, 1958, 1950, 3, 2, 2, 2, 1958, 1952, 3, 2, 2, 2, 1958, 1954, 3, 2, 2, 2, 1958, 1956, 3, 2, 2, 2, 1959, 229, 3, 2, 2, 2, 1960, 1961, 9, 30, 2, 2, 1961, 231, 3, 2, 2, 2, 1962, 1964, 7, 91, 2, 2, 1963, 1965, 7, 239, 2, 2, 1964, 1963, 3, 2, 2, 2, 1964, 1965, 3, 2, 2, 2, 1965, 233, 3, 2, 2, 2, 1966, 1968, 7, 61, 2, 2, 1967, 1969, 7, 71, 2, 2, 1968, 1967, 3, 2, 2, 2, 1968, 1969, 3, 2, 2, 2, 1969, 1970, 3, 2, 2, 2, 1970, 1971, 7, 107, 2, 2, 1971, 1972, 5, 440, 221, 2, 1972, 1973, 7, 81, 2, 2, 1973, 1974, 5, 330, 166, 2, 1974, 1975, 7, 26, 2, 2, 1975, 1980, 5, 236, 119, 2, 1976, 1977, 7, 23, 2, 2, 1977, 1979, 5, 236, 119, 2, 1978, 1976, 3, 2, 2, 2, 1979, 1982, 3, 2, 2, 2, 1980, 1978, 3, 2, 2, 2, 1980, 1981, 3, 2, 2, 2, 1981, 1983, 3, 2, 2, 2, 1982, 1980, 3, 2, 2, 2, 1983, 1984, 7, 27, 2, 2, 1984, 235, 3, 2, 2, 2, 1985, 1987, 5, 440, 221, 2, 1986, 1988, 9, 9, 2, 2, 1987, 1986, 3, 2, 2, 2, 1987, 1988, 3, 2, 2, 2, 1988, 237, 3, 2, 2, 2, 1989, 1990, 5, 240, 121, 2, 1990, 239, 3, 2, 2, 2, 1991, 1992, 7, 36, 2, 2, 1992, 1993, 7, 26, 2, 2, 1993, 1994, 5, 440, 221, 2, 1994, 1995, 7, 25, 2, 2, 1995, 2003, 5, 440, 221, 2, 1996, 1997, 7, 23, 2, 2, 1997, 1998, 5, 440, 221, 2, 1998, 1999, 7, 25, 2, 2, 1999, 2000, 5, 440, 221, 2, 2000, 2002, 3, 2, 2, 2, 2001, 1996, 3, 2, 2, 2, 2002, 2005, 3, 2, 2, 2, 2003, 2001, 3, 2, 2, 2, 2003, 2004, 3, 2, 2, 2, 2004, 2006, 3, 2, 2, 2, 2005, 2003, 3, 2, 2, 2, 2006, 2010, 7, 27, 2, 2, 2007, 2009, 5, 108, 55, 2, 2008, 2007, 3, 2, 2, 2, 2009, 2012, 3, 2, 2, 2, 2010, 2008, 3, 2, 2, 2, 2010, 2011, 3, 2, 2, 2, 2011, 241, 3, 2, 2, 2, 2012, 2010, 3, 2, 2, 2, 2013, 2014, 7, 240, 2, 2, 2014, 2021, 5, 384, 193, 2, 2015, 2016, 7, 240, 2, 2, 2016, 2017, 7, 26, 2, 2, 2017, 2018, 5, 384, 193, 2, 2018, 2019, 7, 27, 2, 2, 2019, 2021, 3, 2, 2, 2, 2020, 2013, 3, 2, 2, 2, 2020, 2015, 3, 2, 2, 2, 2021, 243, 3, 2, 2, 2, 2022, 2024, 7, 7, 2, 2, 2023, 2022, 3, 2, 2, 2, 2023, 2024, 3, 2, 2, 2, 2024, 2025, 3, 2, 2, 2, 2025, 2027, 7, 241, 2, 2, 2026, 2028, 5, 384, 193, 2, 2027, 2026, 3, 2, 2, 2, 2027, 2028, 3, 2, 2, 2, 2028, 245, 3, 2, 2, 2, 2029, 2030, 7, 242, 2, 2, 2030, 247, 3, 2, 2, 2, 2031, 2043, 7, 243, 2, 2, 2032, 2034, 7, 244, 2, 2, 2033, 2035, 7, 245, 2, 2, 2034, 2033, 3, 2, 2, 2, 2034, 2035, 3, 2, 2, 2, 2035, 2036, 3, 2, 2, 2, 2036, 2041, 5, 384, 193, 2, 2037, 2038, 7, 22, 2, 2, 2038, 2039, 7, 216, 2, 2, 2039, 2040, 7, 25, 2, 2, 2040, 2042, 5, 384, 193, 2, 2041, 2037, 3, 2, 2, 2, 2041, 2042, 3, 2, 2, 2, 2042, 2044, 3, 2, 2, 2, 2043, 2032, 3, 2, 2, 2, 2043, 2044, 3, 2, 2, 2, 2044, 249, 3, 2, 2, 2, 2045, 2047, 7, 45, 2, 2, 2046, 2048, 5, 384, 193, 2, 2047, 2046, 3, 2, 2, 2, 2047, 2048, 3, 2, 2, 2, 2048, 251, 3, 2, 2, 2, 2049, 2051, 7, 246, 2, 2, 2050, 2052, 7, 239, 2, 2, 2051, 2050, 3, 2, 2, 2, 2051, 2052, 3, 2, 2, 2, 2052, 253, 3, 2, 2, 2, 2053, 2057, 5, 256, 129, 2, 2054, 2057, 5, 258, 130, 2, 2055, 2057, 5, 260, 131, 2, 2056, 2053, 3, 2, 2, 2, 2056, 2054, 3, 2, 2, 2, 2056, 2055, 3, 2, 2, 2, 2057, 255, 3, 2, 2, 2, 2058, 2060, 7, 247, 2, 2, 2059, 2058, 3, 2, 2, 2, 2059, 2060, 3, 2, 2, 2, 2060, 2061, 3, 2, 2, 2, 2061, 2064, 7, 184, 2, 2, 2062, 2064, 7, 248, 2, 2, 2063, 2059, 3, 2, 2, 2, 2063, 2062, 3, 2, 2, 2, 2064, 2066, 3, 2, 2, 2, 2065, 2067, 7, 25, 2, 2, 2066, 2065, 3, 2, 2, 2, 2066, 2067, 3, 2, 2, 2, 2067, 2068, 3, 2, 2, 2, 2068, 2069, 5, 384, 193, 2, 2069, 257, 3, 2, 2, 2, 2070, 2071, 9, 31, 2, 2, 2071, 2072, 9, 32, 2, 2, 2072, 259, 3, 2, 2, 2, 2073, 2074, 7, 255, 2, 2, 2074, 2077, 7, 25, 2, 2, 2075, 2078, 5, 384, 193, 2, 2076, 2078, 7, 256, 2, 2, 2077, 2075, 3, 2, 2, 2, 2077, 2076, 3, 2, 2, 2, 2078, 2080, 3, 2, 2, 2, 2079, 2081, 7, 82, 2, 2, 2080, 2079, 3, 2, 2, 2, 2080, 2081, 3, 2, 2, 2, 2081, 2082, 3, 2, 2, 2, 2082, 2083, 7, 30, 2, 2, 2083, 2084, 9, 33, 2, 2, 2084, 261, 3, 2, 2, 2, 2085, 2086, 7, 258, 2, 2, 2086, 2087, 5, 440, 221, 2, 2087, 263, 3, 2, 2, 2, 2088, 2091, 7, 259, 2, 2, 2089, 2090, 7, 260, 2, 2, 2090, 2092, 5, 384, 193, 2, 2091, 2089, 3, 2, 2, 2, 2091, 2092, 3, 2, 2, 2, 2092, 2093, 3, 2, 2, 2, 2093, 2103, 7, 30, 2, 2, 2094, 2104, 5, 282, 142, 2, 2095, 2097, 5, 330, 166, 2, 2096, 2098, 5, 332, 167, 2, 2097, 2096, 3, 2, 2, 2, 2097, 2098, 3, 2, 2, 2, 2098, 2101, 3, 2, 2, 2, 2099, 2100, 7, 261, 2, 2, 2100, 2102, 5, 384, 193, 2, 2101, 2099, 3, 2, 2, 2, 2101, 2102, 3, 2, 2, 2, 2102, 2104, 3, 2, 2, 2, 2103, 2094, 3, 2, 2, 2, 2103, 2095, 3, 2, 2, 2, 2104, 265, 3, 2, 2, 2, 2105, 2107, 7, 262, 2, 2, 2106, 2108, 7, 60, 2, 2, 2107, 2106, 3, 2, 2, 2, 2107, 2108, 3, 2, 2, 2, 2108, 2109, 3, 2, 2, 2, 2109, 2110, 5, 330, 166, 2, 2110, 267, 3, 2, 2, 2, 2111, 2112, 7, 263, 2, 2, 2112, 2113, 5, 384, 193, 2, 2113, 269, 3, 2, 2, 2, 2114, 2116, 7, 212, 2, 2, 2115, 2117, 7, 26, 2, 2, 2116, 2115, 3, 2, 2, 2, 2116, 2117, 3, 2, 2, 2, 2117, 2118, 3, 2, 2, 2, 2118, 2123, 5, 384, 193, 2, 2119, 2120, 7, 23, 2, 2, 2120, 2122, 5, 384, 193, 2, 2121, 2119, 3, 2, 2, 2, 2122, 2125, 3, 2, 2, 2, 2123, 2121, 3, 2, 2, 2, 2123, 2124, 3, 2, 2, 2, 2124, 2127, 3, 2, 2, 2, 2125, 2123, 3, 2, 2, 2, 2126, 2128, 7, 27, 2, 2, 2127, 2126, 3, 2, 2, 2, 2127, 2128, 3, 2, 2, 2, 2128, 2129, 3, 2, 2, 2, 2129, 2131, 7, 205, 2, 2, 2130, 2132, 7, 26, 2, 2, 2131, 2130, 3, 2, 2, 2, 2131, 2132, 3, 2, 2, 2, 2132, 2133, 3, 2, 2, 2, 2133, 2138, 5, 440, 221, 2, 2134, 2135, 7, 23, 2, 2, 2135, 2137, 5, 440, 221, 2, 2136, 2134, 3, 2, 2, 2, 2137, 2140, 3, 2, 2, 2, 2138, 2136, 3, 2, 2, 2, 2138, 2139, 3, 2, 2, 2, 2139, 2142, 3, 2, 2, 2, 2140, 2138, 3, 2, 2, 2, 2141, 2143, 7, 27, 2, 2, 2142, 2141, 3, 2, 2, 2, 2142, 2143, 3, 2, 2, 2, 2143, 271, 3, 2, 2, 2, 2144, 2145, 7, 264, 2, 2, 2145, 2146, 5, 368, 185, 2, 2146, 2147, 9, 34, 2, 2, 2147, 2148, 5, 4, 3, 2, 2148, 2150, 7, 16, 2, 2, 2149, 2151, 9, 35, 2, 2, 2150, 2149, 3, 2, 2, 2, 2150, 2151, 3, 2, 2, 2, 2151, 273, 3, 2, 2, 2, 2152, 2153, 7, 30, 2, 2, 2153, 2154, 7, 19, 2, 2, 2154, 2156, 7, 108, 2, 2, 2155, 2157, 7, 26, 2, 2, 2156, 2155, 3, 2, 2, 2, 2156, 2157, 3, 2, 2, 2, 2157, 2158, 3, 2, 2, 2, 2158, 2160, 5, 282, 142, 2, 2159, 2161, 7, 27, 2, 2, 2160, 2159, 3, 2, 2, 2, 2160, 2161, 3, 2, 2, 2, 2161, 2162, 3, 2, 2, 2, 2162, 2163, 7, 266, 2, 2, 2163, 2164, 5, 4, 3, 2, 2164, 2165, 7, 16, 2, 2, 2165, 2166, 7, 266, 2, 2, 2166, 275, 3, 2, 2, 2, 2167, 2168, 7, 30, 2, 2, 2168, 2169, 7, 19, 2, 2, 2169, 2171, 7, 108, 2, 2, 2170, 2172, 7, 267, 2, 2, 2171, 2170, 3, 2, 2, 2, 2171, 2172, 3, 2, 2, 2, 2172, 2173, 3, 2, 2, 2, 2173, 2174, 5, 384, 193, 2, 2174, 2175, 7, 268, 2, 2, 2175, 2178, 5, 384, 193, 2, 2176, 2177, 9, 36, 2, 2, 2177, 2179, 5, 384, 193, 2, 2178, 2176, 3, 2, 2, 2, 2178, 2179, 3, 2, 2, 2, 2179, 2180, 3, 2, 2, 2, 2180, 2181, 7, 266, 2, 2, 2181, 2182, 5, 4, 3, 2, 2182, 2183, 7, 16, 2, 2, 2183, 2184, 7, 266, 2, 2, 2184, 277, 3, 2, 2, 2, 2185, 2192, 7, 270, 2, 2, 2186, 2187, 7, 271, 2, 2, 2187, 2188, 7, 271, 2, 2, 2188, 2189, 7, 19, 2, 2, 2189, 2190, 7, 272, 2, 2, 2190, 2192, 7, 272, 2, 2, 2191, 2185, 3, 2, 2, 2, 2191, 2186, 3, 2, 2, 2, 2192, 279, 3, 2, 2, 2, 2193, 2194, 7, 273, 2, 2, 2194, 2199, 5, 384, 193, 2, 2195, 2196, 7, 23, 2, 2, 2196, 2198, 5, 384, 193, 2, 2197, 2195, 3, 2, 2, 2, 2198, 2201, 3, 2, 2, 2, 2199, 2197, 3, 2, 2, 2, 2199, 2200, 3, 2, 2, 2, 2200, 281, 3, 2, 2, 2, 2201, 2199, 3, 2, 2, 2, 2202, 2204, 5, 284, 143, 2, 2203, 2202, 3, 2, 2, 2, 2203, 2204, 3, 2, 2, 2, 2204, 2205, 3, 2, 2, 2, 2205, 2206, 5, 290, 146, 2, 2206, 283, 3, 2, 2, 2, 2207, 2208, 7, 36, 2, 2, 2208, 2213, 5, 286, 144, 2, 2209, 2210, 7, 23, 2, 2, 2210, 2212, 5, 286, 144, 2, 2211, 2209, 3, 2, 2, 2, 2212, 2215, 3, 2, 2, 2, 2213, 2211, 3, 2, 2, 2, 2213, 2214, 3, 2, 2, 2, 2214, 285, 3, 2, 2, 2, 2215, 2213, 3, 2, 2, 2, 2216, 2218, 5, 440, 221, 2, 2217, 2219, 5, 288, 145, 2, 2218, 2217, 3, 2, 2, 2, 2218, 2219, 3, 2, 2, 2, 2219, 2220, 3, 2, 2, 2, 2220, 2221, 7, 41, 2, 2, 2221, 2222, 7, 26, 2, 2, 2222, 2223, 5, 290, 146, 2, 2223, 2224, 7, 27, 2, 2, 2224, 287, 3, 2, 2, 2, 2225, 2226, 7, 26, 2, 2, 2226, 2231, 5, 440, 221, 2, 2227, 2228, 7, 23, 2, 2, 2228, 2230, 5, 440, 221, 2, 2229, 2227, 3, 2, 2, 2, 2230, 2233, 3, 2, 2, 2, 2231, 2229, 3, 2, 2, 2, 2231, 2232, 3, 2, 2, 2, 2232, 2234, 3, 2, 2, 2, 2233, 2231, 3, 2, 2, 2, 2234, 2235, 7, 27, 2, 2, 2235, 289, 3, 2, 2, 2, 2236, 2242, 5, 292, 147, 2, 2237, 2238, 5, 294, 148, 2, 2238, 2239, 5, 292, 147, 2, 2239, 2241, 3, 2, 2, 2, 2240, 2237, 3, 2, 2, 2, 2241, 2244, 3, 2, 2, 2, 2242, 2240, 3, 2, 2, 2, 2242, 2243, 3, 2, 2, 2, 2243, 291, 3, 2, 2, 2, 2244, 2242, 3, 2, 2, 2, 2245, 2251, 5, 296, 149, 2, 2246, 2247, 7, 26, 2, 2, 2247, 2248, 5, 290, 146, 2, 2248, 2249, 7, 27, 2, 2, 2249, 2251, 3, 2, 2, 2, 2250, 2245, 3, 2, 2, 2, 2250, 2246, 3, 2, 2, 2, 2251, 293, 3, 2, 2, 2, 2252, 2254, 7, 274, 2, 2, 2253, 2255, 7, 275, 2, 2, 2254, 2253, 3, 2, 2, 2, 2254, 2255, 3, 2, 2, 2, 2255, 2265, 3, 2, 2, 2, 2256, 2258, 7, 276, 2, 2, 2257, 2259, 7, 275, 2, 2, 2258, 2257, 3, 2, 2, 2, 2258, 2259, 3, 2, 2, 2, 2259, 2265, 3, 2, 2, 2, 2260, 2262, 7, 277, 2, 2, 2261, 2263, 7, 275, 2, 2, 2262, 2261, 3, 2, 2, 2, 2262, 2263, 3, 2, 2, 2, 2263, 2265, 3, 2, 2, 2, 2264, 2252, 3, 2, 2, 2, 2264, 2256, 3, 2, 2, 2, 2264, 2260, 3, 2, 2, 2, 2265, 295, 3, 2, 2, 2, 2266, 2267, 9, 37, 2, 2, 2267, 2269, 5, 298, 150, 2, 2268, 2270, 5, 310, 156, 2, 2269, 2268, 3, 2, 2, 2, 2269, 2270, 3, 2, 2, 2, 2270, 2272, 3, 2, 2, 2, 2271, 2273, 5, 312, 157, 2, 2272, 2271, 3, 2, 2, 2, 2272, 2273, 3, 2, 2, 2, 2273, 2275, 3, 2, 2, 2, 2274, 2276, 5, 332, 167, 2, 2275, 2274, 3, 2, 2, 2, 2275, 2276, 3, 2, 2, 2, 2276, 2278, 3, 2, 2, 2, 2277, 2279, 5, 334, 168, 2, 2278, 2277, 3, 2, 2, 2, 2278, 2279, 3, 2, 2, 2, 2279, 2282, 3, 2, 2, 2, 2280, 2283, 5, 336, 169, 2, 2281, 2283, 5, 338, 170, 2, 2282, 2280, 3, 2, 2, 2, 2282, 2281, 3, 2, 2, 2, 2282, 2283, 3, 2, 2, 2, 2283, 2285, 3, 2, 2, 2, 2284, 2286, 5, 340, 171, 2, 2285, 2284, 3, 2, 2, 2, 2285, 2286, 3, 2, 2, 2, 2286, 2288, 3, 2, 2, 2, 2287, 2289, 5, 342, 172, 2, 2288, 2287, 3, 2, 2, 2, 2288, 2289, 3, 2, 2, 2, 2289, 297, 3, 2, 2, 2, 2290, 2292, 5, 300, 151, 2, 2291, 2290, 3, 2, 2, 2, 2291, 2292, 3, 2, 2, 2, 2292, 2294, 3, 2, 2, 2, 2293, 2295, 5, 302, 152, 2, 2294, 2293, 3, 2, 2, 2, 2294, 2295, 3, 2, 2, 2, 2295, 2296, 3, 2, 2, 2, 2296, 2301, 5, 304, 153, 2, 2297, 2298, 7, 23, 2, 2, 2298, 2300, 5, 304, 153, 2, 2299, 2297, 3, 2, 2, 2, 2300, 2303, 3, 2, 2, 2, 2301, 2299, 3, 2, 2, 2, 2301, 2302, 3, 2, 2, 2, 2302, 299, 3, 2, 2, 2, 2303, 2301, 3, 2, 2, 2, 2304, 2305, 9, 38, 2, 2, 2305, 301, 3, 2, 2, 2, 2306, 2307, 7, 260, 2, 2, 2307, 2308, 5, 384, 193, 2, 2308, 303, 3, 2, 2, 2, 2309, 2310, 5, 440, 221, 2, 2310, 2311, 7, 25, 2, 2, 2311, 2313, 3, 2, 2, 2, 2312, 2309, 3, 2, 2, 2, 2312, 2313, 3, 2, 2, 2, 2313, 2314, 3, 2, 2, 2, 2314, 2316, 5, 384, 193, 2, 2315, 2317, 5, 306, 154, 2, 2316, 2315, 3, 2, 2, 2, 2316, 2317, 3, 2, 2, 2, 2317, 2320, 3, 2, 2, 2, 2318, 2320, 5, 308, 155, 2, 2319, 2312, 3, 2, 2, 2, 2319, 2318, 3, 2, 2, 2, 2320, 305, 3, 2, 2, 2, 2321, 2323, 6, 154, 5, 2, 2322, 2324, 7, 41, 2, 2, 2323, 2322, 3, 2, 2, 2, 2323, 2324, 3, 2, 2, 2, 2324, 2325, 3, 2, 2, 2, 2325, 2331, 5, 440, 221, 2, 2326, 2327, 7, 26, 2, 2, 2327, 2328, 7, 281, 2, 2, 2328, 2329, 7, 282, 2, 2, 2329, 2331, 7, 27, 2, 2, 2330, 2321, 3, 2, 2, 2, 2330, 2326, 3, 2, 2, 2, 2331, 307, 3, 2, 2, 2, 2332, 2333, 7, 19, 2, 2, 2333, 2335, 7, 7, 2, 2, 2334, 2332, 3, 2, 2, 2, 2334, 2335, 3, 2, 2, 2, 2335, 2336, 3, 2, 2, 2, 2336, 2337, 7, 8, 2, 2, 2337, 309, 3, 2, 2, 2, 2338, 2339, 7, 205, 2, 2, 2339, 2344, 5, 440, 221, 2, 2340, 2341, 7, 23, 2, 2, 2341, 2343, 5, 440, 221, 2, 2342, 2340, 3, 2, 2, 2, 2343, 2346, 3, 2, 2, 2, 2344, 2342, 3, 2, 2, 2, 2344, 2345, 3, 2, 2, 2, 2345, 311, 3, 2, 2, 2, 2346, 2344, 3, 2, 2, 2, 2347, 2348, 7, 225, 2, 2, 2348, 2352, 5, 314, 158, 2, 2349, 2351, 5, 320, 161, 2, 2350, 2349, 3, 2, 2, 2, 2351, 2354, 3, 2, 2, 2, 2352, 2350, 3, 2, 2, 2, 2352, 2353, 3, 2, 2, 2, 2353, 313, 3, 2, 2, 2, 2354, 2352, 3, 2, 2, 2, 2355, 2359, 5, 316, 159, 2, 2356, 2359, 5, 318, 160, 2, 2357, 2359, 5, 324, 163, 2, 2358, 2355, 3, 2, 2, 2, 2358, 2356, 3, 2, 2, 2, 2358, 2357, 3, 2, 2, 2, 2359, 315, 3, 2, 2, 2, 2360, 2362, 5, 330, 166, 2, 2361, 2363, 5, 328, 165, 2, 2362, 2361, 3, 2, 2, 2, 2362, 2363, 3, 2, 2, 2, 2363, 317, 3, 2, 2, 2, 2364, 2365, 7, 26, 2, 2, 2365, 2366, 5, 282, 142, 2, 2366, 2368, 7, 27, 2, 2, 2367, 2369, 5, 328, 165, 2, 2368, 2367, 3, 2, 2, 2, 2368, 2369, 3, 2, 2, 2, 2369, 319, 3, 2, 2, 2, 2370, 2371, 7, 23, 2, 2, 2371, 2378, 5, 314, 158, 2, 2372, 2373, 5, 322, 162, 2, 2373, 2374, 5, 314, 158, 2, 2374, 2375, 7, 81, 2, 2, 2375, 2376, 5, 368, 185, 2, 2376, 2378, 3, 2, 2, 2, 2377, 2370, 3, 2, 2, 2, 2377, 2372, 3, 2, 2, 2, 2378, 321, 3, 2, 2, 2, 2379, 2381, 7, 283, 2, 2, 2380, 2379, 3, 2, 2, 2, 2380, 2381, 3, 2, 2, 2, 2381, 2382, 3, 2, 2, 2, 2382, 2389, 7, 284, 2, 2, 2383, 2385, 9, 39, 2, 2, 2384, 2386, 7, 288, 2, 2, 2385, 2384, 3, 2, 2, 2, 2385, 2386, 3, 2, 2, 2, 2386, 2387, 3, 2, 2, 2, 2387, 2389, 7, 284, 2, 2, 2388, 2380, 3, 2, 2, 2, 2388, 2383, 3, 2, 2, 2, 2389, 323, 3, 2, 2, 2, 2390, 2391, 7, 60, 2, 2, 2391, 2392, 7, 26, 2, 2, 2392, 2393, 7, 212, 2, 2, 2393, 2398, 5, 326, 164, 2, 2394, 2395, 7, 23, 2, 2, 2395, 2397, 5, 326, 164, 2, 2396, 2394, 3, 2, 2, 2, 2397, 2400, 3, 2, 2, 2, 2398, 2396, 3, 2, 2, 2, 2398, 2399, 3, 2, 2, 2, 2399, 2401, 3, 2, 2, 2, 2400, 2398, 3, 2, 2, 2, 2401, 2403, 7, 27, 2, 2, 2402, 2404, 5, 328, 165, 2, 2403, 2402, 3, 2, 2, 2, 2403, 2404, 3, 2, 2, 2, 2404, 325, 3, 2, 2, 2, 2405, 2418, 5, 384, 193, 2, 2406, 2407, 7, 26, 2, 2, 2407, 2412, 5, 384, 193, 2, 2408, 2409, 7, 23, 2, 2, 2409, 2411, 5, 384, 193, 2, 2410, 2408, 3, 2, 2, 2, 2411, 2414, 3, 2, 2, 2, 2412, 2410, 3, 2, 2, 2, 2412, 2413, 3, 2, 2, 2, 2413, 2415, 3, 2, 2, 2, 2414, 2412, 3, 2, 2, 2, 2415, 2416, 7, 27, 2, 2, 2416, 2418, 3, 2, 2, 2, 2417, 2405, 3, 2, 2, 2, 2417, 2406, 3, 2, 2, 2, 2418, 327, 3, 2, 2, 2, 2419, 2421, 6, 165, 6, 2, 2420, 2422, 7, 41, 2, 2, 2421, 2420, 3, 2, 2, 2, 2421, 2422, 3, 2, 2, 2, 2422, 2423, 3, 2, 2, 2, 2423, 2434, 5, 440, 221, 2, 2424, 2425, 7, 26, 2, 2, 2425, 2430, 7, 19, 2, 2, 2426, 2427, 7, 23, 2, 2, 2427, 2429, 7, 19, 2, 2, 2428, 2426, 3, 2, 2, 2, 2429, 2432, 3, 2, 2, 2, 2430, 2428, 3, 2, 2, 2, 2430, 2431, 3, 2, 2, 2, 2431, 2433, 3, 2, 2, 2, 2432, 2430, 3, 2, 2, 2, 2433, 2435, 7, 27, 2, 2, 2434, 2424, 3, 2, 2, 2, 2434, 2435, 3, 2, 2, 2, 2435, 329, 3, 2, 2, 2, 2436, 2437, 5, 440, 221, 2, 2437, 331, 3, 2, 2, 2, 2438, 2439, 7, 289, 2, 2, 2439, 2440, 5, 368, 185, 2, 2440, 333, 3, 2, 2, 2, 2441, 2442, 7, 290, 2, 2, 2442, 2443, 7, 111, 2, 2, 2443, 2448, 5, 384, 193, 2, 2444, 2445, 7, 23, 2, 2, 2445, 2447, 5, 384, 193, 2, 2446, 2444, 3, 2, 2, 2, 2447, 2450, 3, 2, 2, 2, 2448, 2446, 3, 2, 2, 2, 2448, 2449, 3, 2, 2, 2, 2449, 335, 3, 2, 2, 2, 2450, 2448, 3, 2, 2, 2, 2451, 2452, 7, 291, 2, 2, 2452, 2453, 5, 368, 185, 2, 2453, 337, 3, 2, 2, 2, 2454, 2455, 7, 292, 2, 2, 2455, 2456, 5, 368, 185, 2, 2456, 339, 3, 2, 2, 2, 2457, 2458, 7, 293, 2, 2, 2458, 2459, 7, 111, 2, 2, 2459, 2461, 5, 384, 193, 2, 2460, 2462, 9, 9, 2, 2, 2461, 2460, 3, 2, 2, 2, 2461, 2462, 3, 2, 2, 2, 2462, 2470, 3, 2, 2, 2, 2463, 2464, 7, 23, 2, 2, 2464, 2466, 5, 384, 193, 2, 2465, 2467, 9, 9, 2, 2, 2466, 2465, 3, 2, 2, 2, 2466, 2467, 3, 2, 2, 2, 2467, 2469, 3, 2, 2, 2, 2468, 2463, 3, 2, 2, 2, 2469, 2472, 3, 2, 2, 2, 2470, 2468, 3, 2, 2, 2, 2470, 2471, 3, 2, 2, 2, 2471, 341, 3, 2, 2, 2, 2472, 2470, 3, 2, 2, 2, 2473, 2475, 5, 344, 173, 2, 2474, 2473, 3, 2, 2, 2, 2475, 2476, 3, 2, 2, 2, 2476, 2474, 3, 2, 2, 2, 2476, 2477, 3, 2, 2, 2, 2477, 343, 3, 2, 2, 2, 2478, 2479, 7, 261, 2, 2, 2479, 2490, 5, 384, 193, 2, 2480, 2481, 7, 36, 2, 2, 2481, 2487, 9, 40, 2, 2, 2482, 2483, 7, 263, 2, 2, 2483, 2484, 7, 297, 2, 2, 2484, 2485, 7, 298, 2, 2, 2485, 2486, 9, 41, 2, 2, 2486, 2488, 7, 301, 2, 2, 2487, 2482, 3, 2, 2, 2, 2487, 2488, 3, 2, 2, 2, 2488, 2490, 3, 2, 2, 2, 2489, 2478, 3, 2, 2, 2, 2489, 2480, 3, 2, 2, 2, 2490, 345, 3, 2, 2, 2, 2491, 2492, 7, 82, 2, 2, 2492, 2493, 5, 350, 176, 2, 2493, 2494, 7, 22, 2, 2, 2494, 2496, 5, 348, 175, 2, 2495, 2497, 5, 332, 167, 2, 2496, 2495, 3, 2, 2, 2, 2496, 2497, 3, 2, 2, 2, 2497, 2499, 3, 2, 2, 2, 2498, 2500, 5, 352, 177, 2, 2499, 2498, 3, 2, 2, 2, 2499, 2500, 3, 2, 2, 2, 2500, 347, 3, 2, 2, 2, 2501, 2506, 5, 28, 15, 2, 2502, 2503, 7, 23, 2, 2, 2503, 2505, 5, 28, 15, 2, 2504, 2502, 3, 2, 2, 2, 2505, 2508, 3, 2, 2, 2, 2506, 2504, 3, 2, 2, 2, 2506, 2507, 3, 2, 2, 2, 2507, 349, 3, 2, 2, 2, 2508, 2506, 3, 2, 2, 2, 2509, 2511, 5, 330, 166, 2, 2510, 2512, 5, 312, 157, 2, 2511, 2510, 3, 2, 2, 2, 2511, 2512, 3, 2, 2, 2, 2512, 2518, 3, 2, 2, 2, 2513, 2514, 7, 26, 2, 2, 2514, 2515, 5, 282, 142, 2, 2515, 2516, 7, 27, 2, 2, 2516, 2518, 3, 2, 2, 2, 2517, 2509, 3, 2, 2, 2, 2517, 2513, 3, 2, 2, 2, 2518, 2523, 3, 2, 2, 2, 2519, 2521, 7, 41, 2, 2, 2520, 2519, 3, 2, 2, 2, 2520, 2521, 3, 2, 2, 2, 2521, 2522, 3, 2, 2, 2, 2522, 2524, 5, 440, 221, 2, 2523, 2520, 3, 2, 2, 2, 2523, 2524, 3, 2, 2, 2, 2524, 351, 3, 2, 2, 2, 2525, 2526, 7, 206, 2, 2, 2526, 2527, 5, 178, 90, 2, 2527, 353, 3, 2, 2, 2, 2528, 2529, 7, 302, 2, 2, 2529, 2530, 7, 205, 2, 2, 2530, 2531, 5, 356, 179, 2, 2531, 2532, 7, 273, 2, 2, 2532, 2533, 5, 356, 179, 2, 2533, 2534, 7, 81, 2, 2, 2534, 2536, 5, 368, 185, 2, 2535, 2537, 5, 358, 180, 2, 2536, 2535, 3, 2, 2, 2, 2537, 2538, 3, 2, 2, 2, 2538, 2536, 3, 2, 2, 2, 2538, 2539, 3, 2, 2, 2, 2539, 355, 3, 2, 2, 2, 2540, 2546, 5, 330, 166, 2, 2541, 2542, 7, 26, 2, 2, 2542, 2543, 5, 282, 142, 2, 2543, 2544, 7, 27, 2, 2, 2544, 2546, 3, 2, 2, 2, 2545, 2540, 3, 2, 2, 2, 2545, 2541, 3, 2, 2, 2, 2546, 2551, 3, 2, 2, 2, 2547, 2549, 7, 41, 2, 2, 2548, 2547, 3, 2, 2, 2, 2548, 2549, 3, 2, 2, 2, 2549, 2550, 3, 2, 2, 2, 2550, 2552, 5, 440, 221, 2, 2551, 2548, 3, 2, 2, 2, 2551, 2552, 3, 2, 2, 2, 2552, 357, 3, 2, 2, 2, 2553, 2555, 7, 18, 2, 2, 2554, 2556, 7, 56, 2, 2, 2555, 2554, 3, 2, 2, 2, 2555, 2556, 3, 2, 2, 2, 2556, 2557, 3, 2, 2, 2, 2557, 2560, 7, 303, 2, 2, 2558, 2559, 7, 297, 2, 2, 2559, 2561, 5, 368, 185, 2, 2560, 2558, 3, 2, 2, 2, 2560, 2561, 3, 2, 2, 2, 2561, 2562, 3, 2, 2, 2, 2562, 2563, 7, 20, 2, 2, 2563, 2567, 5, 360, 181, 2, 2564, 2565, 7, 206, 2, 2, 2565, 2567, 7, 238, 2, 2, 2566, 2553, 3, 2, 2, 2, 2566, 2564, 3, 2, 2, 2, 2567, 359, 3, 2, 2, 2, 2568, 2570, 7, 210, 2, 2, 2569, 2571, 5, 180, 91, 2, 2570, 2569, 3, 2, 2, 2, 2570, 2571, 3, 2, 2, 2, 2571, 2572, 3, 2, 2, 2, 2572, 2573, 7, 212, 2, 2, 2573, 2589, 5, 184, 93, 2, 2574, 2575, 7, 82, 2, 2, 2575, 2576, 7, 22, 2, 2, 2576, 2581, 5, 28, 15, 2, 2577, 2578, 7, 23, 2, 2, 2578, 2580, 5, 28, 15, 2, 2579, 2577, 3, 2, 2, 2, 2580, 2583, 3, 2, 2, 2, 2581, 2579, 3, 2, 2, 2, 2581, 2582, 3, 2, 2, 2, 2582, 2585, 3, 2, 2, 2, 2583, 2581, 3, 2, 2, 2, 2584, 2586, 5, 332, 167, 2, 2585, 2584, 3, 2, 2, 2, 2585, 2586, 3, 2, 2, 2, 2586, 2589, 3, 2, 2, 2, 2587, 2589, 7, 83, 2, 2, 2588, 2568, 3, 2, 2, 2, 2588, 2574, 3, 2, 2, 2, 2588, 2587, 3, 2, 2, 2, 2589, 361, 3, 2, 2, 2, 2590, 2592, 7, 83, 2, 2, 2591, 2593, 7, 225, 2, 2, 2592, 2591, 3, 2, 2, 2, 2592, 2593, 3, 2, 2, 2, 2593, 2594, 3, 2, 2, 2, 2594, 2596, 5, 330, 166, 2, 2595, 2597, 5, 364, 183, 2, 2596, 2595, 3, 2, 2, 2, 2596, 2597, 3, 2, 2, 2, 2597, 2600, 3, 2, 2, 2, 2598, 2601, 5, 332, 167, 2, 2599, 2601, 7, 275, 2, 2, 2600, 2598, 3, 2, 2, 2, 2600, 2599, 3, 2, 2, 2, 2600, 2601, 3, 2, 2, 2, 2601, 363, 3, 2, 2, 2, 2602, 2604, 6, 183, 7, 2, 2603, 2605, 7, 41, 2, 2, 2604, 2603, 3, 2, 2, 2, 2604, 2605, 3, 2, 2, 2, 2605, 2606, 3, 2, 2, 2, 2606, 2607, 5, 440, 221, 2, 2607, 365, 3, 2, 2, 2, 2608, 2610, 9, 42, 2, 2, 2609, 2611, 7, 60, 2, 2, 2610, 2609, 3, 2, 2, 2, 2610, 2611, 3, 2, 2, 2, 2611, 2612, 3, 2, 2, 2, 2612, 2613, 5, 330, 166, 2, 2613, 367, 3, 2, 2, 2, 2614, 2616, 8, 185, 1, 2, 2615, 2617, 7, 56, 2, 2, 2616, 2615, 3, 2, 2, 2, 2616, 2617, 3, 2, 2, 2, 2617, 2618, 3, 2, 2, 2, 2618, 2619, 7, 26, 2, 2, 2619, 2620, 5, 368, 185, 2, 2620, 2621, 7, 27, 2, 2, 2621, 2624, 3, 2, 2, 2, 2622, 2624, 5, 370, 186, 2, 2623, 2614, 3, 2, 2, 2, 2623, 2622, 3, 2, 2, 2, 2624, 2631, 3, 2, 2, 2, 2625, 2626, 12, 4, 2, 2, 2626, 2627, 5, 380, 191, 2, 2627, 2628, 5, 368, 185, 5, 2628, 2630, 3, 2, 2, 2, 2629, 2625, 3, 2, 2, 2, 2630, 2633, 3, 2, 2, 2, 2631, 2629, 3, 2, 2, 2, 2631, 2632, 3, 2, 2, 2, 2632, 369, 3, 2, 2, 2, 2633, 2631, 3, 2, 2, 2, 2634, 2638, 5, 372, 187, 2, 2635, 2638, 5, 378, 190, 2, 2636, 2638, 5, 384, 193, 2, 2637, 2634, 3, 2, 2, 2, 2637, 2635, 3, 2, 2, 2, 2637, 2636, 3, 2, 2, 2, 2638, 371, 3, 2, 2, 2, 2639, 2640, 5, 384, 193, 2, 2640, 2642, 7, 44, 2, 2, 2641, 2643, 7, 56, 2, 2, 2642, 2641, 3, 2, 2, 2, 2642, 2643, 3, 2, 2, 2, 2643, 2644, 3, 2, 2, 2, 2644, 2645, 7, 21, 2, 2, 2645, 2663, 3, 2, 2, 2, 2646, 2647, 5, 384, 193, 2, 2647, 2648, 7, 305, 2, 2, 2648, 2649, 5, 384, 193, 2, 2649, 2650, 7, 297, 2, 2, 2650, 2651, 5, 384, 193, 2, 2651, 2663, 3, 2, 2, 2, 2652, 2654, 7, 56, 2, 2, 2653, 2652, 3, 2, 2, 2, 2653, 2654, 3, 2, 2, 2, 2654, 2655, 3, 2, 2, 2, 2655, 2656, 7, 63, 2, 2, 2656, 2657, 7, 26, 2, 2, 2657, 2658, 5, 282, 142, 2, 2658, 2659, 7, 27, 2, 2, 2659, 2663, 3, 2, 2, 2, 2660, 2663, 5, 374, 188, 2, 2661, 2663, 5, 376, 189, 2, 2662, 2639, 3, 2, 2, 2, 2662, 2646, 3, 2, 2, 2, 2662, 2653, 3, 2, 2, 2, 2662, 2660, 3, 2, 2, 2, 2662, 2661, 3, 2, 2, 2, 2663, 373, 3, 2, 2, 2, 2664, 2666, 5, 384, 193, 2, 2665, 2667, 7, 56, 2, 2, 2666, 2665, 3, 2, 2, 2, 2666, 2667, 3, 2, 2, 2, 2667, 2668, 3, 2, 2, 2, 2668, 2669, 7, 108, 2, 2, 2669, 2679, 7, 26, 2, 2, 2670, 2675, 5, 384, 193, 2, 2671, 2672, 7, 23, 2, 2, 2672, 2674, 5, 384, 193, 2, 2673, 2671, 3, 2, 2, 2, 2674, 2677, 3, 2, 2, 2, 2675, 2673, 3, 2, 2, 2, 2675, 2676, 3, 2, 2, 2, 2676, 2680, 3, 2, 2, 2, 2677, 2675, 3, 2, 2, 2, 2678, 2680, 5, 282, 142, 2, 2679, 2670, 3, 2, 2, 2, 2679, 2678, 3, 2, 2, 2, 2680, 2681, 3, 2, 2, 2, 2681, 2682, 7, 27, 2, 2, 2682, 375, 3, 2, 2, 2, 2683, 2684, 7, 26, 2, 2, 2684, 2689, 5, 384, 193, 2, 2685, 2686, 7, 23, 2, 2, 2686, 2688, 5, 384, 193, 2, 2687, 2685, 3, 2, 2, 2, 2688, 2691, 3, 2, 2, 2, 2689, 2687, 3, 2, 2, 2, 2689, 2690, 3, 2, 2, 2, 2690, 2692, 3, 2, 2, 2, 2691, 2689, 3, 2, 2, 2, 2692, 2694, 7, 27, 2, 2, 2693, 2695, 7, 56, 2, 2, 2694, 2693, 3, 2, 2, 2, 2694, 2695, 3, 2, 2, 2, 2695, 2696, 3, 2, 2, 2, 2696, 2697, 7, 108, 2, 2, 2697, 2698, 7, 26, 2, 2, 2698, 2699, 5, 282, 142, 2, 2699, 2700, 7, 27, 2, 2, 2700, 377, 3, 2, 2, 2, 2701, 2702, 5, 384, 193, 2, 2702, 2703, 5, 382, 192, 2, 2703, 2704, 5, 384, 193, 2, 2704, 379, 3, 2, 2, 2, 2705, 2706, 9, 43, 2, 2, 2706, 381, 3, 2, 2, 2, 2707, 2720, 7, 25, 2, 2, 2708, 2720, 7, 306, 2, 2, 2709, 2720, 7, 307, 2, 2, 2710, 2720, 7, 308, 2, 2, 2711, 2720, 7, 271, 2, 2, 2712, 2720, 7, 309, 2, 2, 2713, 2720, 7, 272, 2, 2, 2714, 2720, 7, 310, 2, 2, 2715, 2717, 7, 56, 2, 2, 2716, 2715, 3, 2, 2, 2, 2716, 2717, 3, 2, 2, 2, 2717, 2718, 3, 2, 2, 2, 2718, 2720, 9, 44, 2, 2, 2719, 2707, 3, 2, 2, 2, 2719, 2708, 3, 2, 2, 2, 2719, 2709, 3, 2, 2, 2, 2719, 2710, 3, 2, 2, 2, 2719, 2711, 3, 2, 2, 2, 2719, 2712, 3, 2, 2, 2, 2719, 2713, 3, 2, 2, 2, 2719, 2714, 3, 2, 2, 2, 2719, 2716, 3, 2, 2, 2, 2720, 383, 3, 2, 2, 2, 2721, 2722, 8, 193, 1, 2, 2722, 2723, 7, 26, 2, 2, 2723, 2724, 5, 282, 142, 2, 2724, 2725, 7, 27, 2, 2, 2725, 2739, 3, 2, 2, 2, 2726, 2727, 7, 26, 2, 2, 2727, 2728, 5, 384, 193, 2, 2728, 2729, 7, 27, 2, 2, 2729, 2739, 3, 2, 2, 2, 2730, 2739, 5, 388, 195, 2, 2731, 2739, 5, 392, 197, 2, 2732, 2739, 5, 396, 199, 2, 2733, 2739, 5, 402, 202, 2, 2734, 2739, 5, 404, 203, 2, 2735, 2739, 5, 412, 207, 2, 2736, 2739, 5, 414, 208, 2, 2737, 2739, 5, 386, 194, 2, 2738, 2721, 3, 2, 2, 2, 2738, 2726, 3, 2, 2, 2, 2738, 2730, 3, 2, 2, 2, 2738, 2731, 3, 2, 2, 2, 2738, 2732, 3, 2, 2, 2, 2738, 2733, 3, 2, 2, 2, 2738, 2734, 3, 2, 2, 2, 2738, 2735, 3, 2, 2, 2, 2738, 2736, 3, 2, 2, 2, 2738, 2737, 3, 2, 2, 2, 2739, 2756, 3, 2, 2, 2, 2740, 2741, 12, 16, 2, 2, 2741, 2742, 7, 313, 2, 2, 2742, 2755, 5, 384, 193, 17, 2743, 2744, 12, 15, 2, 2, 2744, 2745, 7, 314, 2, 2, 2745, 2755, 5, 384, 193, 16, 2746, 2747, 12, 14, 2, 2, 2747, 2748, 7, 315, 2, 2, 2748, 2755, 5, 384, 193, 15, 2749, 2750, 12, 13, 2, 2, 2750, 2751, 7, 316, 2, 2, 2751, 2755, 5, 384, 193, 14, 2752, 2753, 12, 17, 2, 2, 2753, 2755, 5, 390, 196, 2, 2754, 2740, 3, 2, 2, 2, 2754, 2743, 3, 2, 2, 2, 2754, 2746, 3, 2, 2, 2, 2754, 2749, 3, 2, 2, 2, 2754, 2752, 3, 2, 2, 2, 2755, 2758, 3, 2, 2, 2, 2756, 2754, 3, 2, 2, 2, 2756, 2757, 3, 2, 2, 2, 2757, 385, 3, 2, 2, 2, 2758, 2756, 3, 2, 2, 2, 2759, 2768, 5, 436, 219, 2, 2760, 2768, 5, 438, 220, 2, 2761, 2768, 5, 448, 225, 2, 2762, 2768, 5, 440, 221, 2, 2763, 2768, 5, 442, 222, 2, 2764, 2768, 5, 446, 224, 2, 2765, 2768, 5, 444, 223, 2, 2766, 2768, 5, 450, 226, 2, 2767, 2759, 3, 2, 2, 2, 2767, 2760, 3, 2, 2, 2, 2767, 2761, 3, 2, 2, 2, 2767, 2762, 3, 2, 2, 2, 2767, 2763, 3, 2, 2, 2, 2767, 2764, 3, 2, 2, 2, 2767, 2765, 3, 2, 2, 2, 2767, 2766, 3, 2, 2, 2, 2768, 387, 3, 2, 2, 2, 2769, 2770, 7, 317, 2, 2, 2770, 2771, 5, 384, 193, 2, 2771, 2772, 5, 390, 196, 2, 2772, 389, 3, 2, 2, 2, 2773, 2774, 9, 45, 2, 2, 2774, 391, 3, 2, 2, 2, 2775, 2776, 5, 394, 198, 2, 2776, 2777, 9, 46, 2, 2, 2777, 2782, 5, 394, 198, 2, 2778, 2779, 9, 46, 2, 2, 2779, 2781, 5, 394, 198, 2, 2780, 2778, 3, 2, 2, 2, 2781, 2784, 3, 2, 2, 2, 2782, 2780, 3, 2, 2, 2, 2782, 2783, 3, 2, 2, 2, 2783, 393, 3, 2, 2, 2, 2784, 2782, 3, 2, 2, 2, 2785, 2786, 7, 26, 2, 2, 2786, 2787, 5, 384, 193, 2, 2787, 2788, 7, 27, 2, 2, 2788, 2795, 3, 2, 2, 2, 2789, 2795, 5, 396, 199, 2, 2790, 2795, 5, 404, 203, 2, 2791, 2795, 5, 412, 207, 2, 2792, 2795, 5, 414, 208, 2, 2793, 2795, 5, 386, 194, 2, 2794, 2785, 3, 2, 2, 2, 2794, 2789, 3, 2, 2, 2, 2794, 2790, 3, 2, 2, 2, 2794, 2791, 3, 2, 2, 2, 2794, 2792, 3, 2, 2, 2, 2794, 2793, 3, 2, 2, 2, 2795, 395, 3, 2, 2, 2, 2796, 2799, 5, 398, 200, 2, 2797, 2799, 5, 400, 201, 2, 2798, 2796, 3, 2, 2, 2, 2798, 2797, 3, 2, 2, 2, 2799, 397, 3, 2, 2, 2, 2800, 2801, 7, 326, 2, 2, 2801, 2807, 5, 384, 193, 2, 2802, 2803, 7, 18, 2, 2, 2803, 2804, 5, 384, 193, 2, 2804, 2805, 7, 20, 2, 2, 2805, 2806, 5, 384, 193, 2, 2806, 2808, 3, 2, 2, 2, 2807, 2802, 3, 2, 2, 2, 2808, 2809, 3, 2, 2, 2, 2809, 2807, 3, 2, 2, 2, 2809, 2810, 3, 2, 2, 2, 2810, 2813, 3, 2, 2, 2, 2811, 2812, 7, 206, 2, 2, 2812, 2814, 5, 384, 193, 2, 2813, 2811, 3, 2, 2, 2, 2813, 2814, 3, 2, 2, 2, 2814, 2815, 3, 2, 2, 2, 2815, 2816, 7, 16, 2, 2, 2816, 399, 3, 2, 2, 2, 2817, 2823, 7, 326, 2, 2, 2818, 2819, 7, 18, 2, 2, 2819, 2820, 5, 368, 185, 2, 2820, 2821, 7, 20, 2, 2, 2821, 2822, 5, 384, 193, 2, 2822, 2824, 3, 2, 2, 2, 2823, 2818, 3, 2, 2, 2, 2824, 2825, 3, 2, 2, 2, 2825, 2823, 3, 2, 2, 2, 2825, 2826, 3, 2, 2, 2, 2826, 2829, 3, 2, 2, 2, 2827, 2828, 7, 206, 2, 2, 2828, 2830, 5, 384, 193, 2, 2829, 2827, 3, 2, 2, 2, 2829, 2830, 3, 2, 2, 2, 2830, 2831, 3, 2, 2, 2, 2831, 2832, 7, 16, 2, 2, 2832, 401, 3, 2, 2, 2, 2833, 2834, 5, 440, 221, 2, 2834, 2835, 7, 6, 2, 2, 2835, 2836, 9, 47, 2, 2, 2836, 403, 3, 2, 2, 2, 2837, 2838, 7, 329, 2, 2, 2838, 2840, 7, 26, 2, 2, 2839, 2841, 5, 406, 204, 2, 2840, 2839, 3, 2, 2, 2, 2840, 2841, 3, 2, 2, 2, 2841, 2842, 3, 2, 2, 2, 2842, 2843, 5, 384, 193, 2, 2843, 2845, 7, 27, 2, 2, 2844, 2846, 5, 408, 205, 2, 2845, 2844, 3, 2, 2, 2, 2845, 2846, 3, 2, 2, 2, 2846, 2990, 3, 2, 2, 2, 2847, 2848, 7, 330, 2, 2, 2848, 2854, 7, 26, 2, 2, 2849, 2851, 5, 406, 204, 2, 2850, 2849, 3, 2, 2, 2, 2850, 2851, 3, 2, 2, 2, 2851, 2852, 3, 2, 2, 2, 2852, 2855, 5, 384, 193, 2, 2853, 2855, 7, 8, 2, 2, 2854, 2850, 3, 2, 2, 2, 2854, 2853, 3, 2, 2, 2, 2855, 2856, 3, 2, 2, 2, 2856, 2858, 7, 27, 2, 2, 2857, 2859, 5, 408, 205, 2, 2858, 2857, 3, 2, 2, 2, 2858, 2859, 3, 2, 2, 2, 2859, 2990, 3, 2, 2, 2, 2860, 2861, 7, 331, 2, 2, 2861, 2867, 7, 26, 2, 2, 2862, 2864, 5, 406, 204, 2, 2863, 2862, 3, 2, 2, 2, 2863, 2864, 3, 2, 2, 2, 2864, 2865, 3, 2, 2, 2, 2865, 2868, 5, 384, 193, 2, 2866, 2868, 7, 8, 2, 2, 2867, 2863, 3, 2, 2, 2, 2867, 2866, 3, 2, 2, 2, 2868, 2869, 3, 2, 2, 2, 2869, 2871, 7, 27, 2, 2, 2870, 2872, 5, 408, 205, 2, 2871, 2870, 3, 2, 2, 2, 2871, 2872, 3, 2, 2, 2, 2872, 2990, 3, 2, 2, 2, 2873, 2874, 7, 332, 2, 2, 2874, 2875, 7, 26, 2, 2, 2875, 2876, 7, 27, 2, 2, 2876, 2990, 5, 408, 205, 2, 2877, 2878, 7, 333, 2, 2, 2878, 2879, 7, 26, 2, 2, 2879, 2880, 7, 27, 2, 2, 2880, 2990, 5, 408, 205, 2, 2881, 2882, 7, 334, 2, 2, 2882, 2883, 7, 26, 2, 2, 2883, 2884, 5, 384, 193, 2, 2884, 2885, 7, 27, 2, 2, 2885, 2886, 5, 408, 205, 2, 2886, 2990, 3, 2, 2, 2, 2887, 2888, 7, 335, 2, 2, 2888, 2889, 7, 26, 2, 2, 2889, 2896, 5, 384, 193, 2, 2890, 2891, 7, 23, 2, 2, 2891, 2894, 5, 384, 193, 2, 2892, 2893, 7, 23, 2, 2, 2893, 2895, 5, 384, 193, 2, 2894, 2892, 3, 2, 2, 2, 2894, 2895, 3, 2, 2, 2, 2895, 2897, 3, 2, 2, 2, 2896, 2890, 3, 2, 2, 2, 2896, 2897, 3, 2, 2, 2, 2897, 2898, 3, 2, 2, 2, 2898, 2899, 7, 27, 2, 2, 2899, 2900, 5, 408, 205, 2, 2900, 2990, 3, 2, 2, 2, 2901, 2902, 7, 336, 2, 2, 2902, 2903, 7, 26, 2, 2, 2903, 2904, 5, 384, 193, 2, 2904, 2905, 7, 27, 2, 2, 2905, 2906, 5, 408, 205, 2, 2906, 2990, 3, 2, 2, 2, 2907, 2908, 7, 337, 2, 2, 2908, 2909, 7, 26, 2, 2, 2909, 2916, 5, 384, 193, 2, 2910, 2911, 7, 23, 2, 2, 2911, 2914, 5, 384, 193, 2, 2912, 2913, 7, 23, 2, 2, 2913, 2915, 5, 384, 193, 2, 2914, 2912, 3, 2, 2, 2, 2914, 2915, 3, 2, 2, 2, 2915, 2917, 3, 2, 2, 2, 2916, 2910, 3, 2, 2, 2, 2916, 2917, 3, 2, 2, 2, 2917, 2918, 3, 2, 2, 2, 2918, 2919, 7, 27, 2, 2, 2919, 2920, 5, 408, 205, 2, 2920, 2990, 3, 2, 2, 2, 2921, 2922, 7, 179, 2, 2, 2922, 2924, 7, 26, 2, 2, 2923, 2925, 5, 406, 204, 2, 2924, 2923, 3, 2, 2, 2, 2924, 2925, 3, 2, 2, 2, 2925, 2926, 3, 2, 2, 2, 2926, 2927, 5, 384, 193, 2, 2927, 2929, 7, 27, 2, 2, 2928, 2930, 5, 408, 205, 2, 2929, 2928, 3, 2, 2, 2, 2929, 2930, 3, 2, 2, 2, 2930, 2990, 3, 2, 2, 2, 2931, 2932, 7, 338, 2, 2, 2932, 2934, 7, 26, 2, 2, 2933, 2935, 5, 406, 204, 2, 2934, 2933, 3, 2, 2, 2, 2934, 2935, 3, 2, 2, 2, 2935, 2936, 3, 2, 2, 2, 2936, 2937, 5, 384, 193, 2, 2937, 2939, 7, 27, 2, 2, 2938, 2940, 5, 408, 205, 2, 2939, 2938, 3, 2, 2, 2, 2939, 2940, 3, 2, 2, 2, 2940, 2990, 3, 2, 2, 2, 2941, 2942, 7, 339, 2, 2, 2942, 2943, 7, 26, 2, 2, 2943, 2944, 7, 27, 2, 2, 2944, 2990, 5, 408, 205, 2, 2945, 2946, 7, 340, 2, 2, 2946, 2947, 7, 26, 2, 2, 2947, 2948, 7, 27, 2, 2, 2948, 2990, 5, 408, 205, 2, 2949, 2950, 7, 341, 2, 2, 2950, 2952, 7, 26, 2, 2, 2951, 2953, 5, 406, 204, 2, 2952, 2951, 3, 2, 2, 2, 2952, 2953, 3, 2, 2, 2, 2953, 2954, 3, 2, 2, 2, 2954, 2955, 5, 384, 193, 2, 2955, 2957, 7, 27, 2, 2, 2956, 2958, 5, 408, 205, 2, 2957, 2956, 3, 2, 2, 2, 2957, 2958, 3, 2, 2, 2, 2958, 2990, 3, 2, 2, 2, 2959, 2960, 7, 232, 2, 2, 2960, 2962, 7, 26, 2, 2, 2961, 2963, 5, 406, 204, 2, 2962, 2961, 3, 2, 2, 2, 2962, 2963, 3, 2, 2, 2, 2963, 2964, 3, 2, 2, 2, 2964, 2965, 5, 384, 193, 2, 2965, 2967, 7, 27, 2, 2, 2966, 2968, 5, 408, 205, 2, 2967, 2966, 3, 2, 2, 2, 2967, 2968, 3, 2, 2, 2, 2968, 2990, 3, 2, 2, 2, 2969, 2970, 7, 342, 2, 2, 2970, 2972, 7, 26, 2, 2, 2971, 2973, 5, 406, 204, 2, 2972, 2971, 3, 2, 2, 2, 2972, 2973, 3, 2, 2, 2, 2973, 2974, 3, 2, 2, 2, 2974, 2975, 5, 384, 193, 2, 2975, 2977, 7, 27, 2, 2, 2976, 2978, 5, 408, 205, 2, 2977, 2976, 3, 2, 2, 2, 2977, 2978, 3, 2, 2, 2, 2978, 2990, 3, 2, 2, 2, 2979, 2980, 7, 343, 2, 2, 2980, 2982, 7, 26, 2, 2, 2981, 2983, 5, 406, 204, 2, 2982, 2981, 3, 2, 2, 2, 2982, 2983, 3, 2, 2, 2, 2983, 2984, 3, 2, 2, 2, 2984, 2985, 5, 384, 193, 2, 2985, 2987, 7, 27, 2, 2, 2986, 2988, 5, 408, 205, 2, 2987, 2986, 3, 2, 2, 2, 2987, 2988, 3, 2, 2, 2, 2988, 2990, 3, 2, 2, 2, 2989, 2837, 3, 2, 2, 2, 2989, 2847, 3, 2, 2, 2, 2989, 2860, 3, 2, 2, 2, 2989, 2873, 3, 2, 2, 2, 2989, 2877, 3, 2, 2, 2, 2989, 2881, 3, 2, 2, 2, 2989, 2887, 3, 2, 2, 2, 2989, 2901, 3, 2, 2, 2, 2989, 2907, 3, 2, 2, 2, 2989, 2921, 3, 2, 2, 2, 2989, 2931, 3, 2, 2, 2, 2989, 2941, 3, 2, 2, 2, 2989, 2945, 3, 2, 2, 2, 2989, 2949, 3, 2, 2, 2, 2989, 2959, 3, 2, 2, 2, 2989, 2969, 3, 2, 2, 2, 2989, 2979, 3, 2, 2, 2, 2990, 405, 3, 2, 2, 2, 2991, 2992, 9, 38, 2, 2, 2992, 407, 3, 2, 2, 2, 2993, 2994, 7, 344, 2, 2, 2994, 2996, 7, 26, 2, 2, 2995, 2997, 5, 410, 206, 2, 2996, 2995, 3, 2, 2, 2, 2996, 2997, 3, 2, 2, 2, 2997, 2999, 3, 2, 2, 2, 2998, 3000, 5, 340, 171, 2, 2999, 2998, 3, 2, 2, 2, 2999, 3000, 3, 2, 2, 2, 3000, 3001, 3, 2, 2, 2, 3001, 3002, 7, 27, 2, 2, 3002, 409, 3, 2, 2, 2, 3003, 3004, 7, 345, 2, 2, 3004, 3005, 7, 111, 2, 2, 3005, 3010, 5, 384, 193, 2, 3006, 3007, 7, 23, 2, 2, 3007, 3009, 5, 384, 193, 2, 3008, 3006, 3, 2, 2, 2, 3009, 3012, 3, 2, 2, 2, 3010, 3008, 3, 2, 2, 2, 3010, 3011, 3, 2, 2, 2, 3011, 411, 3, 2, 2, 2, 3012, 3010, 3, 2, 2, 2, 3013, 3214, 7, 346, 2, 2, 3014, 3015, 7, 347, 2, 2, 3015, 3016, 7, 26, 2, 2, 3016, 3017, 5, 384, 193, 2, 3017, 3018, 7, 41, 2, 2, 3018, 3020, 5, 120, 61, 2, 3019, 3021, 5, 122, 62, 2, 3020, 3019, 3, 2, 2, 2, 3020, 3021, 3, 2, 2, 2, 3021, 3022, 3, 2, 2, 2, 3022, 3023, 7, 27, 2, 2, 3023, 3214, 3, 2, 2, 2, 3024, 3025, 7, 330, 2, 2, 3025, 3028, 7, 26, 2, 2, 3026, 3029, 5, 384, 193, 2, 3027, 3029, 7, 8, 2, 2, 3028, 3026, 3, 2, 2, 2, 3028, 3027, 3, 2, 2, 2, 3029, 3030, 3, 2, 2, 2, 3030, 3214, 7, 27, 2, 2, 3031, 3214, 7, 348, 2, 2, 3032, 3033, 7, 247, 2, 2, 3033, 3214, 7, 145, 2, 2, 3034, 3038, 7, 349, 2, 2, 3035, 3036, 7, 247, 2, 2, 3036, 3038, 7, 172, 2, 2, 3037, 3034, 3, 2, 2, 2, 3037, 3035, 3, 2, 2, 2, 3038, 3043, 3, 2, 2, 2, 3039, 3040, 7, 26, 2, 2, 3040, 3041, 5, 384, 193, 2, 3041, 3042, 7, 27, 2, 2, 3042, 3044, 3, 2, 2, 2, 3043, 3039, 3, 2, 2, 2, 3043, 3044, 3, 2, 2, 2, 3044, 3214, 3, 2, 2, 2, 3045, 3214, 7, 350, 2, 2, 3046, 3047, 7, 247, 2, 2, 3047, 3214, 7, 351, 2, 2, 3048, 3049, 7, 352, 2, 2, 3049, 3050, 7, 26, 2, 2, 3050, 3063, 5, 384, 193, 2, 3051, 3052, 7, 23, 2, 2, 3052, 3060, 5, 384, 193, 2, 3053, 3054, 7, 23, 2, 2, 3054, 3055, 5, 384, 193, 2, 3055, 3056, 7, 25, 2, 2, 3056, 3057, 5, 384, 193, 2, 3057, 3059, 3, 2, 2, 2, 3058, 3053, 3, 2, 2, 2, 3059, 3062, 3, 2, 2, 2, 3060, 3058, 3, 2, 2, 2, 3060, 3061, 3, 2, 2, 2, 3061, 3064, 3, 2, 2, 2, 3062, 3060, 3, 2, 2, 2, 3063, 3051, 3, 2, 2, 2, 3063, 3064, 3, 2, 2, 2, 3064, 3065, 3, 2, 2, 2, 3065, 3066, 7, 27, 2, 2, 3066, 3214, 3, 2, 2, 2, 3067, 3068, 7, 353, 2, 2, 3068, 3069, 7, 26, 2, 2, 3069, 3082, 5, 384, 193, 2, 3070, 3071, 7, 23, 2, 2, 3071, 3079, 5, 384, 193, 2, 3072, 3073, 7, 23, 2, 2, 3073, 3074, 5, 384, 193, 2, 3074, 3075, 7, 25, 2, 2, 3075, 3076, 5, 384, 193, 2, 3076, 3078, 3, 2, 2, 2, 3077, 3072, 3, 2, 2, 2, 3078, 3081, 3, 2, 2, 2, 3079, 3077, 3, 2, 2, 2, 3079, 3080, 3, 2, 2, 2, 3080, 3083, 3, 2, 2, 2, 3081, 3079, 3, 2, 2, 2, 3082, 3070, 3, 2, 2, 2, 3082, 3083, 3, 2, 2, 2, 3083, 3084, 3, 2, 2, 2, 3084, 3085, 7, 27, 2, 2, 3085, 3214, 3, 2, 2, 2, 3086, 3087, 7, 354, 2, 2, 3087, 3088, 7, 26, 2, 2, 3088, 3101, 5, 384, 193, 2, 3089, 3090, 7, 23, 2, 2, 3090, 3098, 5, 384, 193, 2, 3091, 3092, 7, 23, 2, 2, 3092, 3093, 5, 384, 193, 2, 3093, 3094, 7, 25, 2, 2, 3094, 3095, 5, 384, 193, 2, 3095, 3097, 3, 2, 2, 2, 3096, 3091, 3, 2, 2, 2, 3097, 3100, 3, 2, 2, 2, 3098, 3096, 3, 2, 2, 2, 3098, 3099, 3, 2, 2, 2, 3099, 3102, 3, 2, 2, 2, 3100, 3098, 3, 2, 2, 2, 3101, 3089, 3, 2, 2, 2, 3101, 3102, 3, 2, 2, 2, 3102, 3103, 3, 2, 2, 2, 3103, 3104, 7, 27, 2, 2, 3104, 3214, 3, 2, 2, 2, 3105, 3106, 7, 355, 2, 2, 3106, 3107, 7, 26, 2, 2, 3107, 3120, 5, 384, 193, 2, 3108, 3109, 7, 23, 2, 2, 3109, 3117, 5, 384, 193, 2, 3110, 3111, 7, 23, 2, 2, 3111, 3112, 5, 384, 193, 2, 3112, 3113, 7, 25, 2, 2, 3113, 3114, 5, 384, 193, 2, 3114, 3116, 3, 2, 2, 2, 3115, 3110, 3, 2, 2, 2, 3116, 3119, 3, 2, 2, 2, 3117, 3115, 3, 2, 2, 2, 3117, 3118, 3, 2, 2, 2, 3118, 3121, 3, 2, 2, 2, 3119, 3117, 3, 2, 2, 2, 3120, 3108, 3, 2, 2, 2, 3120, 3121, 3, 2, 2, 2, 3121, 3122, 3, 2, 2, 2, 3122, 3123, 7, 27, 2, 2, 3123, 3214, 3, 2, 2, 2, 3124, 3125, 7, 356, 2, 2, 3125, 3126, 7, 26, 2, 2, 3126, 3139, 5, 384, 193, 2, 3127, 3128, 7, 23, 2, 2, 3128, 3136, 5, 384, 193, 2, 3129, 3130, 7, 23, 2, 2, 3130, 3131, 5, 384, 193, 2, 3131, 3132, 7, 25, 2, 2, 3132, 3133, 5, 384, 193, 2, 3133, 3135, 3, 2, 2, 2, 3134, 3129, 3, 2, 2, 2, 3135, 3138, 3, 2, 2, 2, 3136, 3134, 3, 2, 2, 2, 3136, 3137, 3, 2, 2, 2, 3137, 3140, 3, 2, 2, 2, 3138, 3136, 3, 2, 2, 2, 3139, 3127, 3, 2, 2, 2, 3139, 3140, 3, 2, 2, 2, 3140, 3141, 3, 2, 2, 2, 3141, 3142, 7, 27, 2, 2, 3142, 3214, 3, 2, 2, 2, 3143, 3144, 7, 357, 2, 2, 3144, 3145, 7, 26, 2, 2, 3145, 3158, 5, 384, 193, 2, 3146, 3147, 7, 23, 2, 2, 3147, 3155, 5, 384, 193, 2, 3148, 3149, 7, 23, 2, 2, 3149, 3150, 5, 384, 193, 2, 3150, 3151, 7, 25, 2, 2, 3151, 3152, 5, 384, 193, 2, 3152, 3154, 3, 2, 2, 2, 3153, 3148, 3, 2, 2, 2, 3154, 3157, 3, 2, 2, 2, 3155, 3153, 3, 2, 2, 2, 3155, 3156, 3, 2, 2, 2, 3156, 3159, 3, 2, 2, 2, 3157, 3155, 3, 2, 2, 2, 3158, 3146, 3, 2, 2, 2, 3158, 3159, 3, 2, 2, 2, 3159, 3160, 3, 2, 2, 2, 3160, 3161, 7, 27, 2, 2, 3161, 3214, 3, 2, 2, 2, 3162, 3163, 7, 358, 2, 2, 3163, 3164, 7, 26, 2, 2, 3164, 3172, 5, 384, 193, 2, 3165, 3166, 7, 23, 2, 2, 3166, 3167, 5, 384, 193, 2, 3167, 3168, 7, 25, 2, 2, 3168, 3169, 5, 384, 193, 2, 3169, 3171, 3, 2, 2, 2, 3170, 3165, 3, 2, 2, 2, 3171, 3174, 3, 2, 2, 2, 3172, 3170, 3, 2, 2, 2, 3172, 3173, 3, 2, 2, 2, 3173, 3175, 3, 2, 2, 2, 3174, 3172, 3, 2, 2, 2, 3175, 3176, 7, 27, 2, 2, 3176, 3214, 3, 2, 2, 2, 3177, 3178, 7, 359, 2, 2, 3178, 3179, 7, 26, 2, 2, 3179, 3185, 5, 384, 193, 2, 3180, 3181, 7, 23, 2, 2, 3181, 3182, 5, 384, 193, 2, 3182, 3183, 7, 25, 2, 2, 3183, 3184, 5, 384, 193, 2, 3184, 3186, 3, 2, 2, 2, 3185, 3180, 3, 2, 2, 2, 3186, 3187, 3, 2, 2, 2, 3187, 3185, 3, 2, 2, 2, 3187, 3188, 3, 2, 2, 2, 3188, 3191, 3, 2, 2, 2, 3189, 3190, 7, 23, 2, 2, 3190, 3192, 5, 384, 193, 2, 3191, 3189, 3, 2, 2, 2, 3191, 3192, 3, 2, 2, 2, 3192, 3193, 3, 2, 2, 2, 3193, 3194, 7, 27, 2, 2, 3194, 3214, 3, 2, 2, 2, 3195, 3196, 7, 360, 2, 2, 3196, 3197, 7, 26, 2, 2, 3197, 3198, 5, 384, 193, 2, 3198, 3199, 7, 27, 2, 2, 3199, 3214, 3, 2, 2, 2, 3200, 3201, 7, 361, 2, 2, 3201, 3202, 7, 26, 2, 2, 3202, 3203, 5, 384, 193, 2, 3203, 3204, 7, 225, 2, 2, 3204, 3207, 5, 384, 193, 2, 3205, 3206, 7, 30, 2, 2, 3206, 3208, 5, 384, 193, 2, 3207, 3205, 3, 2, 2, 2, 3207, 3208, 3, 2, 2, 2, 3208, 3209, 3, 2, 2, 2, 3209, 3210, 7, 27, 2, 2, 3210, 3214, 3, 2, 2, 2, 3211, 3214, 7, 362, 2, 2, 3212, 3214, 7, 351, 2, 2, 3213, 3013, 3, 2, 2, 2, 3213, 3014, 3, 2, 2, 2, 3213, 3024, 3, 2, 2, 2, 3213, 3031, 3, 2, 2, 2, 3213, 3032, 3, 2, 2, 2, 3213, 3037, 3, 2, 2, 2, 3213, 3045, 3, 2, 2, 2, 3213, 3046, 3, 2, 2, 2, 3213, 3048, 3, 2, 2, 2, 3213, 3067, 3, 2, 2, 2, 3213, 3086, 3, 2, 2, 2, 3213, 3105, 3, 2, 2, 2, 3213, 3124, 3, 2, 2, 2, 3213, 3143, 3, 2, 2, 2, 3213, 3162, 3, 2, 2, 2, 3213, 3177, 3, 2, 2, 2, 3213, 3195, 3, 2, 2, 2, 3213, 3200, 3, 2, 2, 2, 3213, 3211, 3, 2, 2, 2, 3213, 3212, 3, 2, 2, 2, 3214, 413, 3, 2, 2, 2, 3215, 3216, 5, 440, 221, 2, 3216, 3218, 7, 26, 2, 2, 3217, 3219, 5, 416, 209, 2, 3218, 3217, 3, 2, 2, 2, 3218, 3219, 3, 2, 2, 2, 3219, 3220, 3, 2, 2, 2, 3220, 3221, 7, 27, 2, 2, 3221, 415, 3, 2, 2, 2, 3222, 3227, 5, 418, 210, 2, 3223, 3224, 7, 23, 2, 2, 3224, 3226, 5, 418, 210, 2, 3225, 3223, 3, 2, 2, 2, 3226, 3229, 3, 2, 2, 2, 3227, 3225, 3, 2, 2, 2, 3227, 3228, 3, 2, 2, 2, 3228, 417, 3, 2, 2, 2, 3229, 3227, 3, 2, 2, 2, 3230, 3236, 6, 210, 14, 2, 3231, 3232, 5, 440, 221, 2, 3232, 3234, 7, 25, 2, 2, 3233, 3235, 7, 272, 2, 2, 3234, 3233, 3, 2, 2, 2, 3234, 3235, 3, 2, 2, 2, 3235, 3237, 3, 2, 2, 2, 3236, 3231, 3, 2, 2, 2, 3236, 3237, 3, 2, 2, 2, 3237, 3238, 3, 2, 2, 2, 3238, 3239, 5, 384, 193, 2, 3239, 419, 3, 2, 2, 2, 3240, 3243, 5, 282, 142, 2, 3241, 3243, 5, 384, 193, 2, 3242, 3240, 3, 2, 2, 2, 3242, 3241, 3, 2, 2, 2, 3243, 421, 3, 2, 2, 2, 3244, 3247, 5, 434, 218, 2, 3245, 3247, 5, 384, 193, 2, 3246, 3244, 3, 2, 2, 2, 3246, 3245, 3, 2, 2, 2, 3247, 423, 3, 2, 2, 2, 3248, 3252, 7, 363, 2, 2, 3249, 3251, 5, 426, 214, 2, 3250, 3249, 3, 2, 2, 2, 3251, 3254, 3, 2, 2, 2, 3252, 3250, 3, 2, 2, 2, 3252, 3253, 3, 2, 2, 2, 3253, 425, 3, 2, 2, 2, 3254, 3252, 3, 2, 2, 2, 3255, 3256, 7, 316, 2, 2, 3256, 3257, 5, 440, 221, 2, 3257, 3258, 5, 384, 193, 2, 3258, 3268, 3, 2, 2, 2, 3259, 3260, 7, 316, 2, 2, 3260, 3261, 5, 440, 221, 2, 3261, 3262, 7, 19, 2, 2, 3262, 3263, 7, 25, 2, 2, 3263, 3264, 5, 384, 193, 2, 3264, 3268, 3, 2, 2, 2, 3265, 3266, 7, 316, 2, 2, 3266, 3268, 5, 440, 221, 2, 3267, 3255, 3, 2, 2, 2, 3267, 3259, 3, 2, 2, 2, 3267, 3265, 3, 2, 2, 2, 3268, 427, 3, 2, 2, 2, 3269, 3270, 7, 9, 2, 2, 3270, 3271, 5, 430, 216, 2, 3271, 3272, 7, 10, 2, 2, 3272, 3275, 3, 2, 2, 2, 3273, 3275, 5, 432, 217, 2, 3274, 3269, 3, 2, 2, 2, 3274, 3273, 3, 2, 2, 2, 3275, 429, 3, 2, 2, 2, 3276, 3278, 11, 2, 2, 2, 3277, 3276, 3, 2, 2, 2, 3278, 3281, 3, 2, 2, 2, 3279, 3280, 3, 2, 2, 2, 3279, 3277, 3, 2, 2, 2, 3280, 431, 3, 2, 2, 2, 3281, 3279, 3, 2, 2, 2, 3282, 3283, 7, 364, 2, 2, 3283, 3284, 5, 384, 193, 2, 3284, 433, 3, 2, 2, 2, 3285, 3300, 7, 365, 2, 2, 3286, 3290, 7, 5, 2, 2, 3287, 3288, 7, 7, 2, 2, 3288, 3290, 7, 5, 2, 2, 3289, 3286, 3, 2, 2, 2, 3289, 3287, 3, 2, 2, 2, 3289, 3290, 3, 2, 2, 2, 3290, 3291, 3, 2, 2, 2, 3291, 3296, 5, 440, 221, 2, 3292, 3293, 7, 5, 2, 2, 3293, 3295, 5, 440, 221, 2, 3294, 3292, 3, 2, 2, 2, 3295, 3298, 3, 2, 2, 2, 3296, 3294, 3, 2, 2, 2, 3296, 3297, 3, 2, 2, 2, 3297, 3300, 3, 2, 2, 2, 3298, 3296, 3, 2, 2, 2, 3299, 3285, 3, 2, 2, 2, 3299, 3289, 3, 2, 2, 2, 3300, 435, 3, 2, 2, 2, 3301, 3302, 7, 145, 2, 2, 3302, 3303, 5, 442, 222, 2, 3303, 437, 3, 2, 2, 2, 3304, 3305, 7, 172, 2, 2, 3305, 3306, 5, 442, 222, 2, 3306, 439, 3, 2, 2, 2, 3307, 3309, 7, 11, 2, 2, 3308, 3307, 3, 2, 2, 2, 3308, 3309, 3, 2, 2, 2, 3309, 3312, 3, 2, 2, 2, 3310, 3313, 7, 19, 2, 2, 3311, 3313, 5, 452, 227, 2, 3312, 3310, 3, 2, 2, 2, 3312, 3311, 3, 2, 2, 2, 3313, 3321, 3, 2, 2, 2, 3314, 3317, 7, 7, 2, 2, 3315, 3318, 7, 19, 2, 2, 3316, 3318, 5, 452, 227, 2, 3317, 3315, 3, 2, 2, 2, 3317, 3316, 3, 2, 2, 2, 3318, 3320, 3, 2, 2, 2, 3319, 3314, 3, 2, 2, 2, 3320, 3323, 3, 2, 2, 2, 3321, 3319, 3, 2, 2, 2, 3321, 3322, 3, 2, 2, 2, 3322, 441, 3, 2, 2, 2, 3323, 3321, 3, 2, 2, 2, 3324, 3327, 7, 282, 2, 2, 3325, 3327, 7, 366, 2, 2, 3326, 3324, 3, 2, 2, 2, 3326, 3325, 3, 2, 2, 2, 3327, 443, 3, 2, 2, 2, 3328, 3330, 9, 48, 2, 2, 3329, 3328, 3, 2, 2, 2, 3329, 3330, 3, 2, 2, 2, 3330, 3331, 3, 2, 2, 2, 3331, 3332, 7, 74, 2, 2, 3332, 445, 3, 2, 2, 2, 3333, 3335, 9, 48, 2, 2, 3334, 3333, 3, 2, 2, 2, 3334, 3335, 3, 2, 2, 2, 3335, 3336, 3, 2, 2, 2, 3336, 3337, 7, 367, 2, 2, 3337, 447, 3, 2, 2, 2, 3338, 3339, 9, 49, 2, 2, 3339, 449, 3, 2, 2, 2, 3340, 3341, 7, 21, 2, 2, 3341, 451, 3, 2, 2, 2, 3342, 3343, 9, 50, 2, 2, 3343, 453, 3, 2, 2, 2, 426, 459, 462, 466, 469, 474, 481, 487, 489, 498, 501, 503, 566, 574, 590, 597, 600, 605, 609, 618, 623, 631, 636, 645, 657, 662, 665, 679, 686, 695, 712, 716, 724, 735, 745, 753, 760, 764, 768, 773, 777, 782, 786, 790, 800, 804, 809, 814, 818, 831, 836, 842, 851, 855, 863, 866, 871, 876, 883, 892, 895, 902, 908, 913, 919, 924, 927, 933, 947, 957, 963, 968, 973, 978, 982, 987, 990, 1000, 1012, 1019, 1022, 1034, 1039, 1044, 1047, 1054, 1066, 1079, 1081, 1086, 1089, 1104, 1110, 1121, 1124, 1134, 1141, 1147, 1155, 1165, 1185, 1191, 1195, 1200, 1204, 1209, 1212, 1217, 1220, 1232, 1239, 1244, 1249, 1253, 1258, 1261, 1271, 1283, 1290, 1298, 1313, 1344, 1346, 1351, 1355, 1360, 1367, 1370, 1373, 1378, 1382, 1384, 1391, 1397, 1404, 1410, 1413, 1418, 1422, 1425, 1432, 1438, 1441, 1451, 1460, 1467, 1474, 1476, 1482, 1485, 1496, 1505, 1511, 1517, 1520, 1525, 1528, 1531, 1534, 1537, 1543, 1553, 1564, 1567, 1574, 1579, 1584, 1588, 1596, 1600, 1605, 1609, 1611, 1616, 1624, 1629, 1635, 1642, 1645, 1652, 1660, 1668, 1671, 1674, 1679, 1688, 1692, 1702, 1721, 1728, 1730, 1734, 1738, 1746, 1757, 1766, 1774, 1782, 1786, 1794, 1812, 1826, 1833, 1837, 1844, 1846, 1850, 1859, 1867, 1876, 1892, 1898, 1902, 1912, 1920, 1929, 1933, 1939, 1944, 1948, 1958, 1964, 1968, 1980, 1987, 2003, 2010, 2020, 2023, 2027, 2034, 2041, 2043, 2047, 2051, 2056, 2059, 2063, 2066, 2077, 2080, 2091, 2097, 2101, 2103, 2107, 2116, 2123, 2127, 2131, 2138, 2142, 2150, 2156, 2160, 2171, 2178, 2191, 2199, 2203, 2213, 2218, 2231, 2242, 2250, 2254, 2258, 2262, 2264, 2269, 2272, 2275, 2278, 2282, 2285, 2288, 2291, 2294, 2301, 2312, 2316, 2319, 2323, 2330, 2334, 2344, 2352, 2358, 2362, 2368, 2377, 2380, 2385, 2388, 2398, 2403, 2412, 2417, 2421, 2430, 2434, 2448, 2461, 2466, 2470, 2476, 2487, 2489, 2496, 2499, 2506, 2511, 2517, 2520, 2523, 2538, 2545, 2548, 2551, 2555, 2560, 2566, 2570, 2581, 2585, 2588, 2592, 2596, 2600, 2604, 2610, 2616, 2623, 2631, 2637, 2642, 2653, 2662, 2666, 2675, 2679, 2689, 2694, 2716, 2719, 2738, 2754, 2756, 2767, 2782, 2794, 2798, 2809, 2813, 2825, 2829, 2840, 2845, 2850, 2854, 2858, 2863, 2867, 2871, 2894, 2896, 2914, 2916, 2924, 2929, 2934, 2939, 2952, 2957, 2962, 2967, 2972, 2977, 2982, 2987, 2989, 2996, 2999, 3010, 3020, 3028, 3037, 3043, 3060, 3063, 3079, 3082, 3098, 3101, 3117, 3120, 3136, 3139, 3155, 3158, 3172, 3187, 3191, 3207, 3213, 3218, 3227, 3234, 3236, 3242, 3246, 3252, 3267, 3274, 3279, 3289, 3296, 3299, 3308, 3312, 3317, 3321, 3326, 3329, 3334] \ No newline at end of file +[3, 24715, 42794, 33075, 47597, 16764, 15335, 30598, 22884, 3, 378, 3339, 4, 2, 9, 2, 4, 3, 9, 3, 4, 4, 9, 4, 4, 5, 9, 5, 4, 6, 9, 6, 4, 7, 9, 7, 4, 8, 9, 8, 4, 9, 9, 9, 4, 10, 9, 10, 4, 11, 9, 11, 4, 12, 9, 12, 4, 13, 9, 13, 4, 14, 9, 14, 4, 15, 9, 15, 4, 16, 9, 16, 4, 17, 9, 17, 4, 18, 9, 18, 4, 19, 9, 19, 4, 20, 9, 20, 4, 21, 9, 21, 4, 22, 9, 22, 4, 23, 9, 23, 4, 24, 9, 24, 4, 25, 9, 25, 4, 26, 9, 26, 4, 27, 9, 27, 4, 28, 9, 28, 4, 29, 9, 29, 4, 30, 9, 30, 4, 31, 9, 31, 4, 32, 9, 32, 4, 33, 9, 33, 4, 34, 9, 34, 4, 35, 9, 35, 4, 36, 9, 36, 4, 37, 9, 37, 4, 38, 9, 38, 4, 39, 9, 39, 4, 40, 9, 40, 4, 41, 9, 41, 4, 42, 9, 42, 4, 43, 9, 43, 4, 44, 9, 44, 4, 45, 9, 45, 4, 46, 9, 46, 4, 47, 9, 47, 4, 48, 9, 48, 4, 49, 9, 49, 4, 50, 9, 50, 4, 51, 9, 51, 4, 52, 9, 52, 4, 53, 9, 53, 4, 54, 9, 54, 4, 55, 9, 55, 4, 56, 9, 56, 4, 57, 9, 57, 4, 58, 9, 58, 4, 59, 9, 59, 4, 60, 9, 60, 4, 61, 9, 61, 4, 62, 9, 62, 4, 63, 9, 63, 4, 64, 9, 64, 4, 65, 9, 65, 4, 66, 9, 66, 4, 67, 9, 67, 4, 68, 9, 68, 4, 69, 9, 69, 4, 70, 9, 70, 4, 71, 9, 71, 4, 72, 9, 72, 4, 73, 9, 73, 4, 74, 9, 74, 4, 75, 9, 75, 4, 76, 9, 76, 4, 77, 9, 77, 4, 78, 9, 78, 4, 79, 9, 79, 4, 80, 9, 80, 4, 81, 9, 81, 4, 82, 9, 82, 4, 83, 9, 83, 4, 84, 9, 84, 4, 85, 9, 85, 4, 86, 9, 86, 4, 87, 9, 87, 4, 88, 9, 88, 4, 89, 9, 89, 4, 90, 9, 90, 4, 91, 9, 91, 4, 92, 9, 92, 4, 93, 9, 93, 4, 94, 9, 94, 4, 95, 9, 95, 4, 96, 9, 96, 4, 97, 9, 97, 4, 98, 9, 98, 4, 99, 9, 99, 4, 100, 9, 100, 4, 101, 9, 101, 4, 102, 9, 102, 4, 103, 9, 103, 4, 104, 9, 104, 4, 105, 9, 105, 4, 106, 9, 106, 4, 107, 9, 107, 4, 108, 9, 108, 4, 109, 9, 109, 4, 110, 9, 110, 4, 111, 9, 111, 4, 112, 9, 112, 4, 113, 9, 113, 4, 114, 9, 114, 4, 115, 9, 115, 4, 116, 9, 116, 4, 117, 9, 117, 4, 118, 9, 118, 4, 119, 9, 119, 4, 120, 9, 120, 4, 121, 9, 121, 4, 122, 9, 122, 4, 123, 9, 123, 4, 124, 9, 124, 4, 125, 9, 125, 4, 126, 9, 126, 4, 127, 9, 127, 4, 128, 9, 128, 4, 129, 9, 129, 4, 130, 9, 130, 4, 131, 9, 131, 4, 132, 9, 132, 4, 133, 9, 133, 4, 134, 9, 134, 4, 135, 9, 135, 4, 136, 9, 136, 4, 137, 9, 137, 4, 138, 9, 138, 4, 139, 9, 139, 4, 140, 9, 140, 4, 141, 9, 141, 4, 142, 9, 142, 4, 143, 9, 143, 4, 144, 9, 144, 4, 145, 9, 145, 4, 146, 9, 146, 4, 147, 9, 147, 4, 148, 9, 148, 4, 149, 9, 149, 4, 150, 9, 150, 4, 151, 9, 151, 4, 152, 9, 152, 4, 153, 9, 153, 4, 154, 9, 154, 4, 155, 9, 155, 4, 156, 9, 156, 4, 157, 9, 157, 4, 158, 9, 158, 4, 159, 9, 159, 4, 160, 9, 160, 4, 161, 9, 161, 4, 162, 9, 162, 4, 163, 9, 163, 4, 164, 9, 164, 4, 165, 9, 165, 4, 166, 9, 166, 4, 167, 9, 167, 4, 168, 9, 168, 4, 169, 9, 169, 4, 170, 9, 170, 4, 171, 9, 171, 4, 172, 9, 172, 4, 173, 9, 173, 4, 174, 9, 174, 4, 175, 9, 175, 4, 176, 9, 176, 4, 177, 9, 177, 4, 178, 9, 178, 4, 179, 9, 179, 4, 180, 9, 180, 4, 181, 9, 181, 4, 182, 9, 182, 4, 183, 9, 183, 4, 184, 9, 184, 4, 185, 9, 185, 4, 186, 9, 186, 4, 187, 9, 187, 4, 188, 9, 188, 4, 189, 9, 189, 4, 190, 9, 190, 4, 191, 9, 191, 4, 192, 9, 192, 4, 193, 9, 193, 4, 194, 9, 194, 4, 195, 9, 195, 4, 196, 9, 196, 4, 197, 9, 197, 4, 198, 9, 198, 4, 199, 9, 199, 4, 200, 9, 200, 4, 201, 9, 201, 4, 202, 9, 202, 4, 203, 9, 203, 4, 204, 9, 204, 4, 205, 9, 205, 4, 206, 9, 206, 4, 207, 9, 207, 4, 208, 9, 208, 4, 209, 9, 209, 4, 210, 9, 210, 4, 211, 9, 211, 4, 212, 9, 212, 4, 213, 9, 213, 4, 214, 9, 214, 4, 215, 9, 215, 4, 216, 9, 216, 4, 217, 9, 217, 4, 218, 9, 218, 4, 219, 9, 219, 4, 220, 9, 220, 4, 221, 9, 221, 4, 222, 9, 222, 4, 223, 9, 223, 4, 224, 9, 224, 4, 225, 9, 225, 4, 226, 9, 226, 4, 227, 9, 227, 3, 2, 3, 2, 3, 2, 3, 3, 3, 3, 5, 3, 460, 10, 3, 3, 3, 5, 3, 463, 10, 3, 6, 3, 465, 10, 3, 13, 3, 14, 3, 466, 3, 4, 5, 4, 470, 10, 4, 3, 4, 3, 4, 3, 4, 5, 4, 475, 10, 4, 3, 4, 3, 4, 3, 5, 3, 5, 3, 5, 5, 5, 482, 10, 5, 3, 5, 3, 5, 3, 5, 3, 5, 5, 5, 488, 10, 5, 5, 5, 490, 10, 5, 3, 6, 3, 6, 3, 6, 3, 7, 3, 7, 6, 7, 497, 10, 7, 13, 7, 14, 7, 498, 3, 7, 5, 7, 502, 10, 7, 5, 7, 504, 10, 7, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 5, 8, 567, 10, 8, 3, 9, 3, 9, 3, 10, 3, 10, 6, 10, 573, 10, 10, 13, 10, 14, 10, 574, 3, 11, 3, 11, 3, 11, 3, 11, 3, 11, 3, 11, 3, 12, 3, 12, 3, 13, 3, 13, 3, 13, 3, 14, 3, 14, 3, 14, 5, 14, 591, 10, 14, 3, 14, 3, 14, 3, 14, 7, 14, 596, 10, 14, 12, 14, 14, 14, 599, 11, 14, 5, 14, 601, 10, 14, 3, 15, 3, 15, 3, 15, 5, 15, 606, 10, 15, 3, 16, 3, 16, 5, 16, 610, 10, 16, 3, 16, 3, 16, 3, 16, 3, 16, 3, 16, 3, 16, 3, 16, 5, 16, 619, 10, 16, 3, 16, 3, 16, 3, 16, 5, 16, 624, 10, 16, 3, 17, 3, 17, 3, 17, 3, 17, 7, 17, 630, 10, 17, 12, 17, 14, 17, 633, 11, 17, 3, 17, 3, 17, 5, 17, 637, 10, 17, 3, 17, 3, 17, 3, 17, 3, 17, 3, 17, 7, 17, 644, 10, 17, 12, 17, 14, 17, 647, 11, 17, 3, 17, 3, 17, 3, 18, 3, 18, 3, 18, 3, 18, 3, 18, 7, 18, 656, 10, 18, 12, 18, 14, 18, 659, 11, 18, 3, 18, 3, 18, 5, 18, 663, 10, 18, 3, 18, 5, 18, 666, 10, 18, 3, 18, 3, 18, 3, 18, 3, 18, 3, 18, 3, 19, 3, 19, 3, 19, 3, 19, 3, 19, 3, 19, 3, 19, 5, 19, 680, 10, 19, 3, 19, 3, 19, 3, 20, 3, 20, 3, 20, 5, 20, 687, 10, 20, 3, 20, 3, 20, 3, 20, 3, 20, 3, 20, 7, 20, 694, 10, 20, 12, 20, 14, 20, 697, 11, 20, 3, 20, 3, 20, 3, 20, 3, 20, 3, 20, 3, 21, 3, 21, 3, 21, 3, 22, 3, 22, 3, 23, 3, 23, 3, 23, 3, 23, 5, 23, 713, 10, 23, 3, 23, 3, 23, 5, 23, 717, 10, 23, 3, 24, 3, 24, 3, 24, 3, 24, 7, 24, 723, 10, 24, 12, 24, 14, 24, 726, 11, 24, 3, 25, 3, 25, 3, 25, 3, 25, 3, 25, 3, 25, 7, 25, 734, 10, 25, 12, 25, 14, 25, 737, 11, 25, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 7, 26, 744, 10, 26, 12, 26, 14, 26, 747, 11, 26, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 5, 27, 754, 10, 27, 3, 28, 3, 28, 3, 28, 7, 28, 759, 10, 28, 12, 28, 14, 28, 762, 11, 28, 3, 28, 5, 28, 765, 10, 28, 3, 28, 3, 28, 5, 28, 769, 10, 28, 3, 28, 7, 28, 772, 10, 28, 12, 28, 14, 28, 775, 11, 28, 3, 28, 5, 28, 778, 10, 28, 3, 28, 3, 28, 3, 28, 5, 28, 783, 10, 28, 3, 28, 3, 28, 5, 28, 787, 10, 28, 3, 28, 3, 28, 5, 28, 791, 10, 28, 3, 29, 3, 29, 3, 29, 3, 30, 3, 30, 3, 30, 3, 30, 3, 30, 5, 30, 801, 10, 30, 3, 30, 3, 30, 5, 30, 805, 10, 30, 3, 30, 3, 30, 3, 30, 5, 30, 810, 10, 30, 3, 31, 3, 31, 3, 31, 5, 31, 815, 10, 31, 3, 31, 3, 31, 5, 31, 819, 10, 31, 3, 32, 3, 32, 3, 32, 3, 33, 3, 33, 3, 33, 3, 33, 3, 33, 3, 33, 3, 33, 3, 33, 5, 33, 832, 10, 33, 3, 33, 3, 33, 3, 34, 5, 34, 837, 10, 34, 3, 34, 3, 34, 3, 34, 3, 34, 5, 34, 843, 10, 34, 3, 34, 3, 34, 3, 35, 3, 35, 3, 35, 3, 35, 3, 35, 5, 35, 852, 10, 35, 3, 35, 3, 35, 5, 35, 856, 10, 35, 3, 35, 3, 35, 3, 36, 3, 36, 3, 36, 3, 36, 5, 36, 864, 10, 36, 3, 36, 5, 36, 867, 10, 36, 3, 36, 3, 36, 3, 36, 5, 36, 872, 10, 36, 3, 36, 3, 36, 3, 37, 5, 37, 877, 10, 37, 3, 37, 3, 37, 3, 37, 3, 37, 3, 37, 5, 37, 884, 10, 37, 3, 37, 3, 37, 3, 37, 3, 37, 3, 37, 5, 37, 891, 10, 37, 3, 37, 5, 37, 894, 10, 37, 3, 38, 3, 38, 3, 38, 7, 38, 899, 10, 38, 12, 38, 14, 38, 902, 11, 38, 3, 39, 3, 39, 3, 39, 5, 39, 907, 10, 39, 3, 39, 7, 39, 910, 10, 39, 12, 39, 14, 39, 913, 11, 39, 3, 39, 7, 39, 916, 10, 39, 12, 39, 14, 39, 919, 11, 39, 3, 39, 3, 39, 5, 39, 923, 10, 39, 3, 39, 5, 39, 926, 10, 39, 3, 40, 3, 40, 3, 41, 3, 41, 5, 41, 932, 10, 41, 3, 41, 3, 41, 3, 41, 3, 41, 3, 41, 3, 41, 3, 41, 3, 41, 3, 41, 3, 41, 7, 41, 944, 10, 41, 12, 41, 14, 41, 947, 11, 41, 3, 41, 3, 41, 3, 41, 3, 41, 3, 41, 7, 41, 954, 10, 41, 12, 41, 14, 41, 957, 11, 41, 3, 41, 3, 41, 3, 41, 5, 41, 962, 10, 41, 3, 42, 3, 42, 3, 42, 5, 42, 967, 10, 42, 3, 42, 3, 42, 3, 42, 5, 42, 972, 10, 42, 3, 42, 3, 42, 3, 42, 5, 42, 977, 10, 42, 7, 42, 979, 10, 42, 12, 42, 14, 42, 982, 11, 42, 3, 42, 3, 42, 5, 42, 986, 10, 42, 3, 42, 5, 42, 989, 10, 42, 3, 42, 3, 42, 3, 42, 3, 42, 3, 42, 3, 42, 7, 42, 997, 10, 42, 12, 42, 14, 42, 1000, 11, 42, 3, 42, 3, 42, 3, 42, 3, 42, 3, 42, 3, 42, 3, 42, 7, 42, 1009, 10, 42, 12, 42, 14, 42, 1012, 11, 42, 3, 42, 3, 42, 7, 42, 1016, 10, 42, 12, 42, 14, 42, 1019, 11, 42, 5, 42, 1021, 10, 42, 3, 43, 3, 43, 3, 43, 3, 43, 3, 43, 3, 43, 3, 43, 3, 43, 3, 43, 3, 43, 5, 43, 1033, 10, 43, 3, 44, 6, 44, 1036, 10, 44, 13, 44, 14, 44, 1037, 3, 45, 3, 45, 3, 45, 5, 45, 1043, 10, 45, 3, 46, 5, 46, 1046, 10, 46, 3, 46, 3, 46, 3, 47, 6, 47, 1051, 10, 47, 13, 47, 14, 47, 1052, 3, 48, 3, 48, 3, 48, 3, 48, 3, 48, 3, 48, 3, 48, 3, 48, 3, 48, 3, 48, 5, 48, 1065, 10, 48, 3, 49, 3, 49, 3, 49, 3, 49, 3, 49, 3, 49, 3, 49, 3, 49, 3, 49, 3, 49, 3, 49, 6, 49, 1078, 10, 49, 13, 49, 14, 49, 1079, 3, 49, 3, 49, 3, 49, 5, 49, 1085, 10, 49, 3, 50, 5, 50, 1088, 10, 50, 3, 50, 3, 50, 3, 50, 3, 50, 3, 50, 3, 50, 3, 50, 3, 50, 3, 50, 3, 50, 3, 50, 7, 50, 1101, 10, 50, 12, 50, 14, 50, 1104, 11, 50, 3, 50, 3, 50, 3, 50, 5, 50, 1109, 10, 50, 3, 50, 3, 50, 3, 50, 3, 50, 3, 50, 3, 50, 3, 50, 3, 50, 3, 50, 5, 50, 1120, 10, 50, 3, 51, 5, 51, 1123, 10, 51, 3, 51, 3, 51, 3, 51, 3, 51, 3, 51, 3, 51, 7, 51, 1131, 10, 51, 12, 51, 14, 51, 1134, 11, 51, 3, 51, 3, 51, 3, 51, 3, 51, 5, 51, 1140, 10, 51, 3, 52, 3, 52, 3, 52, 3, 52, 5, 52, 1146, 10, 52, 3, 53, 3, 53, 3, 53, 3, 53, 7, 53, 1152, 10, 53, 12, 53, 14, 53, 1155, 11, 53, 3, 54, 3, 54, 3, 54, 3, 54, 3, 54, 3, 54, 3, 54, 5, 54, 1164, 10, 54, 3, 54, 3, 54, 3, 54, 3, 54, 3, 54, 3, 54, 3, 54, 3, 54, 3, 54, 3, 54, 3, 54, 3, 54, 3, 54, 3, 54, 3, 54, 3, 54, 3, 54, 3, 54, 5, 54, 1184, 10, 54, 3, 55, 3, 55, 3, 55, 3, 55, 5, 55, 1190, 10, 55, 3, 56, 3, 56, 5, 56, 1194, 10, 56, 3, 56, 3, 56, 3, 56, 5, 56, 1199, 10, 56, 3, 56, 3, 56, 5, 56, 1203, 10, 56, 3, 56, 3, 56, 3, 56, 5, 56, 1208, 10, 56, 3, 56, 5, 56, 1211, 10, 56, 3, 56, 3, 56, 3, 56, 5, 56, 1216, 10, 56, 3, 56, 5, 56, 1219, 10, 56, 3, 57, 3, 57, 3, 57, 3, 57, 3, 57, 3, 58, 3, 58, 3, 59, 3, 59, 3, 59, 5, 59, 1231, 10, 59, 3, 59, 3, 59, 3, 60, 3, 60, 3, 60, 5, 60, 1238, 10, 60, 3, 60, 3, 60, 3, 60, 5, 60, 1243, 10, 60, 3, 60, 3, 60, 3, 60, 5, 60, 1248, 10, 60, 7, 60, 1250, 10, 60, 12, 60, 14, 60, 1253, 11, 60, 3, 60, 3, 60, 5, 60, 1257, 10, 60, 3, 60, 5, 60, 1260, 10, 60, 3, 60, 3, 60, 3, 60, 3, 60, 3, 60, 3, 60, 7, 60, 1268, 10, 60, 12, 60, 14, 60, 1271, 11, 60, 3, 60, 3, 60, 3, 60, 3, 60, 3, 60, 3, 60, 3, 60, 7, 60, 1280, 10, 60, 12, 60, 14, 60, 1283, 11, 60, 3, 60, 3, 60, 7, 60, 1287, 10, 60, 12, 60, 14, 60, 1290, 11, 60, 3, 60, 3, 60, 3, 60, 3, 60, 3, 60, 5, 60, 1297, 10, 60, 3, 61, 3, 61, 3, 61, 3, 61, 3, 61, 3, 61, 3, 61, 3, 61, 3, 61, 3, 61, 3, 61, 3, 61, 5, 61, 1311, 10, 61, 3, 61, 3, 61, 3, 61, 3, 61, 3, 61, 3, 61, 3, 61, 3, 61, 3, 61, 3, 61, 3, 61, 3, 61, 3, 61, 3, 61, 3, 61, 3, 61, 3, 61, 3, 61, 3, 61, 3, 61, 3, 61, 3, 61, 3, 61, 3, 61, 3, 61, 3, 61, 3, 61, 3, 61, 3, 61, 5, 61, 1342, 10, 61, 5, 61, 1344, 10, 61, 3, 62, 3, 62, 3, 62, 5, 62, 1349, 10, 62, 3, 62, 3, 62, 5, 62, 1353, 10, 62, 3, 62, 3, 62, 3, 63, 5, 63, 1358, 10, 63, 3, 63, 3, 63, 3, 63, 3, 63, 3, 63, 5, 63, 1365, 10, 63, 3, 63, 5, 63, 1368, 10, 63, 3, 64, 5, 64, 1371, 10, 64, 3, 64, 3, 64, 3, 64, 5, 64, 1376, 10, 64, 3, 64, 3, 64, 5, 64, 1380, 10, 64, 5, 64, 1382, 10, 64, 3, 65, 3, 65, 3, 65, 3, 65, 3, 65, 5, 65, 1389, 10, 65, 3, 65, 3, 65, 7, 65, 1393, 10, 65, 12, 65, 14, 65, 1396, 11, 65, 3, 66, 3, 66, 3, 66, 3, 66, 5, 66, 1402, 10, 66, 3, 67, 3, 67, 3, 67, 3, 67, 5, 67, 1408, 10, 67, 3, 67, 5, 67, 1411, 10, 67, 3, 67, 3, 67, 3, 67, 5, 67, 1416, 10, 67, 3, 67, 3, 67, 5, 67, 1420, 10, 67, 3, 67, 5, 67, 1423, 10, 67, 3, 67, 3, 67, 3, 68, 3, 68, 3, 68, 5, 68, 1430, 10, 68, 3, 69, 3, 69, 3, 69, 3, 69, 5, 69, 1436, 10, 69, 3, 69, 5, 69, 1439, 10, 69, 3, 69, 3, 69, 3, 69, 3, 69, 3, 69, 3, 69, 3, 69, 3, 69, 5, 69, 1449, 10, 69, 3, 70, 3, 70, 3, 70, 3, 70, 3, 70, 7, 70, 1456, 10, 70, 12, 70, 14, 70, 1459, 11, 70, 3, 71, 3, 71, 3, 71, 3, 71, 5, 71, 1465, 10, 71, 3, 71, 3, 71, 3, 71, 3, 71, 3, 71, 5, 71, 1472, 10, 71, 5, 71, 1474, 10, 71, 3, 72, 3, 72, 3, 72, 3, 72, 5, 72, 1480, 10, 72, 3, 72, 5, 72, 1483, 10, 72, 3, 72, 3, 72, 3, 72, 3, 72, 3, 72, 3, 72, 3, 72, 3, 72, 3, 72, 5, 72, 1494, 10, 72, 3, 73, 3, 73, 3, 73, 3, 73, 3, 73, 7, 73, 1501, 10, 73, 12, 73, 14, 73, 1504, 11, 73, 3, 74, 3, 74, 3, 74, 5, 74, 1509, 10, 74, 3, 75, 3, 75, 3, 75, 3, 75, 5, 75, 1515, 10, 75, 3, 75, 5, 75, 1518, 10, 75, 3, 75, 3, 75, 3, 75, 5, 75, 1523, 10, 75, 3, 75, 5, 75, 1526, 10, 75, 3, 75, 5, 75, 1529, 10, 75, 3, 75, 5, 75, 1532, 10, 75, 3, 75, 5, 75, 1535, 10, 75, 3, 75, 3, 75, 3, 75, 3, 75, 5, 75, 1541, 10, 75, 3, 76, 3, 76, 3, 76, 3, 76, 3, 76, 3, 76, 7, 76, 1549, 10, 76, 12, 76, 14, 76, 1552, 11, 76, 3, 76, 3, 76, 3, 76, 3, 76, 3, 76, 3, 76, 7, 76, 1560, 10, 76, 12, 76, 14, 76, 1563, 11, 76, 5, 76, 1565, 10, 76, 3, 77, 3, 77, 3, 77, 3, 77, 3, 77, 5, 77, 1572, 10, 77, 3, 77, 3, 77, 3, 77, 5, 77, 1577, 10, 77, 3, 77, 7, 77, 1580, 10, 77, 12, 77, 14, 77, 1583, 11, 77, 3, 77, 5, 77, 1586, 10, 77, 3, 77, 3, 77, 3, 77, 3, 77, 3, 77, 3, 77, 5, 77, 1594, 10, 77, 3, 77, 3, 77, 5, 77, 1598, 10, 77, 3, 77, 7, 77, 1601, 10, 77, 12, 77, 14, 77, 1604, 11, 77, 3, 77, 5, 77, 1607, 10, 77, 5, 77, 1609, 10, 77, 3, 78, 6, 78, 1612, 10, 78, 13, 78, 14, 78, 1613, 3, 79, 3, 79, 3, 79, 3, 79, 3, 79, 3, 79, 5, 79, 1622, 10, 79, 3, 79, 3, 79, 3, 79, 5, 79, 1627, 10, 79, 3, 80, 3, 80, 3, 80, 3, 80, 5, 80, 1633, 10, 80, 3, 80, 3, 80, 3, 80, 3, 80, 3, 80, 5, 80, 1640, 10, 80, 3, 80, 5, 80, 1643, 10, 80, 3, 81, 3, 81, 3, 81, 3, 82, 3, 82, 5, 82, 1650, 10, 82, 3, 82, 3, 82, 3, 82, 3, 82, 3, 82, 3, 82, 5, 82, 1658, 10, 82, 3, 82, 3, 82, 3, 82, 3, 82, 7, 82, 1664, 10, 82, 12, 82, 14, 82, 1667, 11, 82, 5, 82, 1669, 10, 82, 3, 82, 5, 82, 1672, 10, 82, 3, 83, 3, 83, 3, 83, 5, 83, 1677, 10, 83, 3, 84, 3, 84, 3, 84, 3, 84, 3, 84, 7, 84, 1684, 10, 84, 12, 84, 14, 84, 1687, 11, 84, 3, 84, 5, 84, 1690, 10, 84, 3, 84, 3, 84, 3, 84, 3, 85, 3, 85, 3, 85, 3, 85, 3, 85, 5, 85, 1700, 10, 85, 3, 86, 3, 86, 3, 86, 3, 86, 3, 86, 3, 86, 3, 87, 3, 87, 3, 87, 3, 87, 3, 87, 3, 88, 3, 88, 3, 88, 3, 89, 3, 89, 3, 89, 5, 89, 1719, 10, 89, 3, 90, 3, 90, 3, 90, 3, 90, 3, 90, 5, 90, 1726, 10, 90, 5, 90, 1728, 10, 90, 3, 90, 3, 90, 5, 90, 1732, 10, 90, 3, 90, 3, 90, 5, 90, 1736, 10, 90, 3, 91, 3, 91, 3, 91, 3, 91, 7, 91, 1742, 10, 91, 12, 91, 14, 91, 1745, 11, 91, 3, 91, 3, 91, 3, 92, 3, 92, 3, 92, 3, 92, 7, 92, 1753, 10, 92, 12, 92, 14, 92, 1756, 11, 92, 3, 93, 3, 93, 3, 93, 3, 93, 7, 93, 1762, 10, 93, 12, 93, 14, 93, 1765, 11, 93, 3, 93, 3, 93, 3, 94, 3, 94, 3, 94, 5, 94, 1772, 10, 94, 3, 94, 3, 94, 3, 94, 3, 94, 3, 95, 3, 95, 5, 95, 1780, 10, 95, 3, 95, 3, 95, 5, 95, 1784, 10, 95, 3, 96, 3, 96, 3, 96, 3, 96, 3, 97, 3, 97, 5, 97, 1792, 10, 97, 3, 98, 3, 98, 3, 98, 3, 98, 3, 98, 3, 98, 3, 99, 3, 99, 3, 99, 3, 99, 3, 100, 3, 100, 3, 100, 3, 100, 7, 100, 1808, 10, 100, 12, 100, 14, 100, 1811, 11, 100, 3, 100, 3, 100, 3, 100, 3, 100, 3, 101, 3, 101, 3, 101, 3, 101, 3, 101, 3, 102, 3, 102, 5, 102, 1824, 10, 102, 3, 103, 3, 103, 3, 103, 3, 103, 3, 103, 5, 103, 1831, 10, 103, 3, 103, 3, 103, 5, 103, 1835, 10, 103, 3, 104, 3, 104, 3, 104, 3, 104, 3, 104, 5, 104, 1842, 10, 104, 5, 104, 1844, 10, 104, 3, 105, 3, 105, 5, 105, 1848, 10, 105, 3, 105, 3, 105, 3, 105, 3, 105, 3, 105, 7, 105, 1855, 10, 105, 12, 105, 14, 105, 1858, 11, 105, 3, 106, 3, 106, 3, 106, 3, 106, 3, 106, 5, 106, 1865, 10, 106, 3, 107, 3, 107, 3, 107, 3, 107, 3, 107, 7, 107, 1872, 10, 107, 12, 107, 14, 107, 1875, 11, 107, 3, 107, 3, 107, 3, 108, 3, 108, 3, 108, 3, 109, 3, 109, 3, 109, 3, 109, 3, 109, 3, 109, 3, 110, 3, 110, 5, 110, 1890, 10, 110, 3, 110, 3, 110, 3, 110, 3, 110, 5, 110, 1896, 10, 110, 3, 110, 3, 110, 5, 110, 1900, 10, 110, 3, 111, 3, 111, 3, 111, 3, 111, 3, 111, 3, 111, 7, 111, 1908, 10, 111, 12, 111, 14, 111, 1911, 11, 111, 3, 111, 3, 111, 3, 111, 7, 111, 1916, 10, 111, 12, 111, 14, 111, 1919, 11, 111, 3, 112, 3, 112, 3, 112, 3, 112, 3, 112, 3, 112, 5, 112, 1927, 10, 112, 3, 112, 3, 112, 5, 112, 1931, 10, 112, 3, 112, 3, 112, 7, 112, 1935, 10, 112, 12, 112, 14, 112, 1938, 11, 112, 3, 113, 3, 113, 5, 113, 1942, 10, 113, 3, 114, 3, 114, 5, 114, 1946, 10, 114, 3, 115, 3, 115, 3, 115, 3, 115, 3, 115, 3, 115, 3, 115, 3, 115, 5, 115, 1956, 10, 115, 3, 116, 3, 116, 3, 117, 3, 117, 5, 117, 1962, 10, 117, 3, 118, 3, 118, 5, 118, 1966, 10, 118, 3, 118, 3, 118, 3, 118, 3, 118, 3, 118, 3, 118, 3, 118, 3, 118, 7, 118, 1976, 10, 118, 12, 118, 14, 118, 1979, 11, 118, 3, 118, 3, 118, 3, 119, 3, 119, 5, 119, 1985, 10, 119, 3, 120, 3, 120, 3, 121, 3, 121, 3, 121, 3, 121, 3, 121, 3, 121, 3, 121, 3, 121, 3, 121, 3, 121, 7, 121, 1999, 10, 121, 12, 121, 14, 121, 2002, 11, 121, 3, 121, 3, 121, 7, 121, 2006, 10, 121, 12, 121, 14, 121, 2009, 11, 121, 3, 122, 3, 122, 3, 122, 3, 122, 3, 122, 3, 122, 3, 122, 5, 122, 2018, 10, 122, 3, 123, 5, 123, 2021, 10, 123, 3, 123, 3, 123, 5, 123, 2025, 10, 123, 3, 124, 3, 124, 3, 125, 3, 125, 3, 125, 5, 125, 2032, 10, 125, 3, 125, 3, 125, 3, 125, 3, 125, 3, 125, 5, 125, 2039, 10, 125, 5, 125, 2041, 10, 125, 3, 126, 3, 126, 5, 126, 2045, 10, 126, 3, 127, 3, 127, 5, 127, 2049, 10, 127, 3, 128, 3, 128, 3, 128, 5, 128, 2054, 10, 128, 3, 129, 5, 129, 2057, 10, 129, 3, 129, 3, 129, 5, 129, 2061, 10, 129, 3, 129, 5, 129, 2064, 10, 129, 3, 129, 3, 129, 3, 130, 3, 130, 3, 130, 3, 131, 3, 131, 3, 131, 3, 131, 5, 131, 2075, 10, 131, 3, 131, 5, 131, 2078, 10, 131, 3, 131, 3, 131, 3, 131, 3, 132, 3, 132, 3, 132, 3, 133, 3, 133, 3, 133, 5, 133, 2089, 10, 133, 3, 133, 3, 133, 3, 133, 3, 133, 5, 133, 2095, 10, 133, 3, 133, 3, 133, 5, 133, 2099, 10, 133, 5, 133, 2101, 10, 133, 3, 134, 3, 134, 5, 134, 2105, 10, 134, 3, 134, 3, 134, 3, 135, 3, 135, 3, 135, 3, 136, 3, 136, 5, 136, 2114, 10, 136, 3, 136, 3, 136, 3, 136, 7, 136, 2119, 10, 136, 12, 136, 14, 136, 2122, 11, 136, 3, 136, 5, 136, 2125, 10, 136, 3, 136, 3, 136, 5, 136, 2129, 10, 136, 3, 136, 3, 136, 3, 136, 7, 136, 2134, 10, 136, 12, 136, 14, 136, 2137, 11, 136, 3, 136, 5, 136, 2140, 10, 136, 3, 137, 3, 137, 3, 137, 3, 137, 3, 137, 3, 137, 5, 137, 2148, 10, 137, 3, 138, 3, 138, 3, 138, 3, 138, 5, 138, 2154, 10, 138, 3, 138, 3, 138, 5, 138, 2158, 10, 138, 3, 138, 3, 138, 3, 138, 3, 138, 3, 138, 3, 139, 3, 139, 3, 139, 3, 139, 5, 139, 2169, 10, 139, 3, 139, 3, 139, 3, 139, 3, 139, 3, 139, 5, 139, 2176, 10, 139, 3, 139, 3, 139, 3, 139, 3, 139, 3, 139, 3, 140, 3, 140, 3, 140, 3, 140, 3, 140, 3, 140, 5, 140, 2189, 10, 140, 3, 141, 3, 141, 3, 141, 3, 141, 7, 141, 2195, 10, 141, 12, 141, 14, 141, 2198, 11, 141, 3, 142, 5, 142, 2201, 10, 142, 3, 142, 3, 142, 3, 143, 3, 143, 3, 143, 3, 143, 7, 143, 2209, 10, 143, 12, 143, 14, 143, 2212, 11, 143, 3, 144, 3, 144, 5, 144, 2216, 10, 144, 3, 144, 3, 144, 3, 144, 3, 144, 3, 144, 3, 145, 3, 145, 3, 145, 3, 145, 7, 145, 2227, 10, 145, 12, 145, 14, 145, 2230, 11, 145, 3, 145, 3, 145, 3, 146, 3, 146, 3, 146, 3, 146, 7, 146, 2238, 10, 146, 12, 146, 14, 146, 2241, 11, 146, 3, 147, 3, 147, 3, 147, 3, 147, 3, 147, 5, 147, 2248, 10, 147, 3, 148, 3, 148, 5, 148, 2252, 10, 148, 3, 148, 3, 148, 5, 148, 2256, 10, 148, 3, 148, 3, 148, 5, 148, 2260, 10, 148, 5, 148, 2262, 10, 148, 3, 149, 3, 149, 3, 149, 5, 149, 2267, 10, 149, 3, 149, 5, 149, 2270, 10, 149, 3, 149, 5, 149, 2273, 10, 149, 3, 149, 5, 149, 2276, 10, 149, 3, 149, 3, 149, 5, 149, 2280, 10, 149, 3, 149, 5, 149, 2283, 10, 149, 3, 149, 5, 149, 2286, 10, 149, 3, 150, 5, 150, 2289, 10, 150, 3, 150, 5, 150, 2292, 10, 150, 3, 150, 3, 150, 3, 150, 7, 150, 2297, 10, 150, 12, 150, 14, 150, 2300, 11, 150, 3, 151, 3, 151, 3, 152, 3, 152, 3, 152, 3, 153, 3, 153, 3, 153, 5, 153, 2310, 10, 153, 3, 153, 3, 153, 5, 153, 2314, 10, 153, 3, 153, 5, 153, 2317, 10, 153, 3, 154, 3, 154, 5, 154, 2321, 10, 154, 3, 154, 3, 154, 3, 154, 3, 154, 3, 154, 5, 154, 2328, 10, 154, 3, 155, 3, 155, 5, 155, 2332, 10, 155, 3, 155, 3, 155, 3, 156, 3, 156, 3, 156, 3, 156, 7, 156, 2340, 10, 156, 12, 156, 14, 156, 2343, 11, 156, 3, 157, 3, 157, 3, 157, 7, 157, 2348, 10, 157, 12, 157, 14, 157, 2351, 11, 157, 3, 158, 3, 158, 3, 158, 5, 158, 2356, 10, 158, 3, 159, 3, 159, 5, 159, 2360, 10, 159, 3, 160, 3, 160, 3, 160, 3, 160, 5, 160, 2366, 10, 160, 3, 161, 3, 161, 3, 161, 3, 161, 3, 161, 3, 161, 3, 161, 5, 161, 2375, 10, 161, 3, 162, 5, 162, 2378, 10, 162, 3, 162, 3, 162, 3, 162, 5, 162, 2383, 10, 162, 3, 162, 5, 162, 2386, 10, 162, 3, 163, 3, 163, 3, 163, 3, 163, 3, 163, 3, 163, 7, 163, 2394, 10, 163, 12, 163, 14, 163, 2397, 11, 163, 3, 163, 3, 163, 5, 163, 2401, 10, 163, 3, 164, 3, 164, 3, 164, 3, 164, 3, 164, 7, 164, 2408, 10, 164, 12, 164, 14, 164, 2411, 11, 164, 3, 164, 3, 164, 5, 164, 2415, 10, 164, 3, 165, 3, 165, 5, 165, 2419, 10, 165, 3, 165, 3, 165, 3, 165, 3, 165, 3, 165, 7, 165, 2426, 10, 165, 12, 165, 14, 165, 2429, 11, 165, 3, 165, 5, 165, 2432, 10, 165, 3, 166, 3, 166, 3, 167, 3, 167, 3, 167, 3, 168, 3, 168, 3, 168, 3, 168, 3, 168, 7, 168, 2444, 10, 168, 12, 168, 14, 168, 2447, 11, 168, 3, 169, 3, 169, 3, 169, 3, 170, 3, 170, 3, 170, 3, 171, 3, 171, 3, 171, 3, 171, 5, 171, 2459, 10, 171, 3, 171, 3, 171, 3, 171, 5, 171, 2464, 10, 171, 7, 171, 2466, 10, 171, 12, 171, 14, 171, 2469, 11, 171, 3, 172, 6, 172, 2472, 10, 172, 13, 172, 14, 172, 2473, 3, 173, 3, 173, 3, 173, 3, 173, 3, 173, 3, 173, 3, 173, 3, 173, 3, 173, 5, 173, 2485, 10, 173, 5, 173, 2487, 10, 173, 3, 174, 3, 174, 3, 174, 3, 174, 3, 174, 5, 174, 2494, 10, 174, 3, 174, 5, 174, 2497, 10, 174, 3, 175, 3, 175, 3, 175, 7, 175, 2502, 10, 175, 12, 175, 14, 175, 2505, 11, 175, 3, 176, 3, 176, 5, 176, 2509, 10, 176, 3, 176, 3, 176, 3, 176, 3, 176, 5, 176, 2515, 10, 176, 3, 176, 5, 176, 2518, 10, 176, 3, 176, 5, 176, 2521, 10, 176, 3, 177, 3, 177, 3, 177, 3, 178, 3, 178, 3, 178, 3, 178, 3, 178, 3, 178, 3, 178, 3, 178, 6, 178, 2534, 10, 178, 13, 178, 14, 178, 2535, 3, 179, 3, 179, 3, 179, 3, 179, 3, 179, 5, 179, 2543, 10, 179, 3, 179, 5, 179, 2546, 10, 179, 3, 179, 5, 179, 2549, 10, 179, 3, 180, 3, 180, 5, 180, 2553, 10, 180, 3, 180, 3, 180, 3, 180, 5, 180, 2558, 10, 180, 3, 180, 3, 180, 3, 180, 3, 180, 5, 180, 2564, 10, 180, 3, 181, 3, 181, 5, 181, 2568, 10, 181, 3, 181, 3, 181, 3, 181, 3, 181, 3, 181, 3, 181, 3, 181, 7, 181, 2577, 10, 181, 12, 181, 14, 181, 2580, 11, 181, 3, 181, 5, 181, 2583, 10, 181, 3, 181, 5, 181, 2586, 10, 181, 3, 182, 3, 182, 5, 182, 2590, 10, 182, 3, 182, 3, 182, 5, 182, 2594, 10, 182, 3, 182, 3, 182, 5, 182, 2598, 10, 182, 3, 183, 3, 183, 5, 183, 2602, 10, 183, 3, 183, 3, 183, 3, 184, 3, 184, 5, 184, 2608, 10, 184, 3, 184, 3, 184, 3, 185, 3, 185, 5, 185, 2614, 10, 185, 3, 185, 3, 185, 3, 185, 3, 185, 3, 185, 5, 185, 2621, 10, 185, 3, 185, 3, 185, 3, 185, 3, 185, 7, 185, 2627, 10, 185, 12, 185, 14, 185, 2630, 11, 185, 3, 186, 3, 186, 3, 186, 5, 186, 2635, 10, 186, 3, 187, 3, 187, 3, 187, 5, 187, 2640, 10, 187, 3, 187, 3, 187, 3, 187, 3, 187, 3, 187, 3, 187, 3, 187, 3, 187, 3, 187, 5, 187, 2651, 10, 187, 3, 187, 3, 187, 3, 187, 3, 187, 3, 187, 3, 187, 3, 187, 5, 187, 2660, 10, 187, 3, 188, 3, 188, 5, 188, 2664, 10, 188, 3, 188, 3, 188, 3, 188, 3, 188, 3, 188, 7, 188, 2671, 10, 188, 12, 188, 14, 188, 2674, 11, 188, 3, 188, 5, 188, 2677, 10, 188, 3, 188, 3, 188, 3, 189, 3, 189, 3, 189, 3, 189, 7, 189, 2685, 10, 189, 12, 189, 14, 189, 2688, 11, 189, 3, 189, 3, 189, 5, 189, 2692, 10, 189, 3, 189, 3, 189, 3, 189, 3, 189, 3, 189, 3, 190, 3, 190, 3, 190, 3, 190, 3, 191, 3, 191, 3, 192, 3, 192, 3, 192, 3, 192, 3, 192, 3, 192, 3, 192, 3, 192, 3, 192, 5, 192, 2714, 10, 192, 3, 192, 5, 192, 2717, 10, 192, 3, 193, 3, 193, 3, 193, 3, 193, 3, 193, 3, 193, 3, 193, 3, 193, 3, 193, 3, 193, 3, 193, 3, 193, 3, 193, 3, 193, 3, 193, 3, 193, 3, 193, 5, 193, 2736, 10, 193, 3, 193, 3, 193, 3, 193, 3, 193, 3, 193, 3, 193, 3, 193, 3, 193, 3, 193, 3, 193, 3, 193, 3, 193, 3, 193, 3, 193, 7, 193, 2752, 10, 193, 12, 193, 14, 193, 2755, 11, 193, 3, 194, 3, 194, 3, 194, 3, 194, 3, 194, 3, 194, 3, 194, 3, 194, 5, 194, 2765, 10, 194, 3, 195, 3, 195, 3, 195, 3, 195, 3, 196, 3, 196, 3, 197, 3, 197, 3, 197, 3, 197, 3, 197, 7, 197, 2778, 10, 197, 12, 197, 14, 197, 2781, 11, 197, 3, 198, 3, 198, 3, 198, 3, 198, 3, 198, 3, 198, 3, 198, 3, 198, 3, 198, 5, 198, 2792, 10, 198, 3, 199, 3, 199, 5, 199, 2796, 10, 199, 3, 200, 3, 200, 3, 200, 3, 200, 3, 200, 3, 200, 3, 200, 6, 200, 2805, 10, 200, 13, 200, 14, 200, 2806, 3, 200, 3, 200, 5, 200, 2811, 10, 200, 3, 200, 3, 200, 3, 201, 3, 201, 3, 201, 3, 201, 3, 201, 3, 201, 6, 201, 2821, 10, 201, 13, 201, 14, 201, 2822, 3, 201, 3, 201, 5, 201, 2827, 10, 201, 3, 201, 3, 201, 3, 202, 3, 202, 3, 202, 3, 202, 3, 203, 3, 203, 3, 203, 5, 203, 2838, 10, 203, 3, 203, 3, 203, 3, 203, 5, 203, 2843, 10, 203, 3, 203, 3, 203, 3, 203, 5, 203, 2848, 10, 203, 3, 203, 3, 203, 5, 203, 2852, 10, 203, 3, 203, 3, 203, 5, 203, 2856, 10, 203, 3, 203, 3, 203, 3, 203, 5, 203, 2861, 10, 203, 3, 203, 3, 203, 5, 203, 2865, 10, 203, 3, 203, 3, 203, 5, 203, 2869, 10, 203, 3, 203, 3, 203, 3, 203, 3, 203, 3, 203, 3, 203, 3, 203, 3, 203, 3, 203, 3, 203, 3, 203, 3, 203, 3, 203, 3, 203, 3, 203, 3, 203, 3, 203, 3, 203, 3, 203, 3, 203, 3, 203, 5, 203, 2892, 10, 203, 5, 203, 2894, 10, 203, 3, 203, 3, 203, 3, 203, 3, 203, 3, 203, 3, 203, 3, 203, 3, 203, 3, 203, 3, 203, 3, 203, 3, 203, 3, 203, 3, 203, 3, 203, 3, 203, 5, 203, 2912, 10, 203, 5, 203, 2914, 10, 203, 3, 203, 3, 203, 3, 203, 3, 203, 3, 203, 3, 203, 5, 203, 2922, 10, 203, 3, 203, 3, 203, 3, 203, 5, 203, 2927, 10, 203, 3, 203, 3, 203, 3, 203, 5, 203, 2932, 10, 203, 3, 203, 3, 203, 3, 203, 5, 203, 2937, 10, 203, 3, 203, 3, 203, 3, 203, 3, 203, 3, 203, 3, 203, 3, 203, 3, 203, 3, 203, 3, 203, 3, 203, 5, 203, 2950, 10, 203, 3, 203, 3, 203, 3, 203, 5, 203, 2955, 10, 203, 3, 203, 3, 203, 3, 203, 5, 203, 2960, 10, 203, 3, 203, 3, 203, 3, 203, 5, 203, 2965, 10, 203, 3, 203, 3, 203, 3, 203, 5, 203, 2970, 10, 203, 3, 203, 3, 203, 3, 203, 5, 203, 2975, 10, 203, 3, 203, 3, 203, 3, 203, 5, 203, 2980, 10, 203, 3, 203, 3, 203, 3, 203, 5, 203, 2985, 10, 203, 5, 203, 2987, 10, 203, 3, 204, 3, 204, 3, 205, 3, 205, 3, 205, 5, 205, 2994, 10, 205, 3, 205, 5, 205, 2997, 10, 205, 3, 205, 3, 205, 3, 206, 3, 206, 3, 206, 3, 206, 3, 206, 7, 206, 3006, 10, 206, 12, 206, 14, 206, 3009, 11, 206, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 5, 207, 3018, 10, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 5, 207, 3026, 10, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 5, 207, 3035, 10, 207, 3, 207, 3, 207, 3, 207, 3, 207, 5, 207, 3041, 10, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 7, 207, 3056, 10, 207, 12, 207, 14, 207, 3059, 11, 207, 5, 207, 3061, 10, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 7, 207, 3075, 10, 207, 12, 207, 14, 207, 3078, 11, 207, 5, 207, 3080, 10, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 7, 207, 3094, 10, 207, 12, 207, 14, 207, 3097, 11, 207, 5, 207, 3099, 10, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 7, 207, 3113, 10, 207, 12, 207, 14, 207, 3116, 11, 207, 5, 207, 3118, 10, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 7, 207, 3132, 10, 207, 12, 207, 14, 207, 3135, 11, 207, 5, 207, 3137, 10, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 7, 207, 3151, 10, 207, 12, 207, 14, 207, 3154, 11, 207, 5, 207, 3156, 10, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 7, 207, 3168, 10, 207, 12, 207, 14, 207, 3171, 11, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 6, 207, 3183, 10, 207, 13, 207, 14, 207, 3184, 3, 207, 3, 207, 5, 207, 3189, 10, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 5, 207, 3205, 10, 207, 3, 207, 3, 207, 3, 207, 3, 207, 5, 207, 3211, 10, 207, 3, 208, 3, 208, 3, 208, 5, 208, 3216, 10, 208, 3, 208, 3, 208, 3, 209, 3, 209, 3, 209, 7, 209, 3223, 10, 209, 12, 209, 14, 209, 3226, 11, 209, 3, 210, 3, 210, 3, 210, 3, 210, 5, 210, 3232, 10, 210, 5, 210, 3234, 10, 210, 3, 210, 3, 210, 3, 211, 3, 211, 5, 211, 3240, 10, 211, 3, 212, 3, 212, 5, 212, 3244, 10, 212, 3, 213, 3, 213, 7, 213, 3248, 10, 213, 12, 213, 14, 213, 3251, 11, 213, 3, 214, 3, 214, 3, 214, 3, 214, 3, 214, 3, 214, 3, 214, 3, 214, 3, 214, 3, 214, 3, 214, 3, 214, 5, 214, 3265, 10, 214, 3, 215, 3, 215, 3, 215, 3, 215, 3, 215, 5, 215, 3272, 10, 215, 3, 216, 7, 216, 3275, 10, 216, 12, 216, 14, 216, 3278, 11, 216, 3, 217, 3, 217, 3, 217, 3, 218, 3, 218, 3, 218, 3, 218, 5, 218, 3287, 10, 218, 3, 218, 3, 218, 3, 218, 7, 218, 3292, 10, 218, 12, 218, 14, 218, 3295, 11, 218, 5, 218, 3297, 10, 218, 3, 219, 3, 219, 3, 219, 3, 220, 3, 220, 3, 220, 3, 221, 3, 221, 5, 221, 3307, 10, 221, 3, 221, 3, 221, 3, 221, 5, 221, 3312, 10, 221, 7, 221, 3314, 10, 221, 12, 221, 14, 221, 3317, 11, 221, 3, 222, 3, 222, 5, 222, 3321, 10, 222, 3, 223, 5, 223, 3324, 10, 223, 3, 223, 3, 223, 3, 224, 5, 224, 3329, 10, 224, 3, 224, 3, 224, 3, 225, 3, 225, 3, 226, 3, 226, 3, 227, 3, 227, 3, 227, 3, 3276, 4, 368, 384, 228, 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, 2, 51, 6, 2, 345, 345, 350, 350, 360, 360, 367, 367, 4, 2, 95, 95, 308, 308, 3, 2, 165, 166, 5, 2, 11, 11, 112, 112, 150, 150, 4, 2, 30, 30, 38, 38, 4, 2, 52, 52, 104, 104, 4, 2, 181, 181, 253, 253, 4, 2, 12, 12, 80, 80, 4, 2, 77, 77, 297, 297, 4, 2, 105, 105, 168, 168, 4, 2, 77, 77, 213, 213, 4, 2, 73, 73, 133, 133, 5, 2, 137, 137, 175, 175, 209, 210, 4, 2, 170, 170, 188, 188, 4, 2, 185, 185, 316, 316, 4, 2, 240, 240, 294, 294, 4, 2, 174, 174, 372, 372, 4, 2, 28, 28, 35, 35, 4, 2, 33, 33, 59, 59, 4, 2, 63, 63, 246, 246, 4, 2, 11, 11, 150, 150, 3, 2, 231, 232, 3, 2, 216, 217, 6, 2, 58, 58, 75, 75, 149, 149, 206, 206, 3, 2, 99, 100, 3, 2, 92, 93, 3, 2, 269, 270, 4, 2, 241, 241, 277, 277, 5, 2, 77, 77, 132, 132, 205, 205, 6, 2, 9, 10, 186, 186, 221, 221, 314, 314, 3, 2, 196, 197, 4, 2, 254, 254, 291, 291, 6, 2, 18, 18, 87, 87, 171, 171, 285, 285, 4, 2, 171, 171, 310, 310, 4, 2, 27, 27, 271, 271, 3, 2, 251, 252, 4, 2, 5, 5, 85, 85, 5, 2, 117, 117, 159, 159, 234, 234, 5, 2, 59, 59, 242, 243, 298, 298, 5, 2, 102, 102, 257, 257, 297, 297, 3, 2, 80, 81, 4, 2, 8, 8, 200, 200, 5, 2, 160, 160, 225, 225, 235, 235, 5, 2, 67, 68, 178, 179, 247, 248, 4, 2, 49, 49, 344, 344, 5, 2, 115, 115, 151, 151, 191, 191, 4, 2, 341, 341, 368, 368, 4, 2, 106, 106, 292, 292, 14, 2, 3, 22, 24, 90, 94, 94, 96, 191, 193, 210, 212, 239, 241, 260, 262, 286, 288, 293, 296, 307, 310, 326, 333, 340, 2, 3763, 2, 454, 3, 2, 2, 2, 4, 464, 3, 2, 2, 2, 6, 469, 3, 2, 2, 2, 8, 489, 3, 2, 2, 2, 10, 491, 3, 2, 2, 2, 12, 503, 3, 2, 2, 2, 14, 566, 3, 2, 2, 2, 16, 568, 3, 2, 2, 2, 18, 570, 3, 2, 2, 2, 20, 576, 3, 2, 2, 2, 22, 582, 3, 2, 2, 2, 24, 584, 3, 2, 2, 2, 26, 600, 3, 2, 2, 2, 28, 605, 3, 2, 2, 2, 30, 623, 3, 2, 2, 2, 32, 625, 3, 2, 2, 2, 34, 662, 3, 2, 2, 2, 36, 672, 3, 2, 2, 2, 38, 683, 3, 2, 2, 2, 40, 703, 3, 2, 2, 2, 42, 706, 3, 2, 2, 2, 44, 708, 3, 2, 2, 2, 46, 718, 3, 2, 2, 2, 48, 727, 3, 2, 2, 2, 50, 738, 3, 2, 2, 2, 52, 753, 3, 2, 2, 2, 54, 790, 3, 2, 2, 2, 56, 792, 3, 2, 2, 2, 58, 800, 3, 2, 2, 2, 60, 811, 3, 2, 2, 2, 62, 820, 3, 2, 2, 2, 64, 823, 3, 2, 2, 2, 66, 836, 3, 2, 2, 2, 68, 846, 3, 2, 2, 2, 70, 859, 3, 2, 2, 2, 72, 890, 3, 2, 2, 2, 74, 895, 3, 2, 2, 2, 76, 925, 3, 2, 2, 2, 78, 927, 3, 2, 2, 2, 80, 961, 3, 2, 2, 2, 82, 1020, 3, 2, 2, 2, 84, 1022, 3, 2, 2, 2, 86, 1035, 3, 2, 2, 2, 88, 1042, 3, 2, 2, 2, 90, 1045, 3, 2, 2, 2, 92, 1050, 3, 2, 2, 2, 94, 1064, 3, 2, 2, 2, 96, 1084, 3, 2, 2, 2, 98, 1119, 3, 2, 2, 2, 100, 1139, 3, 2, 2, 2, 102, 1145, 3, 2, 2, 2, 104, 1147, 3, 2, 2, 2, 106, 1183, 3, 2, 2, 2, 108, 1189, 3, 2, 2, 2, 110, 1218, 3, 2, 2, 2, 112, 1220, 3, 2, 2, 2, 114, 1225, 3, 2, 2, 2, 116, 1227, 3, 2, 2, 2, 118, 1296, 3, 2, 2, 2, 120, 1343, 3, 2, 2, 2, 122, 1345, 3, 2, 2, 2, 124, 1367, 3, 2, 2, 2, 126, 1381, 3, 2, 2, 2, 128, 1383, 3, 2, 2, 2, 130, 1401, 3, 2, 2, 2, 132, 1410, 3, 2, 2, 2, 134, 1426, 3, 2, 2, 2, 136, 1438, 3, 2, 2, 2, 138, 1450, 3, 2, 2, 2, 140, 1473, 3, 2, 2, 2, 142, 1482, 3, 2, 2, 2, 144, 1495, 3, 2, 2, 2, 146, 1508, 3, 2, 2, 2, 148, 1517, 3, 2, 2, 2, 150, 1564, 3, 2, 2, 2, 152, 1608, 3, 2, 2, 2, 154, 1611, 3, 2, 2, 2, 156, 1626, 3, 2, 2, 2, 158, 1642, 3, 2, 2, 2, 160, 1644, 3, 2, 2, 2, 162, 1647, 3, 2, 2, 2, 164, 1676, 3, 2, 2, 2, 166, 1678, 3, 2, 2, 2, 168, 1694, 3, 2, 2, 2, 170, 1701, 3, 2, 2, 2, 172, 1707, 3, 2, 2, 2, 174, 1712, 3, 2, 2, 2, 176, 1715, 3, 2, 2, 2, 178, 1720, 3, 2, 2, 2, 180, 1737, 3, 2, 2, 2, 182, 1748, 3, 2, 2, 2, 184, 1757, 3, 2, 2, 2, 186, 1768, 3, 2, 2, 2, 188, 1777, 3, 2, 2, 2, 190, 1785, 3, 2, 2, 2, 192, 1791, 3, 2, 2, 2, 194, 1793, 3, 2, 2, 2, 196, 1799, 3, 2, 2, 2, 198, 1803, 3, 2, 2, 2, 200, 1816, 3, 2, 2, 2, 202, 1821, 3, 2, 2, 2, 204, 1825, 3, 2, 2, 2, 206, 1836, 3, 2, 2, 2, 208, 1845, 3, 2, 2, 2, 210, 1859, 3, 2, 2, 2, 212, 1866, 3, 2, 2, 2, 214, 1878, 3, 2, 2, 2, 216, 1881, 3, 2, 2, 2, 218, 1895, 3, 2, 2, 2, 220, 1901, 3, 2, 2, 2, 222, 1920, 3, 2, 2, 2, 224, 1941, 3, 2, 2, 2, 226, 1945, 3, 2, 2, 2, 228, 1955, 3, 2, 2, 2, 230, 1957, 3, 2, 2, 2, 232, 1959, 3, 2, 2, 2, 234, 1963, 3, 2, 2, 2, 236, 1982, 3, 2, 2, 2, 238, 1986, 3, 2, 2, 2, 240, 1988, 3, 2, 2, 2, 242, 2017, 3, 2, 2, 2, 244, 2020, 3, 2, 2, 2, 246, 2026, 3, 2, 2, 2, 248, 2028, 3, 2, 2, 2, 250, 2042, 3, 2, 2, 2, 252, 2046, 3, 2, 2, 2, 254, 2053, 3, 2, 2, 2, 256, 2060, 3, 2, 2, 2, 258, 2067, 3, 2, 2, 2, 260, 2070, 3, 2, 2, 2, 262, 2082, 3, 2, 2, 2, 264, 2085, 3, 2, 2, 2, 266, 2102, 3, 2, 2, 2, 268, 2108, 3, 2, 2, 2, 270, 2111, 3, 2, 2, 2, 272, 2141, 3, 2, 2, 2, 274, 2149, 3, 2, 2, 2, 276, 2164, 3, 2, 2, 2, 278, 2188, 3, 2, 2, 2, 280, 2190, 3, 2, 2, 2, 282, 2200, 3, 2, 2, 2, 284, 2204, 3, 2, 2, 2, 286, 2213, 3, 2, 2, 2, 288, 2222, 3, 2, 2, 2, 290, 2233, 3, 2, 2, 2, 292, 2247, 3, 2, 2, 2, 294, 2261, 3, 2, 2, 2, 296, 2263, 3, 2, 2, 2, 298, 2288, 3, 2, 2, 2, 300, 2301, 3, 2, 2, 2, 302, 2303, 3, 2, 2, 2, 304, 2316, 3, 2, 2, 2, 306, 2327, 3, 2, 2, 2, 308, 2331, 3, 2, 2, 2, 310, 2335, 3, 2, 2, 2, 312, 2344, 3, 2, 2, 2, 314, 2355, 3, 2, 2, 2, 316, 2357, 3, 2, 2, 2, 318, 2361, 3, 2, 2, 2, 320, 2374, 3, 2, 2, 2, 322, 2385, 3, 2, 2, 2, 324, 2387, 3, 2, 2, 2, 326, 2414, 3, 2, 2, 2, 328, 2416, 3, 2, 2, 2, 330, 2433, 3, 2, 2, 2, 332, 2435, 3, 2, 2, 2, 334, 2438, 3, 2, 2, 2, 336, 2448, 3, 2, 2, 2, 338, 2451, 3, 2, 2, 2, 340, 2454, 3, 2, 2, 2, 342, 2471, 3, 2, 2, 2, 344, 2486, 3, 2, 2, 2, 346, 2488, 3, 2, 2, 2, 348, 2498, 3, 2, 2, 2, 350, 2514, 3, 2, 2, 2, 352, 2522, 3, 2, 2, 2, 354, 2525, 3, 2, 2, 2, 356, 2542, 3, 2, 2, 2, 358, 2563, 3, 2, 2, 2, 360, 2585, 3, 2, 2, 2, 362, 2587, 3, 2, 2, 2, 364, 2599, 3, 2, 2, 2, 366, 2605, 3, 2, 2, 2, 368, 2620, 3, 2, 2, 2, 370, 2634, 3, 2, 2, 2, 372, 2659, 3, 2, 2, 2, 374, 2661, 3, 2, 2, 2, 376, 2680, 3, 2, 2, 2, 378, 2698, 3, 2, 2, 2, 380, 2702, 3, 2, 2, 2, 382, 2716, 3, 2, 2, 2, 384, 2735, 3, 2, 2, 2, 386, 2764, 3, 2, 2, 2, 388, 2766, 3, 2, 2, 2, 390, 2770, 3, 2, 2, 2, 392, 2772, 3, 2, 2, 2, 394, 2791, 3, 2, 2, 2, 396, 2795, 3, 2, 2, 2, 398, 2797, 3, 2, 2, 2, 400, 2814, 3, 2, 2, 2, 402, 2830, 3, 2, 2, 2, 404, 2986, 3, 2, 2, 2, 406, 2988, 3, 2, 2, 2, 408, 2990, 3, 2, 2, 2, 410, 3000, 3, 2, 2, 2, 412, 3210, 3, 2, 2, 2, 414, 3212, 3, 2, 2, 2, 416, 3219, 3, 2, 2, 2, 418, 3227, 3, 2, 2, 2, 420, 3239, 3, 2, 2, 2, 422, 3243, 3, 2, 2, 2, 424, 3245, 3, 2, 2, 2, 426, 3264, 3, 2, 2, 2, 428, 3271, 3, 2, 2, 2, 430, 3276, 3, 2, 2, 2, 432, 3279, 3, 2, 2, 2, 434, 3296, 3, 2, 2, 2, 436, 3298, 3, 2, 2, 2, 438, 3301, 3, 2, 2, 2, 440, 3306, 3, 2, 2, 2, 442, 3320, 3, 2, 2, 2, 444, 3323, 3, 2, 2, 2, 446, 3328, 3, 2, 2, 2, 448, 3332, 3, 2, 2, 2, 450, 3334, 3, 2, 2, 2, 452, 3336, 3, 2, 2, 2, 454, 455, 5, 4, 3, 2, 455, 456, 7, 2, 2, 3, 456, 3, 3, 2, 2, 2, 457, 460, 5, 6, 4, 2, 458, 460, 5, 14, 8, 2, 459, 457, 3, 2, 2, 2, 459, 458, 3, 2, 2, 2, 460, 462, 3, 2, 2, 2, 461, 463, 7, 121, 2, 2, 462, 461, 3, 2, 2, 2, 462, 463, 3, 2, 2, 2, 463, 465, 3, 2, 2, 2, 464, 459, 3, 2, 2, 2, 465, 466, 3, 2, 2, 2, 466, 464, 3, 2, 2, 2, 466, 467, 3, 2, 2, 2, 467, 5, 3, 2, 2, 2, 468, 470, 5, 48, 25, 2, 469, 468, 3, 2, 2, 2, 469, 470, 3, 2, 2, 2, 470, 471, 3, 2, 2, 2, 471, 472, 7, 18, 2, 2, 472, 474, 5, 4, 3, 2, 473, 475, 5, 18, 10, 2, 474, 473, 3, 2, 2, 2, 474, 475, 3, 2, 2, 2, 475, 476, 3, 2, 2, 2, 476, 477, 5, 10, 6, 2, 477, 7, 3, 2, 2, 2, 478, 479, 7, 18, 2, 2, 479, 481, 5, 4, 3, 2, 480, 482, 5, 18, 10, 2, 481, 480, 3, 2, 2, 2, 481, 482, 3, 2, 2, 2, 482, 483, 3, 2, 2, 2, 483, 484, 5, 10, 6, 2, 484, 490, 3, 2, 2, 2, 485, 487, 5, 14, 8, 2, 486, 488, 7, 367, 2, 2, 487, 486, 3, 2, 2, 2, 487, 488, 3, 2, 2, 2, 488, 490, 3, 2, 2, 2, 489, 478, 3, 2, 2, 2, 489, 485, 3, 2, 2, 2, 490, 9, 3, 2, 2, 2, 491, 492, 6, 6, 2, 2, 492, 493, 7, 95, 2, 2, 493, 11, 3, 2, 2, 2, 494, 504, 5, 6, 4, 2, 495, 497, 5, 14, 8, 2, 496, 495, 3, 2, 2, 2, 497, 498, 3, 2, 2, 2, 498, 496, 3, 2, 2, 2, 498, 499, 3, 2, 2, 2, 499, 501, 3, 2, 2, 2, 500, 502, 7, 121, 2, 2, 501, 500, 3, 2, 2, 2, 501, 502, 3, 2, 2, 2, 502, 504, 3, 2, 2, 2, 503, 494, 3, 2, 2, 2, 503, 496, 3, 2, 2, 2, 504, 13, 3, 2, 2, 2, 505, 567, 5, 26, 14, 2, 506, 567, 5, 36, 19, 2, 507, 567, 5, 112, 57, 2, 508, 567, 5, 38, 20, 2, 509, 567, 5, 40, 21, 2, 510, 567, 5, 42, 22, 2, 511, 567, 5, 44, 23, 2, 512, 567, 5, 210, 106, 2, 513, 567, 5, 214, 108, 2, 514, 567, 5, 216, 109, 2, 515, 567, 5, 220, 111, 2, 516, 567, 5, 222, 112, 2, 517, 567, 5, 232, 117, 2, 518, 567, 5, 128, 65, 2, 519, 567, 5, 132, 67, 2, 520, 567, 5, 234, 118, 2, 521, 567, 5, 70, 36, 2, 522, 567, 5, 136, 69, 2, 523, 567, 5, 142, 72, 2, 524, 567, 5, 148, 75, 2, 525, 567, 5, 68, 35, 2, 526, 567, 5, 46, 24, 2, 527, 567, 5, 362, 182, 2, 528, 567, 5, 366, 184, 2, 529, 567, 5, 158, 80, 2, 530, 567, 5, 160, 81, 2, 531, 567, 5, 162, 82, 2, 532, 567, 5, 188, 95, 2, 533, 567, 5, 208, 105, 2, 534, 567, 5, 274, 138, 2, 535, 567, 5, 276, 139, 2, 536, 567, 5, 164, 83, 2, 537, 567, 5, 176, 89, 2, 538, 567, 5, 178, 90, 2, 539, 567, 5, 186, 94, 2, 540, 567, 5, 190, 96, 2, 541, 567, 5, 198, 100, 2, 542, 567, 5, 202, 102, 2, 543, 567, 5, 204, 103, 2, 544, 567, 5, 354, 178, 2, 545, 567, 5, 206, 104, 2, 546, 567, 5, 242, 122, 2, 547, 567, 5, 244, 123, 2, 548, 567, 5, 246, 124, 2, 549, 567, 5, 248, 125, 2, 550, 567, 5, 250, 126, 2, 551, 567, 5, 252, 127, 2, 552, 567, 5, 282, 142, 2, 553, 567, 5, 262, 132, 2, 554, 567, 5, 264, 133, 2, 555, 567, 5, 346, 174, 2, 556, 567, 5, 268, 135, 2, 557, 567, 5, 266, 134, 2, 558, 567, 5, 270, 136, 2, 559, 567, 5, 272, 137, 2, 560, 567, 5, 278, 140, 2, 561, 567, 5, 424, 213, 2, 562, 567, 5, 428, 215, 2, 563, 567, 5, 22, 12, 2, 564, 567, 5, 24, 13, 2, 565, 567, 5, 16, 9, 2, 566, 505, 3, 2, 2, 2, 566, 506, 3, 2, 2, 2, 566, 507, 3, 2, 2, 2, 566, 508, 3, 2, 2, 2, 566, 509, 3, 2, 2, 2, 566, 510, 3, 2, 2, 2, 566, 511, 3, 2, 2, 2, 566, 512, 3, 2, 2, 2, 566, 513, 3, 2, 2, 2, 566, 514, 3, 2, 2, 2, 566, 515, 3, 2, 2, 2, 566, 516, 3, 2, 2, 2, 566, 517, 3, 2, 2, 2, 566, 518, 3, 2, 2, 2, 566, 519, 3, 2, 2, 2, 566, 520, 3, 2, 2, 2, 566, 521, 3, 2, 2, 2, 566, 522, 3, 2, 2, 2, 566, 523, 3, 2, 2, 2, 566, 524, 3, 2, 2, 2, 566, 525, 3, 2, 2, 2, 566, 526, 3, 2, 2, 2, 566, 527, 3, 2, 2, 2, 566, 528, 3, 2, 2, 2, 566, 529, 3, 2, 2, 2, 566, 530, 3, 2, 2, 2, 566, 531, 3, 2, 2, 2, 566, 532, 3, 2, 2, 2, 566, 533, 3, 2, 2, 2, 566, 534, 3, 2, 2, 2, 566, 535, 3, 2, 2, 2, 566, 536, 3, 2, 2, 2, 566, 537, 3, 2, 2, 2, 566, 538, 3, 2, 2, 2, 566, 539, 3, 2, 2, 2, 566, 540, 3, 2, 2, 2, 566, 541, 3, 2, 2, 2, 566, 542, 3, 2, 2, 2, 566, 543, 3, 2, 2, 2, 566, 544, 3, 2, 2, 2, 566, 545, 3, 2, 2, 2, 566, 546, 3, 2, 2, 2, 566, 547, 3, 2, 2, 2, 566, 548, 3, 2, 2, 2, 566, 549, 3, 2, 2, 2, 566, 550, 3, 2, 2, 2, 566, 551, 3, 2, 2, 2, 566, 552, 3, 2, 2, 2, 566, 553, 3, 2, 2, 2, 566, 554, 3, 2, 2, 2, 566, 555, 3, 2, 2, 2, 566, 556, 3, 2, 2, 2, 566, 557, 3, 2, 2, 2, 566, 558, 3, 2, 2, 2, 566, 559, 3, 2, 2, 2, 566, 560, 3, 2, 2, 2, 566, 561, 3, 2, 2, 2, 566, 562, 3, 2, 2, 2, 566, 563, 3, 2, 2, 2, 566, 564, 3, 2, 2, 2, 566, 565, 3, 2, 2, 2, 567, 15, 3, 2, 2, 2, 568, 569, 9, 2, 2, 2, 569, 17, 3, 2, 2, 2, 570, 572, 7, 101, 2, 2, 571, 573, 5, 20, 11, 2, 572, 571, 3, 2, 2, 2, 573, 574, 3, 2, 2, 2, 574, 572, 3, 2, 2, 2, 574, 575, 3, 2, 2, 2, 575, 19, 3, 2, 2, 2, 576, 577, 7, 308, 2, 2, 577, 578, 7, 369, 2, 2, 578, 579, 7, 285, 2, 2, 579, 580, 5, 4, 3, 2, 580, 581, 10, 3, 2, 2, 581, 21, 3, 2, 2, 2, 582, 583, 7, 192, 2, 2, 583, 23, 3, 2, 2, 2, 584, 585, 6, 13, 3, 2, 585, 586, 5, 384, 193, 2, 586, 25, 3, 2, 2, 2, 587, 588, 7, 253, 2, 2, 588, 601, 5, 254, 128, 2, 589, 591, 7, 253, 2, 2, 590, 589, 3, 2, 2, 2, 590, 591, 3, 2, 2, 2, 591, 592, 3, 2, 2, 2, 592, 597, 5, 28, 15, 2, 593, 594, 7, 343, 2, 2, 594, 596, 5, 28, 15, 2, 595, 593, 3, 2, 2, 2, 596, 599, 3, 2, 2, 2, 597, 595, 3, 2, 2, 2, 597, 598, 3, 2, 2, 2, 598, 601, 3, 2, 2, 2, 599, 597, 3, 2, 2, 2, 600, 587, 3, 2, 2, 2, 600, 590, 3, 2, 2, 2, 601, 27, 3, 2, 2, 2, 602, 606, 5, 30, 16, 2, 603, 606, 5, 32, 17, 2, 604, 606, 5, 34, 18, 2, 605, 602, 3, 2, 2, 2, 605, 603, 3, 2, 2, 2, 605, 604, 3, 2, 2, 2, 606, 29, 3, 2, 2, 2, 607, 609, 5, 440, 221, 2, 608, 610, 7, 342, 2, 2, 609, 608, 3, 2, 2, 2, 609, 610, 3, 2, 2, 2, 610, 611, 3, 2, 2, 2, 611, 612, 7, 348, 2, 2, 612, 613, 5, 384, 193, 2, 613, 624, 3, 2, 2, 2, 614, 615, 7, 362, 2, 2, 615, 616, 5, 440, 221, 2, 616, 618, 7, 365, 2, 2, 617, 619, 7, 342, 2, 2, 618, 617, 3, 2, 2, 2, 618, 619, 3, 2, 2, 2, 619, 620, 3, 2, 2, 2, 620, 621, 7, 348, 2, 2, 621, 622, 5, 384, 193, 2, 622, 624, 3, 2, 2, 2, 623, 607, 3, 2, 2, 2, 623, 614, 3, 2, 2, 2, 624, 31, 3, 2, 2, 2, 625, 626, 7, 362, 2, 2, 626, 631, 5, 440, 221, 2, 627, 628, 7, 343, 2, 2, 628, 630, 5, 440, 221, 2, 629, 627, 3, 2, 2, 2, 630, 633, 3, 2, 2, 2, 631, 629, 3, 2, 2, 2, 631, 632, 3, 2, 2, 2, 632, 634, 3, 2, 2, 2, 633, 631, 3, 2, 2, 2, 634, 636, 7, 365, 2, 2, 635, 637, 7, 342, 2, 2, 636, 635, 3, 2, 2, 2, 636, 637, 3, 2, 2, 2, 637, 638, 3, 2, 2, 2, 638, 639, 7, 348, 2, 2, 639, 640, 7, 362, 2, 2, 640, 645, 5, 384, 193, 2, 641, 642, 7, 343, 2, 2, 642, 644, 5, 384, 193, 2, 643, 641, 3, 2, 2, 2, 644, 647, 3, 2, 2, 2, 645, 643, 3, 2, 2, 2, 645, 646, 3, 2, 2, 2, 646, 648, 3, 2, 2, 2, 647, 645, 3, 2, 2, 2, 648, 649, 7, 365, 2, 2, 649, 33, 3, 2, 2, 2, 650, 663, 5, 440, 221, 2, 651, 652, 7, 362, 2, 2, 652, 657, 5, 440, 221, 2, 653, 654, 7, 343, 2, 2, 654, 656, 5, 440, 221, 2, 655, 653, 3, 2, 2, 2, 656, 659, 3, 2, 2, 2, 657, 655, 3, 2, 2, 2, 657, 658, 3, 2, 2, 2, 658, 660, 3, 2, 2, 2, 659, 657, 3, 2, 2, 2, 660, 661, 7, 365, 2, 2, 661, 663, 3, 2, 2, 2, 662, 650, 3, 2, 2, 2, 662, 651, 3, 2, 2, 2, 663, 665, 3, 2, 2, 2, 664, 666, 7, 342, 2, 2, 665, 664, 3, 2, 2, 2, 665, 666, 3, 2, 2, 2, 666, 667, 3, 2, 2, 2, 667, 668, 7, 348, 2, 2, 668, 669, 7, 362, 2, 2, 669, 670, 5, 282, 142, 2, 670, 671, 7, 365, 2, 2, 671, 35, 3, 2, 2, 2, 672, 673, 7, 6, 2, 2, 673, 674, 5, 440, 221, 2, 674, 675, 7, 62, 2, 2, 675, 679, 7, 112, 2, 2, 676, 677, 7, 229, 2, 2, 677, 680, 7, 253, 2, 2, 678, 680, 7, 217, 2, 2, 679, 676, 3, 2, 2, 2, 679, 678, 3, 2, 2, 2, 680, 681, 3, 2, 2, 2, 681, 682, 5, 440, 221, 2, 682, 37, 3, 2, 2, 2, 683, 686, 7, 13, 2, 2, 684, 685, 7, 229, 2, 2, 685, 687, 7, 253, 2, 2, 686, 684, 3, 2, 2, 2, 686, 687, 3, 2, 2, 2, 687, 688, 3, 2, 2, 2, 688, 689, 9, 4, 2, 2, 689, 690, 7, 362, 2, 2, 690, 695, 5, 440, 221, 2, 691, 692, 7, 343, 2, 2, 692, 694, 5, 440, 221, 2, 693, 691, 3, 2, 2, 2, 694, 697, 3, 2, 2, 2, 695, 693, 3, 2, 2, 2, 695, 696, 3, 2, 2, 2, 696, 698, 3, 2, 2, 2, 697, 695, 3, 2, 2, 2, 698, 699, 7, 365, 2, 2, 699, 700, 7, 311, 2, 2, 700, 701, 7, 217, 2, 2, 701, 702, 5, 440, 221, 2, 702, 39, 3, 2, 2, 2, 703, 704, 7, 18, 2, 2, 704, 705, 7, 291, 2, 2, 705, 41, 3, 2, 2, 2, 706, 707, 7, 26, 2, 2, 707, 43, 3, 2, 2, 2, 708, 709, 7, 29, 2, 2, 709, 716, 5, 440, 221, 2, 710, 712, 7, 362, 2, 2, 711, 713, 5, 416, 209, 2, 712, 711, 3, 2, 2, 2, 712, 713, 3, 2, 2, 2, 713, 714, 3, 2, 2, 2, 714, 717, 7, 365, 2, 2, 715, 717, 5, 416, 209, 2, 716, 710, 3, 2, 2, 2, 716, 715, 3, 2, 2, 2, 716, 717, 3, 2, 2, 2, 717, 45, 3, 2, 2, 2, 718, 719, 7, 71, 2, 2, 719, 724, 5, 52, 27, 2, 720, 721, 7, 343, 2, 2, 721, 723, 5, 52, 27, 2, 722, 720, 3, 2, 2, 2, 723, 726, 3, 2, 2, 2, 724, 722, 3, 2, 2, 2, 724, 725, 3, 2, 2, 2, 725, 47, 3, 2, 2, 2, 726, 724, 3, 2, 2, 2, 727, 728, 7, 71, 2, 2, 728, 729, 5, 52, 27, 2, 729, 735, 7, 367, 2, 2, 730, 731, 5, 52, 27, 2, 731, 732, 7, 367, 2, 2, 732, 734, 3, 2, 2, 2, 733, 730, 3, 2, 2, 2, 734, 737, 3, 2, 2, 2, 735, 733, 3, 2, 2, 2, 735, 736, 3, 2, 2, 2, 736, 49, 3, 2, 2, 2, 737, 735, 3, 2, 2, 2, 738, 739, 5, 52, 27, 2, 739, 745, 7, 367, 2, 2, 740, 741, 5, 52, 27, 2, 741, 742, 7, 367, 2, 2, 742, 744, 3, 2, 2, 2, 743, 740, 3, 2, 2, 2, 744, 747, 3, 2, 2, 2, 745, 743, 3, 2, 2, 2, 745, 746, 3, 2, 2, 2, 746, 51, 3, 2, 2, 2, 747, 745, 3, 2, 2, 2, 748, 754, 5, 58, 30, 2, 749, 754, 5, 56, 29, 2, 750, 754, 5, 64, 33, 2, 751, 754, 5, 54, 28, 2, 752, 754, 5, 66, 34, 2, 753, 748, 3, 2, 2, 2, 753, 749, 3, 2, 2, 2, 753, 750, 3, 2, 2, 2, 753, 751, 3, 2, 2, 2, 753, 752, 3, 2, 2, 2, 754, 53, 3, 2, 2, 2, 755, 760, 5, 440, 221, 2, 756, 757, 7, 343, 2, 2, 757, 759, 5, 440, 221, 2, 758, 756, 3, 2, 2, 2, 759, 762, 3, 2, 2, 2, 760, 758, 3, 2, 2, 2, 760, 761, 3, 2, 2, 2, 761, 764, 3, 2, 2, 2, 762, 760, 3, 2, 2, 2, 763, 765, 7, 11, 2, 2, 764, 763, 3, 2, 2, 2, 764, 765, 3, 2, 2, 2, 765, 766, 3, 2, 2, 2, 766, 768, 5, 120, 61, 2, 767, 769, 5, 122, 62, 2, 768, 767, 3, 2, 2, 2, 768, 769, 3, 2, 2, 2, 769, 773, 3, 2, 2, 2, 770, 772, 5, 124, 63, 2, 771, 770, 3, 2, 2, 2, 772, 775, 3, 2, 2, 2, 773, 771, 3, 2, 2, 2, 773, 774, 3, 2, 2, 2, 774, 777, 3, 2, 2, 2, 775, 773, 3, 2, 2, 2, 776, 778, 5, 126, 64, 2, 777, 776, 3, 2, 2, 2, 777, 778, 3, 2, 2, 2, 778, 791, 3, 2, 2, 2, 779, 780, 5, 440, 221, 2, 780, 782, 7, 46, 2, 2, 781, 783, 7, 11, 2, 2, 782, 781, 3, 2, 2, 2, 782, 783, 3, 2, 2, 2, 783, 784, 3, 2, 2, 2, 784, 786, 5, 120, 61, 2, 785, 787, 5, 122, 62, 2, 786, 785, 3, 2, 2, 2, 786, 787, 3, 2, 2, 2, 787, 788, 3, 2, 2, 2, 788, 789, 5, 126, 64, 2, 789, 791, 3, 2, 2, 2, 790, 755, 3, 2, 2, 2, 790, 779, 3, 2, 2, 2, 791, 55, 3, 2, 2, 2, 792, 793, 5, 440, 221, 2, 793, 794, 7, 50, 2, 2, 794, 57, 3, 2, 2, 2, 795, 796, 7, 62, 2, 2, 796, 801, 5, 440, 221, 2, 797, 798, 5, 440, 221, 2, 798, 799, 7, 62, 2, 2, 799, 801, 3, 2, 2, 2, 800, 795, 3, 2, 2, 2, 800, 797, 3, 2, 2, 2, 801, 804, 3, 2, 2, 2, 802, 805, 5, 60, 31, 2, 803, 805, 5, 62, 32, 2, 804, 802, 3, 2, 2, 2, 804, 803, 3, 2, 2, 2, 804, 805, 3, 2, 2, 2, 805, 806, 3, 2, 2, 2, 806, 809, 9, 5, 2, 2, 807, 810, 5, 282, 142, 2, 808, 810, 5, 384, 193, 2, 809, 807, 3, 2, 2, 2, 809, 808, 3, 2, 2, 2, 810, 59, 3, 2, 2, 2, 811, 812, 7, 311, 2, 2, 812, 814, 7, 231, 2, 2, 813, 815, 7, 198, 2, 2, 814, 813, 3, 2, 2, 2, 814, 815, 3, 2, 2, 2, 815, 818, 3, 2, 2, 2, 816, 817, 7, 289, 2, 2, 817, 819, 9, 6, 2, 2, 818, 816, 3, 2, 2, 2, 818, 819, 3, 2, 2, 2, 819, 61, 3, 2, 2, 2, 820, 821, 7, 312, 2, 2, 821, 822, 7, 231, 2, 2, 822, 63, 3, 2, 2, 2, 823, 824, 9, 7, 2, 2, 824, 825, 7, 124, 2, 2, 825, 831, 7, 112, 2, 2, 826, 832, 7, 265, 2, 2, 827, 832, 7, 268, 2, 2, 828, 829, 7, 190, 2, 2, 829, 832, 7, 115, 2, 2, 830, 832, 5, 440, 221, 2, 831, 826, 3, 2, 2, 2, 831, 827, 3, 2, 2, 2, 831, 828, 3, 2, 2, 2, 831, 830, 3, 2, 2, 2, 832, 833, 3, 2, 2, 2, 833, 834, 5, 8, 5, 2, 834, 65, 3, 2, 2, 2, 835, 837, 7, 120, 2, 2, 836, 835, 3, 2, 2, 2, 836, 837, 3, 2, 2, 2, 837, 838, 3, 2, 2, 2, 838, 839, 7, 282, 2, 2, 839, 840, 7, 280, 2, 2, 840, 842, 5, 440, 221, 2, 841, 843, 5, 86, 44, 2, 842, 841, 3, 2, 2, 2, 842, 843, 3, 2, 2, 2, 843, 844, 3, 2, 2, 2, 844, 845, 5, 72, 37, 2, 845, 67, 3, 2, 2, 2, 846, 847, 7, 56, 2, 2, 847, 851, 7, 280, 2, 2, 848, 849, 7, 131, 2, 2, 849, 850, 7, 190, 2, 2, 850, 852, 7, 103, 2, 2, 851, 848, 3, 2, 2, 2, 851, 852, 3, 2, 2, 2, 852, 853, 3, 2, 2, 2, 853, 855, 5, 330, 166, 2, 854, 856, 5, 86, 44, 2, 855, 854, 3, 2, 2, 2, 855, 856, 3, 2, 2, 2, 856, 857, 3, 2, 2, 2, 857, 858, 5, 72, 37, 2, 858, 69, 3, 2, 2, 2, 859, 866, 7, 56, 2, 2, 860, 861, 7, 163, 2, 2, 861, 867, 7, 282, 2, 2, 862, 864, 9, 8, 2, 2, 863, 862, 3, 2, 2, 2, 863, 864, 3, 2, 2, 2, 864, 865, 3, 2, 2, 2, 865, 867, 7, 307, 2, 2, 866, 860, 3, 2, 2, 2, 866, 863, 3, 2, 2, 2, 867, 868, 3, 2, 2, 2, 868, 869, 7, 280, 2, 2, 869, 871, 5, 440, 221, 2, 870, 872, 5, 86, 44, 2, 871, 870, 3, 2, 2, 2, 871, 872, 3, 2, 2, 2, 872, 873, 3, 2, 2, 2, 873, 874, 5, 72, 37, 2, 874, 71, 3, 2, 2, 2, 875, 877, 7, 11, 2, 2, 876, 875, 3, 2, 2, 2, 876, 877, 3, 2, 2, 2, 877, 878, 3, 2, 2, 2, 878, 879, 7, 362, 2, 2, 879, 880, 5, 282, 142, 2, 880, 881, 7, 365, 2, 2, 881, 891, 3, 2, 2, 2, 882, 884, 7, 11, 2, 2, 883, 882, 3, 2, 2, 2, 883, 884, 3, 2, 2, 2, 884, 885, 3, 2, 2, 2, 885, 891, 5, 282, 142, 2, 886, 887, 7, 362, 2, 2, 887, 888, 5, 74, 38, 2, 888, 889, 7, 365, 2, 2, 889, 891, 3, 2, 2, 2, 890, 876, 3, 2, 2, 2, 890, 883, 3, 2, 2, 2, 890, 886, 3, 2, 2, 2, 891, 893, 3, 2, 2, 2, 892, 894, 5, 92, 47, 2, 893, 892, 3, 2, 2, 2, 893, 894, 3, 2, 2, 2, 894, 73, 3, 2, 2, 2, 895, 900, 5, 76, 39, 2, 896, 897, 7, 343, 2, 2, 897, 899, 5, 76, 39, 2, 898, 896, 3, 2, 2, 2, 899, 902, 3, 2, 2, 2, 900, 898, 3, 2, 2, 2, 900, 901, 3, 2, 2, 2, 901, 75, 3, 2, 2, 2, 902, 900, 3, 2, 2, 2, 903, 904, 5, 78, 40, 2, 904, 906, 5, 120, 61, 2, 905, 907, 5, 122, 62, 2, 906, 905, 3, 2, 2, 2, 906, 907, 3, 2, 2, 2, 907, 911, 3, 2, 2, 2, 908, 910, 5, 124, 63, 2, 909, 908, 3, 2, 2, 2, 910, 913, 3, 2, 2, 2, 911, 909, 3, 2, 2, 2, 911, 912, 3, 2, 2, 2, 912, 917, 3, 2, 2, 2, 913, 911, 3, 2, 2, 2, 914, 916, 5, 80, 41, 2, 915, 914, 3, 2, 2, 2, 916, 919, 3, 2, 2, 2, 917, 915, 3, 2, 2, 2, 917, 918, 3, 2, 2, 2, 918, 926, 3, 2, 2, 2, 919, 917, 3, 2, 2, 2, 920, 921, 7, 51, 2, 2, 921, 923, 5, 440, 221, 2, 922, 920, 3, 2, 2, 2, 922, 923, 3, 2, 2, 2, 923, 924, 3, 2, 2, 2, 924, 926, 5, 82, 42, 2, 925, 903, 3, 2, 2, 2, 925, 922, 3, 2, 2, 2, 926, 77, 3, 2, 2, 2, 927, 928, 5, 440, 221, 2, 928, 79, 3, 2, 2, 2, 929, 962, 5, 126, 64, 2, 930, 932, 7, 190, 2, 2, 931, 930, 3, 2, 2, 2, 931, 932, 3, 2, 2, 2, 932, 933, 3, 2, 2, 2, 933, 962, 7, 192, 2, 2, 934, 935, 7, 214, 2, 2, 935, 962, 7, 155, 2, 2, 936, 962, 7, 296, 2, 2, 937, 938, 7, 224, 2, 2, 938, 939, 5, 330, 166, 2, 939, 940, 7, 362, 2, 2, 940, 941, 5, 440, 221, 2, 941, 945, 7, 365, 2, 2, 942, 944, 5, 84, 43, 2, 943, 942, 3, 2, 2, 2, 944, 947, 3, 2, 2, 2, 945, 943, 3, 2, 2, 2, 945, 946, 3, 2, 2, 2, 946, 962, 3, 2, 2, 2, 947, 945, 3, 2, 2, 2, 948, 949, 7, 130, 2, 2, 949, 950, 7, 362, 2, 2, 950, 955, 7, 372, 2, 2, 951, 952, 7, 343, 2, 2, 952, 954, 7, 372, 2, 2, 953, 951, 3, 2, 2, 2, 954, 957, 3, 2, 2, 2, 955, 953, 3, 2, 2, 2, 955, 956, 3, 2, 2, 2, 956, 958, 3, 2, 2, 2, 957, 955, 3, 2, 2, 2, 958, 962, 7, 365, 2, 2, 959, 962, 7, 15, 2, 2, 960, 962, 7, 94, 2, 2, 961, 929, 3, 2, 2, 2, 961, 931, 3, 2, 2, 2, 961, 934, 3, 2, 2, 2, 961, 936, 3, 2, 2, 2, 961, 937, 3, 2, 2, 2, 961, 948, 3, 2, 2, 2, 961, 959, 3, 2, 2, 2, 961, 960, 3, 2, 2, 2, 962, 81, 3, 2, 2, 2, 963, 964, 7, 214, 2, 2, 964, 966, 7, 155, 2, 2, 965, 967, 7, 40, 2, 2, 966, 965, 3, 2, 2, 2, 966, 967, 3, 2, 2, 2, 967, 968, 3, 2, 2, 2, 968, 969, 7, 362, 2, 2, 969, 971, 5, 440, 221, 2, 970, 972, 9, 9, 2, 2, 971, 970, 3, 2, 2, 2, 971, 972, 3, 2, 2, 2, 972, 980, 3, 2, 2, 2, 973, 974, 7, 343, 2, 2, 974, 976, 5, 440, 221, 2, 975, 977, 9, 9, 2, 2, 976, 975, 3, 2, 2, 2, 976, 977, 3, 2, 2, 2, 977, 979, 3, 2, 2, 2, 978, 973, 3, 2, 2, 2, 979, 982, 3, 2, 2, 2, 980, 978, 3, 2, 2, 2, 980, 981, 3, 2, 2, 2, 981, 983, 3, 2, 2, 2, 982, 980, 3, 2, 2, 2, 983, 985, 7, 365, 2, 2, 984, 986, 7, 94, 2, 2, 985, 984, 3, 2, 2, 2, 985, 986, 3, 2, 2, 2, 986, 988, 3, 2, 2, 2, 987, 989, 5, 238, 120, 2, 988, 987, 3, 2, 2, 2, 988, 989, 3, 2, 2, 2, 989, 1021, 3, 2, 2, 2, 990, 991, 7, 113, 2, 2, 991, 992, 7, 155, 2, 2, 992, 993, 7, 362, 2, 2, 993, 998, 5, 440, 221, 2, 994, 995, 7, 343, 2, 2, 995, 997, 5, 440, 221, 2, 996, 994, 3, 2, 2, 2, 997, 1000, 3, 2, 2, 2, 998, 996, 3, 2, 2, 2, 998, 999, 3, 2, 2, 2, 999, 1001, 3, 2, 2, 2, 1000, 998, 3, 2, 2, 2, 1001, 1002, 7, 365, 2, 2, 1002, 1003, 7, 224, 2, 2, 1003, 1004, 5, 330, 166, 2, 1004, 1005, 7, 362, 2, 2, 1005, 1010, 5, 440, 221, 2, 1006, 1007, 7, 343, 2, 2, 1007, 1009, 5, 440, 221, 2, 1008, 1006, 3, 2, 2, 2, 1009, 1012, 3, 2, 2, 2, 1010, 1008, 3, 2, 2, 2, 1010, 1011, 3, 2, 2, 2, 1011, 1013, 3, 2, 2, 2, 1012, 1010, 3, 2, 2, 2, 1013, 1017, 7, 365, 2, 2, 1014, 1016, 5, 84, 43, 2, 1015, 1014, 3, 2, 2, 2, 1016, 1019, 3, 2, 2, 2, 1017, 1015, 3, 2, 2, 2, 1017, 1018, 3, 2, 2, 2, 1018, 1021, 3, 2, 2, 2, 1019, 1017, 3, 2, 2, 2, 1020, 963, 3, 2, 2, 2, 1020, 990, 3, 2, 2, 2, 1021, 83, 3, 2, 2, 2, 1022, 1023, 7, 197, 2, 2, 1023, 1032, 9, 10, 2, 2, 1024, 1025, 7, 185, 2, 2, 1025, 1033, 7, 3, 2, 2, 1026, 1033, 7, 228, 2, 2, 1027, 1028, 7, 253, 2, 2, 1028, 1033, 7, 192, 2, 2, 1029, 1030, 7, 253, 2, 2, 1030, 1033, 7, 72, 2, 2, 1031, 1033, 7, 31, 2, 2, 1032, 1024, 3, 2, 2, 2, 1032, 1026, 3, 2, 2, 2, 1032, 1027, 3, 2, 2, 2, 1032, 1029, 3, 2, 2, 2, 1032, 1031, 3, 2, 2, 2, 1033, 85, 3, 2, 2, 2, 1034, 1036, 5, 88, 45, 2, 1035, 1034, 3, 2, 2, 2, 1036, 1037, 3, 2, 2, 2, 1037, 1035, 3, 2, 2, 2, 1037, 1038, 3, 2, 2, 2, 1038, 87, 3, 2, 2, 2, 1039, 1040, 7, 343, 2, 2, 1040, 1043, 5, 90, 46, 2, 1041, 1043, 5, 102, 52, 2, 1042, 1039, 3, 2, 2, 2, 1042, 1041, 3, 2, 2, 2, 1043, 89, 3, 2, 2, 2, 1044, 1046, 7, 185, 2, 2, 1045, 1044, 3, 2, 2, 2, 1045, 1046, 3, 2, 2, 2, 1046, 1047, 3, 2, 2, 2, 1047, 1048, 9, 11, 2, 2, 1048, 91, 3, 2, 2, 2, 1049, 1051, 5, 94, 48, 2, 1050, 1049, 3, 2, 2, 2, 1051, 1052, 3, 2, 2, 2, 1052, 1050, 3, 2, 2, 2, 1052, 1053, 3, 2, 2, 2, 1053, 93, 3, 2, 2, 2, 1054, 1055, 7, 197, 2, 2, 1055, 1056, 7, 47, 2, 2, 1056, 1057, 9, 12, 2, 2, 1057, 1065, 7, 239, 2, 2, 1058, 1065, 5, 96, 49, 2, 1059, 1065, 5, 98, 50, 2, 1060, 1065, 5, 100, 51, 2, 1061, 1065, 5, 102, 52, 2, 1062, 1065, 5, 108, 55, 2, 1063, 1065, 5, 110, 56, 2, 1064, 1054, 3, 2, 2, 2, 1064, 1058, 3, 2, 2, 2, 1064, 1059, 3, 2, 2, 2, 1064, 1060, 3, 2, 2, 2, 1064, 1061, 3, 2, 2, 2, 1064, 1062, 3, 2, 2, 2, 1064, 1063, 3, 2, 2, 2, 1065, 95, 3, 2, 2, 2, 1066, 1067, 7, 250, 2, 2, 1067, 1068, 7, 57, 2, 2, 1068, 1085, 9, 13, 2, 2, 1069, 1070, 9, 14, 2, 2, 1070, 1085, 7, 372, 2, 2, 1071, 1085, 7, 187, 2, 2, 1072, 1085, 9, 15, 2, 2, 1073, 1074, 7, 272, 2, 2, 1074, 1077, 7, 362, 2, 2, 1075, 1078, 5, 440, 221, 2, 1076, 1078, 7, 372, 2, 2, 1077, 1075, 3, 2, 2, 2, 1077, 1076, 3, 2, 2, 2, 1078, 1079, 3, 2, 2, 2, 1079, 1077, 3, 2, 2, 2, 1079, 1080, 3, 2, 2, 2, 1080, 1081, 3, 2, 2, 2, 1081, 1085, 7, 365, 2, 2, 1082, 1083, 7, 281, 2, 2, 1083, 1085, 5, 440, 221, 2, 1084, 1066, 3, 2, 2, 2, 1084, 1069, 3, 2, 2, 2, 1084, 1071, 3, 2, 2, 2, 1084, 1072, 3, 2, 2, 2, 1084, 1073, 3, 2, 2, 2, 1084, 1082, 3, 2, 2, 2, 1085, 97, 3, 2, 2, 2, 1086, 1088, 7, 136, 2, 2, 1087, 1086, 3, 2, 2, 2, 1087, 1088, 3, 2, 2, 2, 1088, 1089, 3, 2, 2, 2, 1089, 1090, 7, 134, 2, 2, 1090, 1120, 5, 440, 221, 2, 1091, 1092, 7, 311, 2, 2, 1092, 1120, 7, 226, 2, 2, 1093, 1094, 7, 86, 2, 2, 1094, 1095, 7, 27, 2, 2, 1095, 1096, 7, 125, 2, 2, 1096, 1097, 7, 362, 2, 2, 1097, 1102, 5, 440, 221, 2, 1098, 1099, 7, 343, 2, 2, 1099, 1101, 5, 440, 221, 2, 1100, 1098, 3, 2, 2, 2, 1101, 1104, 3, 2, 2, 2, 1102, 1100, 3, 2, 2, 2, 1102, 1103, 3, 2, 2, 2, 1103, 1105, 3, 2, 2, 2, 1104, 1102, 3, 2, 2, 2, 1105, 1106, 7, 365, 2, 2, 1106, 1120, 3, 2, 2, 2, 1107, 1109, 7, 190, 2, 2, 1108, 1107, 3, 2, 2, 2, 1108, 1109, 3, 2, 2, 2, 1109, 1110, 3, 2, 2, 2, 1110, 1120, 7, 169, 2, 2, 1111, 1112, 7, 48, 2, 2, 1112, 1120, 9, 16, 2, 2, 1113, 1114, 7, 76, 2, 2, 1114, 1120, 7, 198, 2, 2, 1115, 1116, 7, 311, 2, 2, 1116, 1117, 7, 228, 2, 2, 1117, 1118, 7, 197, 2, 2, 1118, 1120, 7, 89, 2, 2, 1119, 1087, 3, 2, 2, 2, 1119, 1091, 3, 2, 2, 2, 1119, 1093, 3, 2, 2, 2, 1119, 1108, 3, 2, 2, 2, 1119, 1111, 3, 2, 2, 2, 1119, 1113, 3, 2, 2, 2, 1119, 1115, 3, 2, 2, 2, 1120, 99, 3, 2, 2, 2, 1121, 1123, 7, 296, 2, 2, 1122, 1121, 3, 2, 2, 2, 1122, 1123, 3, 2, 2, 2, 1123, 1124, 3, 2, 2, 2, 1124, 1125, 7, 214, 2, 2, 1125, 1126, 7, 136, 2, 2, 1126, 1127, 7, 362, 2, 2, 1127, 1132, 5, 440, 221, 2, 1128, 1129, 7, 343, 2, 2, 1129, 1131, 5, 440, 221, 2, 1130, 1128, 3, 2, 2, 2, 1131, 1134, 3, 2, 2, 2, 1132, 1130, 3, 2, 2, 2, 1132, 1133, 3, 2, 2, 2, 1133, 1135, 3, 2, 2, 2, 1134, 1132, 3, 2, 2, 2, 1135, 1136, 7, 365, 2, 2, 1136, 1140, 3, 2, 2, 2, 1137, 1138, 7, 311, 2, 2, 1138, 1140, 7, 64, 2, 2, 1139, 1122, 3, 2, 2, 2, 1139, 1137, 3, 2, 2, 2, 1140, 101, 3, 2, 2, 2, 1141, 1146, 5, 104, 53, 2, 1142, 1143, 7, 273, 2, 2, 1143, 1144, 7, 11, 2, 2, 1144, 1146, 5, 440, 221, 2, 1145, 1141, 3, 2, 2, 2, 1145, 1142, 3, 2, 2, 2, 1146, 103, 3, 2, 2, 2, 1147, 1148, 7, 238, 2, 2, 1148, 1149, 7, 114, 2, 2, 1149, 1153, 7, 78, 2, 2, 1150, 1152, 5, 106, 54, 2, 1151, 1150, 3, 2, 2, 2, 1152, 1155, 3, 2, 2, 2, 1153, 1151, 3, 2, 2, 2, 1153, 1154, 3, 2, 2, 2, 1154, 105, 3, 2, 2, 2, 1155, 1153, 3, 2, 2, 2, 1156, 1157, 7, 108, 2, 2, 1157, 1158, 7, 283, 2, 2, 1158, 1159, 7, 27, 2, 2, 1159, 1163, 5, 384, 193, 2, 1160, 1161, 7, 97, 2, 2, 1161, 1162, 7, 27, 2, 2, 1162, 1164, 5, 384, 193, 2, 1163, 1160, 3, 2, 2, 2, 1163, 1164, 3, 2, 2, 2, 1164, 1184, 3, 2, 2, 2, 1165, 1166, 7, 43, 2, 2, 1166, 1167, 7, 152, 2, 2, 1167, 1168, 7, 283, 2, 2, 1168, 1169, 7, 27, 2, 2, 1169, 1184, 5, 384, 193, 2, 1170, 1171, 7, 172, 2, 2, 1171, 1172, 7, 156, 2, 2, 1172, 1173, 7, 283, 2, 2, 1173, 1174, 7, 27, 2, 2, 1174, 1184, 5, 384, 193, 2, 1175, 1176, 7, 162, 2, 2, 1176, 1177, 7, 283, 2, 2, 1177, 1178, 7, 27, 2, 2, 1178, 1184, 5, 384, 193, 2, 1179, 1180, 7, 192, 2, 2, 1180, 1181, 7, 74, 2, 2, 1181, 1182, 7, 11, 2, 2, 1182, 1184, 5, 384, 193, 2, 1183, 1156, 3, 2, 2, 2, 1183, 1165, 3, 2, 2, 2, 1183, 1170, 3, 2, 2, 2, 1183, 1175, 3, 2, 2, 2, 1183, 1179, 3, 2, 2, 2, 1184, 107, 3, 2, 2, 2, 1185, 1186, 7, 197, 2, 2, 1186, 1190, 5, 440, 221, 2, 1187, 1188, 7, 284, 2, 2, 1188, 1190, 5, 440, 221, 2, 1189, 1185, 3, 2, 2, 2, 1189, 1187, 3, 2, 2, 2, 1190, 109, 3, 2, 2, 2, 1191, 1193, 7, 15, 2, 2, 1192, 1194, 7, 348, 2, 2, 1193, 1192, 3, 2, 2, 2, 1193, 1194, 3, 2, 2, 2, 1194, 1195, 3, 2, 2, 2, 1195, 1219, 5, 384, 193, 2, 1196, 1198, 7, 45, 2, 2, 1197, 1199, 7, 348, 2, 2, 1198, 1197, 3, 2, 2, 2, 1198, 1199, 3, 2, 2, 2, 1199, 1200, 3, 2, 2, 2, 1200, 1219, 5, 384, 193, 2, 1201, 1203, 7, 72, 2, 2, 1202, 1201, 3, 2, 2, 2, 1202, 1203, 3, 2, 2, 2, 1203, 1207, 3, 2, 2, 2, 1204, 1205, 7, 36, 2, 2, 1205, 1208, 7, 253, 2, 2, 1206, 1208, 7, 37, 2, 2, 1207, 1204, 3, 2, 2, 2, 1207, 1206, 3, 2, 2, 2, 1208, 1210, 3, 2, 2, 2, 1209, 1211, 7, 348, 2, 2, 1210, 1209, 3, 2, 2, 2, 1210, 1211, 3, 2, 2, 2, 1211, 1212, 3, 2, 2, 2, 1212, 1219, 5, 384, 193, 2, 1213, 1215, 7, 96, 2, 2, 1214, 1216, 7, 348, 2, 2, 1215, 1214, 3, 2, 2, 2, 1215, 1216, 3, 2, 2, 2, 1216, 1217, 3, 2, 2, 2, 1217, 1219, 5, 384, 193, 2, 1218, 1191, 3, 2, 2, 2, 1218, 1196, 3, 2, 2, 2, 1218, 1202, 3, 2, 2, 2, 1218, 1213, 3, 2, 2, 2, 1219, 111, 3, 2, 2, 2, 1220, 1221, 7, 7, 2, 2, 1221, 1222, 7, 280, 2, 2, 1222, 1223, 5, 330, 166, 2, 1223, 1224, 5, 114, 58, 2, 1224, 113, 3, 2, 2, 2, 1225, 1226, 5, 116, 59, 2, 1226, 115, 3, 2, 2, 2, 1227, 1230, 7, 4, 2, 2, 1228, 1229, 7, 51, 2, 2, 1229, 1231, 5, 440, 221, 2, 1230, 1228, 3, 2, 2, 2, 1230, 1231, 3, 2, 2, 2, 1231, 1232, 3, 2, 2, 2, 1232, 1233, 5, 118, 60, 2, 1233, 117, 3, 2, 2, 2, 1234, 1235, 7, 214, 2, 2, 1235, 1237, 7, 155, 2, 2, 1236, 1238, 7, 40, 2, 2, 1237, 1236, 3, 2, 2, 2, 1237, 1238, 3, 2, 2, 2, 1238, 1239, 3, 2, 2, 2, 1239, 1240, 7, 362, 2, 2, 1240, 1242, 5, 440, 221, 2, 1241, 1243, 9, 9, 2, 2, 1242, 1241, 3, 2, 2, 2, 1242, 1243, 3, 2, 2, 2, 1243, 1251, 3, 2, 2, 2, 1244, 1245, 7, 343, 2, 2, 1245, 1247, 5, 440, 221, 2, 1246, 1248, 9, 9, 2, 2, 1247, 1246, 3, 2, 2, 2, 1247, 1248, 3, 2, 2, 2, 1248, 1250, 3, 2, 2, 2, 1249, 1244, 3, 2, 2, 2, 1250, 1253, 3, 2, 2, 2, 1251, 1249, 3, 2, 2, 2, 1251, 1252, 3, 2, 2, 2, 1252, 1254, 3, 2, 2, 2, 1253, 1251, 3, 2, 2, 2, 1254, 1256, 7, 365, 2, 2, 1255, 1257, 7, 94, 2, 2, 1256, 1255, 3, 2, 2, 2, 1256, 1257, 3, 2, 2, 2, 1257, 1259, 3, 2, 2, 2, 1258, 1260, 5, 238, 120, 2, 1259, 1258, 3, 2, 2, 2, 1259, 1260, 3, 2, 2, 2, 1260, 1297, 3, 2, 2, 2, 1261, 1262, 7, 113, 2, 2, 1262, 1263, 7, 155, 2, 2, 1263, 1264, 7, 362, 2, 2, 1264, 1269, 5, 440, 221, 2, 1265, 1266, 7, 343, 2, 2, 1266, 1268, 5, 440, 221, 2, 1267, 1265, 3, 2, 2, 2, 1268, 1271, 3, 2, 2, 2, 1269, 1267, 3, 2, 2, 2, 1269, 1270, 3, 2, 2, 2, 1270, 1272, 3, 2, 2, 2, 1271, 1269, 3, 2, 2, 2, 1272, 1273, 7, 365, 2, 2, 1273, 1274, 7, 224, 2, 2, 1274, 1275, 5, 330, 166, 2, 1275, 1276, 7, 362, 2, 2, 1276, 1281, 5, 440, 221, 2, 1277, 1278, 7, 343, 2, 2, 1278, 1280, 5, 440, 221, 2, 1279, 1277, 3, 2, 2, 2, 1280, 1283, 3, 2, 2, 2, 1281, 1279, 3, 2, 2, 2, 1281, 1282, 3, 2, 2, 2, 1282, 1284, 3, 2, 2, 2, 1283, 1281, 3, 2, 2, 2, 1284, 1288, 7, 365, 2, 2, 1285, 1287, 5, 84, 43, 2, 1286, 1285, 3, 2, 2, 2, 1287, 1290, 3, 2, 2, 2, 1288, 1286, 3, 2, 2, 2, 1288, 1289, 3, 2, 2, 2, 1289, 1297, 3, 2, 2, 2, 1290, 1288, 3, 2, 2, 2, 1291, 1292, 7, 72, 2, 2, 1292, 1293, 5, 384, 193, 2, 1293, 1294, 7, 112, 2, 2, 1294, 1295, 5, 440, 221, 2, 1295, 1297, 3, 2, 2, 2, 1296, 1234, 3, 2, 2, 2, 1296, 1261, 3, 2, 2, 2, 1296, 1291, 3, 2, 2, 2, 1297, 119, 3, 2, 2, 2, 1298, 1344, 7, 35, 2, 2, 1299, 1344, 7, 20, 2, 2, 1300, 1344, 7, 21, 2, 2, 1301, 1344, 7, 22, 2, 2, 1302, 1344, 7, 23, 2, 2, 1303, 1344, 7, 24, 2, 2, 1304, 1344, 7, 65, 2, 2, 1305, 1344, 7, 66, 2, 2, 1306, 1344, 7, 69, 2, 2, 1307, 1344, 7, 70, 2, 2, 1308, 1310, 7, 88, 2, 2, 1309, 1311, 7, 212, 2, 2, 1310, 1309, 3, 2, 2, 2, 1310, 1311, 3, 2, 2, 2, 1311, 1344, 3, 2, 2, 2, 1312, 1344, 7, 111, 2, 2, 1313, 1344, 7, 141, 2, 2, 1314, 1344, 7, 142, 2, 2, 1315, 1344, 7, 143, 2, 2, 1316, 1344, 7, 144, 2, 2, 1317, 1344, 7, 145, 2, 2, 1318, 1344, 7, 182, 2, 2, 1319, 1344, 7, 184, 2, 2, 1320, 1344, 7, 194, 2, 2, 1321, 1344, 7, 193, 2, 2, 1322, 1344, 7, 211, 2, 2, 1323, 1344, 7, 223, 2, 2, 1324, 1325, 7, 230, 2, 2, 1325, 1344, 7, 306, 2, 2, 1326, 1344, 7, 260, 2, 2, 1327, 1344, 7, 259, 2, 2, 1328, 1344, 7, 261, 2, 2, 1329, 1344, 7, 263, 2, 2, 1330, 1344, 7, 262, 2, 2, 1331, 1344, 7, 274, 2, 2, 1332, 1344, 7, 279, 2, 2, 1333, 1344, 7, 286, 2, 2, 1334, 1344, 7, 287, 2, 2, 1335, 1344, 7, 304, 2, 2, 1336, 1344, 7, 305, 2, 2, 1337, 1344, 7, 315, 2, 2, 1338, 1341, 5, 440, 221, 2, 1339, 1340, 7, 359, 2, 2, 1340, 1342, 9, 17, 2, 2, 1341, 1339, 3, 2, 2, 2, 1341, 1342, 3, 2, 2, 2, 1342, 1344, 3, 2, 2, 2, 1343, 1298, 3, 2, 2, 2, 1343, 1299, 3, 2, 2, 2, 1343, 1300, 3, 2, 2, 2, 1343, 1301, 3, 2, 2, 2, 1343, 1302, 3, 2, 2, 2, 1343, 1303, 3, 2, 2, 2, 1343, 1304, 3, 2, 2, 2, 1343, 1305, 3, 2, 2, 2, 1343, 1306, 3, 2, 2, 2, 1343, 1307, 3, 2, 2, 2, 1343, 1308, 3, 2, 2, 2, 1343, 1312, 3, 2, 2, 2, 1343, 1313, 3, 2, 2, 2, 1343, 1314, 3, 2, 2, 2, 1343, 1315, 3, 2, 2, 2, 1343, 1316, 3, 2, 2, 2, 1343, 1317, 3, 2, 2, 2, 1343, 1318, 3, 2, 2, 2, 1343, 1319, 3, 2, 2, 2, 1343, 1320, 3, 2, 2, 2, 1343, 1321, 3, 2, 2, 2, 1343, 1322, 3, 2, 2, 2, 1343, 1323, 3, 2, 2, 2, 1343, 1324, 3, 2, 2, 2, 1343, 1326, 3, 2, 2, 2, 1343, 1327, 3, 2, 2, 2, 1343, 1328, 3, 2, 2, 2, 1343, 1329, 3, 2, 2, 2, 1343, 1330, 3, 2, 2, 2, 1343, 1331, 3, 2, 2, 2, 1343, 1332, 3, 2, 2, 2, 1343, 1333, 3, 2, 2, 2, 1343, 1334, 3, 2, 2, 2, 1343, 1335, 3, 2, 2, 2, 1343, 1336, 3, 2, 2, 2, 1343, 1337, 3, 2, 2, 2, 1343, 1338, 3, 2, 2, 2, 1344, 121, 3, 2, 2, 2, 1345, 1346, 7, 362, 2, 2, 1346, 1348, 9, 18, 2, 2, 1347, 1349, 9, 19, 2, 2, 1348, 1347, 3, 2, 2, 2, 1348, 1349, 3, 2, 2, 2, 1349, 1352, 3, 2, 2, 2, 1350, 1351, 7, 343, 2, 2, 1351, 1353, 7, 372, 2, 2, 1352, 1350, 3, 2, 2, 2, 1352, 1353, 3, 2, 2, 2, 1353, 1354, 3, 2, 2, 2, 1354, 1355, 7, 365, 2, 2, 1355, 123, 3, 2, 2, 2, 1356, 1358, 7, 190, 2, 2, 1357, 1356, 3, 2, 2, 2, 1357, 1358, 3, 2, 2, 2, 1358, 1359, 3, 2, 2, 2, 1359, 1368, 7, 192, 2, 2, 1360, 1361, 7, 36, 2, 2, 1361, 1362, 7, 253, 2, 2, 1362, 1368, 5, 440, 221, 2, 1363, 1365, 7, 190, 2, 2, 1364, 1363, 3, 2, 2, 2, 1364, 1365, 3, 2, 2, 2, 1365, 1366, 3, 2, 2, 2, 1366, 1368, 9, 20, 2, 2, 1367, 1357, 3, 2, 2, 2, 1367, 1360, 3, 2, 2, 2, 1367, 1364, 3, 2, 2, 2, 1368, 125, 3, 2, 2, 2, 1369, 1371, 7, 342, 2, 2, 1370, 1369, 3, 2, 2, 2, 1370, 1371, 3, 2, 2, 2, 1371, 1372, 3, 2, 2, 2, 1372, 1373, 7, 348, 2, 2, 1373, 1382, 5, 384, 193, 2, 1374, 1376, 7, 311, 2, 2, 1375, 1374, 3, 2, 2, 2, 1375, 1376, 3, 2, 2, 2, 1376, 1377, 3, 2, 2, 2, 1377, 1379, 7, 72, 2, 2, 1378, 1380, 5, 384, 193, 2, 1379, 1378, 3, 2, 2, 2, 1379, 1380, 3, 2, 2, 2, 1380, 1382, 3, 2, 2, 2, 1381, 1370, 3, 2, 2, 2, 1381, 1375, 3, 2, 2, 2, 1382, 127, 3, 2, 2, 2, 1383, 1384, 7, 56, 2, 2, 1384, 1388, 9, 21, 2, 2, 1385, 1386, 7, 131, 2, 2, 1386, 1387, 7, 190, 2, 2, 1387, 1389, 7, 103, 2, 2, 1388, 1385, 3, 2, 2, 2, 1388, 1389, 3, 2, 2, 2, 1389, 1390, 3, 2, 2, 2, 1390, 1394, 5, 384, 193, 2, 1391, 1393, 5, 130, 66, 2, 1392, 1391, 3, 2, 2, 2, 1393, 1396, 3, 2, 2, 2, 1394, 1392, 3, 2, 2, 2, 1394, 1395, 3, 2, 2, 2, 1395, 129, 3, 2, 2, 2, 1396, 1394, 3, 2, 2, 2, 1397, 1398, 7, 45, 2, 2, 1398, 1402, 5, 384, 193, 2, 1399, 1400, 7, 164, 2, 2, 1400, 1402, 5, 384, 193, 2, 1401, 1397, 3, 2, 2, 2, 1401, 1399, 3, 2, 2, 2, 1402, 131, 3, 2, 2, 2, 1403, 1411, 7, 7, 2, 2, 1404, 1407, 7, 56, 2, 2, 1405, 1406, 7, 200, 2, 2, 1406, 1408, 7, 226, 2, 2, 1407, 1405, 3, 2, 2, 2, 1407, 1408, 3, 2, 2, 2, 1408, 1411, 3, 2, 2, 2, 1409, 1411, 7, 226, 2, 2, 1410, 1403, 3, 2, 2, 2, 1410, 1404, 3, 2, 2, 2, 1410, 1409, 3, 2, 2, 2, 1410, 1411, 3, 2, 2, 2, 1411, 1412, 3, 2, 2, 2, 1412, 1413, 7, 118, 2, 2, 1413, 1415, 5, 440, 221, 2, 1414, 1416, 5, 150, 76, 2, 1415, 1414, 3, 2, 2, 2, 1415, 1416, 3, 2, 2, 2, 1416, 1417, 3, 2, 2, 2, 1417, 1419, 5, 134, 68, 2, 1418, 1420, 9, 22, 2, 2, 1419, 1418, 3, 2, 2, 2, 1419, 1420, 3, 2, 2, 2, 1420, 1422, 3, 2, 2, 2, 1421, 1423, 5, 50, 26, 2, 1422, 1421, 3, 2, 2, 2, 1422, 1423, 3, 2, 2, 2, 1423, 1424, 3, 2, 2, 2, 1424, 1425, 5, 8, 5, 2, 1425, 133, 3, 2, 2, 2, 1426, 1427, 9, 23, 2, 2, 1427, 1429, 5, 120, 61, 2, 1428, 1430, 5, 122, 62, 2, 1429, 1428, 3, 2, 2, 2, 1429, 1430, 3, 2, 2, 2, 1430, 135, 3, 2, 2, 2, 1431, 1439, 7, 7, 2, 2, 1432, 1435, 7, 56, 2, 2, 1433, 1434, 7, 200, 2, 2, 1434, 1436, 7, 226, 2, 2, 1435, 1433, 3, 2, 2, 2, 1435, 1436, 3, 2, 2, 2, 1436, 1439, 3, 2, 2, 2, 1437, 1439, 7, 226, 2, 2, 1438, 1431, 3, 2, 2, 2, 1438, 1432, 3, 2, 2, 2, 1438, 1437, 3, 2, 2, 2, 1438, 1439, 3, 2, 2, 2, 1439, 1440, 3, 2, 2, 2, 1440, 1441, 7, 207, 2, 2, 1441, 1442, 5, 440, 221, 2, 1442, 1443, 9, 22, 2, 2, 1443, 1444, 5, 138, 70, 2, 1444, 1448, 7, 95, 2, 2, 1445, 1446, 5, 440, 221, 2, 1446, 1447, 7, 367, 2, 2, 1447, 1449, 3, 2, 2, 2, 1448, 1445, 3, 2, 2, 2, 1448, 1449, 3, 2, 2, 2, 1449, 137, 3, 2, 2, 2, 1450, 1451, 5, 140, 71, 2, 1451, 1457, 7, 367, 2, 2, 1452, 1453, 5, 140, 71, 2, 1453, 1454, 7, 367, 2, 2, 1454, 1456, 3, 2, 2, 2, 1455, 1452, 3, 2, 2, 2, 1456, 1459, 3, 2, 2, 2, 1457, 1455, 3, 2, 2, 2, 1457, 1458, 3, 2, 2, 2, 1458, 139, 3, 2, 2, 2, 1459, 1457, 3, 2, 2, 2, 1460, 1474, 5, 52, 27, 2, 1461, 1462, 7, 118, 2, 2, 1462, 1464, 5, 440, 221, 2, 1463, 1465, 5, 150, 76, 2, 1464, 1463, 3, 2, 2, 2, 1464, 1465, 3, 2, 2, 2, 1465, 1466, 3, 2, 2, 2, 1466, 1467, 5, 134, 68, 2, 1467, 1474, 3, 2, 2, 2, 1468, 1469, 9, 24, 2, 2, 1469, 1471, 5, 440, 221, 2, 1470, 1472, 5, 150, 76, 2, 1471, 1470, 3, 2, 2, 2, 1471, 1472, 3, 2, 2, 2, 1472, 1474, 3, 2, 2, 2, 1473, 1460, 3, 2, 2, 2, 1473, 1461, 3, 2, 2, 2, 1473, 1468, 3, 2, 2, 2, 1474, 141, 3, 2, 2, 2, 1475, 1483, 7, 7, 2, 2, 1476, 1479, 7, 56, 2, 2, 1477, 1478, 7, 200, 2, 2, 1478, 1480, 7, 226, 2, 2, 1479, 1477, 3, 2, 2, 2, 1479, 1480, 3, 2, 2, 2, 1480, 1483, 3, 2, 2, 2, 1481, 1483, 7, 226, 2, 2, 1482, 1475, 3, 2, 2, 2, 1482, 1476, 3, 2, 2, 2, 1482, 1481, 3, 2, 2, 2, 1482, 1483, 3, 2, 2, 2, 1483, 1484, 3, 2, 2, 2, 1484, 1485, 7, 207, 2, 2, 1485, 1486, 7, 25, 2, 2, 1486, 1487, 5, 440, 221, 2, 1487, 1488, 9, 22, 2, 2, 1488, 1489, 5, 144, 73, 2, 1489, 1493, 7, 95, 2, 2, 1490, 1491, 5, 440, 221, 2, 1491, 1492, 7, 367, 2, 2, 1492, 1494, 3, 2, 2, 2, 1493, 1490, 3, 2, 2, 2, 1493, 1494, 3, 2, 2, 2, 1494, 143, 3, 2, 2, 2, 1495, 1496, 5, 146, 74, 2, 1496, 1502, 7, 367, 2, 2, 1497, 1498, 5, 146, 74, 2, 1498, 1499, 7, 367, 2, 2, 1499, 1501, 3, 2, 2, 2, 1500, 1497, 3, 2, 2, 2, 1501, 1504, 3, 2, 2, 2, 1502, 1500, 3, 2, 2, 2, 1502, 1503, 3, 2, 2, 2, 1503, 145, 3, 2, 2, 2, 1504, 1502, 3, 2, 2, 2, 1505, 1509, 5, 52, 27, 2, 1506, 1509, 5, 132, 67, 2, 1507, 1509, 5, 148, 75, 2, 1508, 1505, 3, 2, 2, 2, 1508, 1506, 3, 2, 2, 2, 1508, 1507, 3, 2, 2, 2, 1509, 147, 3, 2, 2, 2, 1510, 1518, 7, 7, 2, 2, 1511, 1514, 7, 56, 2, 2, 1512, 1513, 7, 200, 2, 2, 1513, 1515, 7, 226, 2, 2, 1514, 1512, 3, 2, 2, 2, 1514, 1515, 3, 2, 2, 2, 1515, 1518, 3, 2, 2, 2, 1516, 1518, 7, 226, 2, 2, 1517, 1510, 3, 2, 2, 2, 1517, 1511, 3, 2, 2, 2, 1517, 1516, 3, 2, 2, 2, 1517, 1518, 3, 2, 2, 2, 1518, 1519, 3, 2, 2, 2, 1519, 1520, 9, 24, 2, 2, 1520, 1522, 5, 440, 221, 2, 1521, 1523, 5, 150, 76, 2, 1522, 1521, 3, 2, 2, 2, 1522, 1523, 3, 2, 2, 2, 1523, 1525, 3, 2, 2, 2, 1524, 1526, 5, 154, 78, 2, 1525, 1524, 3, 2, 2, 2, 1525, 1526, 3, 2, 2, 2, 1526, 1528, 3, 2, 2, 2, 1527, 1529, 9, 22, 2, 2, 1528, 1527, 3, 2, 2, 2, 1528, 1529, 3, 2, 2, 2, 1529, 1531, 3, 2, 2, 2, 1530, 1532, 5, 50, 26, 2, 1531, 1530, 3, 2, 2, 2, 1531, 1532, 3, 2, 2, 2, 1532, 1534, 3, 2, 2, 2, 1533, 1535, 5, 278, 140, 2, 1534, 1533, 3, 2, 2, 2, 1534, 1535, 3, 2, 2, 2, 1535, 1536, 3, 2, 2, 2, 1536, 1540, 5, 12, 7, 2, 1537, 1538, 5, 440, 221, 2, 1538, 1539, 7, 367, 2, 2, 1539, 1541, 3, 2, 2, 2, 1540, 1537, 3, 2, 2, 2, 1540, 1541, 3, 2, 2, 2, 1541, 149, 3, 2, 2, 2, 1542, 1543, 7, 362, 2, 2, 1543, 1565, 7, 365, 2, 2, 1544, 1545, 7, 362, 2, 2, 1545, 1550, 5, 152, 77, 2, 1546, 1547, 7, 343, 2, 2, 1547, 1549, 5, 152, 77, 2, 1548, 1546, 3, 2, 2, 2, 1549, 1552, 3, 2, 2, 2, 1550, 1548, 3, 2, 2, 2, 1550, 1551, 3, 2, 2, 2, 1551, 1553, 3, 2, 2, 2, 1552, 1550, 3, 2, 2, 2, 1553, 1554, 7, 365, 2, 2, 1554, 1565, 3, 2, 2, 2, 1555, 1556, 6, 76, 4, 2, 1556, 1561, 5, 152, 77, 2, 1557, 1558, 7, 343, 2, 2, 1558, 1560, 5, 152, 77, 2, 1559, 1557, 3, 2, 2, 2, 1560, 1563, 3, 2, 2, 2, 1561, 1559, 3, 2, 2, 2, 1561, 1562, 3, 2, 2, 2, 1562, 1565, 3, 2, 2, 2, 1563, 1561, 3, 2, 2, 2, 1564, 1542, 3, 2, 2, 2, 1564, 1544, 3, 2, 2, 2, 1564, 1555, 3, 2, 2, 2, 1565, 151, 3, 2, 2, 2, 1566, 1572, 7, 134, 2, 2, 1567, 1572, 7, 202, 2, 2, 1568, 1572, 7, 139, 2, 2, 1569, 1570, 7, 134, 2, 2, 1570, 1572, 7, 202, 2, 2, 1571, 1566, 3, 2, 2, 2, 1571, 1567, 3, 2, 2, 2, 1571, 1568, 3, 2, 2, 2, 1571, 1569, 3, 2, 2, 2, 1571, 1572, 3, 2, 2, 2, 1572, 1573, 3, 2, 2, 2, 1573, 1574, 5, 440, 221, 2, 1574, 1576, 5, 120, 61, 2, 1575, 1577, 5, 122, 62, 2, 1576, 1575, 3, 2, 2, 2, 1576, 1577, 3, 2, 2, 2, 1577, 1581, 3, 2, 2, 2, 1578, 1580, 5, 124, 63, 2, 1579, 1578, 3, 2, 2, 2, 1580, 1583, 3, 2, 2, 2, 1581, 1579, 3, 2, 2, 2, 1581, 1582, 3, 2, 2, 2, 1582, 1585, 3, 2, 2, 2, 1583, 1581, 3, 2, 2, 2, 1584, 1586, 5, 126, 64, 2, 1585, 1584, 3, 2, 2, 2, 1585, 1586, 3, 2, 2, 2, 1586, 1609, 3, 2, 2, 2, 1587, 1593, 5, 440, 221, 2, 1588, 1594, 7, 134, 2, 2, 1589, 1594, 7, 202, 2, 2, 1590, 1594, 7, 139, 2, 2, 1591, 1592, 7, 134, 2, 2, 1592, 1594, 7, 202, 2, 2, 1593, 1588, 3, 2, 2, 2, 1593, 1589, 3, 2, 2, 2, 1593, 1590, 3, 2, 2, 2, 1593, 1591, 3, 2, 2, 2, 1593, 1594, 3, 2, 2, 2, 1594, 1595, 3, 2, 2, 2, 1595, 1597, 5, 120, 61, 2, 1596, 1598, 5, 122, 62, 2, 1597, 1596, 3, 2, 2, 2, 1597, 1598, 3, 2, 2, 2, 1598, 1602, 3, 2, 2, 2, 1599, 1601, 5, 124, 63, 2, 1600, 1599, 3, 2, 2, 2, 1601, 1604, 3, 2, 2, 2, 1602, 1600, 3, 2, 2, 2, 1602, 1603, 3, 2, 2, 2, 1603, 1606, 3, 2, 2, 2, 1604, 1602, 3, 2, 2, 2, 1605, 1607, 5, 126, 64, 2, 1606, 1605, 3, 2, 2, 2, 1606, 1607, 3, 2, 2, 2, 1607, 1609, 3, 2, 2, 2, 1608, 1571, 3, 2, 2, 2, 1608, 1587, 3, 2, 2, 2, 1609, 153, 3, 2, 2, 2, 1610, 1612, 5, 156, 79, 2, 1611, 1610, 3, 2, 2, 2, 1612, 1613, 3, 2, 2, 2, 1613, 1611, 3, 2, 2, 2, 1613, 1614, 3, 2, 2, 2, 1614, 155, 3, 2, 2, 2, 1615, 1616, 7, 157, 2, 2, 1616, 1627, 7, 264, 2, 2, 1617, 1618, 7, 264, 2, 2, 1618, 1619, 7, 249, 2, 2, 1619, 1627, 9, 25, 2, 2, 1620, 1622, 7, 90, 2, 2, 1621, 1620, 3, 2, 2, 2, 1621, 1622, 3, 2, 2, 2, 1622, 1623, 3, 2, 2, 2, 1623, 1624, 7, 229, 2, 2, 1624, 1625, 7, 256, 2, 2, 1625, 1627, 7, 372, 2, 2, 1626, 1615, 3, 2, 2, 2, 1626, 1617, 3, 2, 2, 2, 1626, 1621, 3, 2, 2, 2, 1627, 157, 3, 2, 2, 2, 1628, 1629, 7, 89, 2, 2, 1629, 1632, 7, 280, 2, 2, 1630, 1631, 7, 131, 2, 2, 1631, 1633, 7, 103, 2, 2, 1632, 1630, 3, 2, 2, 2, 1632, 1633, 3, 2, 2, 2, 1633, 1634, 3, 2, 2, 2, 1634, 1643, 5, 330, 166, 2, 1635, 1636, 7, 89, 2, 2, 1636, 1639, 9, 21, 2, 2, 1637, 1638, 7, 131, 2, 2, 1638, 1640, 7, 103, 2, 2, 1639, 1637, 3, 2, 2, 2, 1639, 1640, 3, 2, 2, 2, 1640, 1641, 3, 2, 2, 2, 1641, 1643, 5, 384, 193, 2, 1642, 1628, 3, 2, 2, 2, 1642, 1635, 3, 2, 2, 2, 1643, 159, 3, 2, 2, 2, 1644, 1645, 7, 95, 2, 2, 1645, 1646, 7, 291, 2, 2, 1646, 161, 3, 2, 2, 2, 1647, 1649, 9, 26, 2, 2, 1648, 1650, 7, 133, 2, 2, 1649, 1648, 3, 2, 2, 2, 1649, 1650, 3, 2, 2, 2, 1650, 1651, 3, 2, 2, 2, 1651, 1657, 5, 384, 193, 2, 1652, 1653, 7, 362, 2, 2, 1653, 1654, 5, 416, 209, 2, 1654, 1655, 7, 365, 2, 2, 1655, 1658, 3, 2, 2, 2, 1656, 1658, 5, 416, 209, 2, 1657, 1652, 3, 2, 2, 2, 1657, 1656, 3, 2, 2, 2, 1657, 1658, 3, 2, 2, 2, 1658, 1668, 3, 2, 2, 2, 1659, 1660, 7, 148, 2, 2, 1660, 1665, 7, 369, 2, 2, 1661, 1662, 7, 343, 2, 2, 1662, 1664, 7, 369, 2, 2, 1663, 1661, 3, 2, 2, 2, 1664, 1667, 3, 2, 2, 2, 1665, 1663, 3, 2, 2, 2, 1665, 1666, 3, 2, 2, 2, 1666, 1669, 3, 2, 2, 2, 1667, 1665, 3, 2, 2, 2, 1668, 1659, 3, 2, 2, 2, 1668, 1669, 3, 2, 2, 2, 1669, 1671, 3, 2, 2, 2, 1670, 1672, 5, 280, 141, 2, 1671, 1670, 3, 2, 2, 2, 1671, 1672, 3, 2, 2, 2, 1672, 163, 3, 2, 2, 2, 1673, 1677, 5, 166, 84, 2, 1674, 1677, 5, 168, 85, 2, 1675, 1677, 5, 170, 86, 2, 1676, 1673, 3, 2, 2, 2, 1676, 1674, 3, 2, 2, 2, 1676, 1675, 3, 2, 2, 2, 1677, 165, 3, 2, 2, 2, 1678, 1679, 7, 131, 2, 2, 1679, 1680, 5, 368, 185, 2, 1680, 1681, 7, 285, 2, 2, 1681, 1685, 5, 4, 3, 2, 1682, 1684, 5, 172, 87, 2, 1683, 1682, 3, 2, 2, 2, 1684, 1687, 3, 2, 2, 2, 1685, 1683, 3, 2, 2, 2, 1685, 1686, 3, 2, 2, 2, 1686, 1689, 3, 2, 2, 2, 1687, 1685, 3, 2, 2, 2, 1688, 1690, 5, 174, 88, 2, 1689, 1688, 3, 2, 2, 2, 1689, 1690, 3, 2, 2, 2, 1690, 1691, 3, 2, 2, 2, 1691, 1692, 7, 95, 2, 2, 1692, 1693, 7, 131, 2, 2, 1693, 167, 3, 2, 2, 2, 1694, 1695, 7, 131, 2, 2, 1695, 1696, 5, 368, 185, 2, 1696, 1699, 5, 8, 5, 2, 1697, 1698, 7, 91, 2, 2, 1698, 1700, 5, 8, 5, 2, 1699, 1697, 3, 2, 2, 2, 1699, 1700, 3, 2, 2, 2, 1700, 169, 3, 2, 2, 2, 1701, 1702, 7, 346, 2, 2, 1702, 1703, 7, 131, 2, 2, 1703, 1704, 5, 368, 185, 2, 1704, 1705, 7, 285, 2, 2, 1705, 1706, 5, 8, 5, 2, 1706, 171, 3, 2, 2, 2, 1707, 1708, 9, 27, 2, 2, 1708, 1709, 5, 368, 185, 2, 1709, 1710, 7, 285, 2, 2, 1710, 1711, 5, 4, 3, 2, 1711, 173, 3, 2, 2, 2, 1712, 1713, 7, 91, 2, 2, 1713, 1714, 5, 4, 3, 2, 1714, 175, 3, 2, 2, 2, 1715, 1718, 7, 135, 2, 2, 1716, 1719, 5, 434, 218, 2, 1717, 1719, 5, 384, 193, 2, 1718, 1716, 3, 2, 2, 2, 1718, 1717, 3, 2, 2, 2, 1719, 177, 3, 2, 2, 2, 1720, 1727, 7, 140, 2, 2, 1721, 1722, 7, 205, 2, 2, 1722, 1728, 7, 280, 2, 2, 1723, 1725, 7, 148, 2, 2, 1724, 1726, 7, 280, 2, 2, 1725, 1724, 3, 2, 2, 2, 1725, 1726, 3, 2, 2, 2, 1726, 1728, 3, 2, 2, 2, 1727, 1721, 3, 2, 2, 2, 1727, 1723, 3, 2, 2, 2, 1728, 1729, 3, 2, 2, 2, 1729, 1731, 5, 330, 166, 2, 1730, 1732, 5, 180, 91, 2, 1731, 1730, 3, 2, 2, 2, 1731, 1732, 3, 2, 2, 2, 1732, 1735, 3, 2, 2, 2, 1733, 1736, 5, 282, 142, 2, 1734, 1736, 5, 182, 92, 2, 1735, 1733, 3, 2, 2, 2, 1735, 1734, 3, 2, 2, 2, 1736, 179, 3, 2, 2, 2, 1737, 1738, 7, 362, 2, 2, 1738, 1743, 5, 440, 221, 2, 1739, 1740, 7, 343, 2, 2, 1740, 1742, 5, 440, 221, 2, 1741, 1739, 3, 2, 2, 2, 1742, 1745, 3, 2, 2, 2, 1743, 1741, 3, 2, 2, 2, 1743, 1744, 3, 2, 2, 2, 1744, 1746, 3, 2, 2, 2, 1745, 1743, 3, 2, 2, 2, 1746, 1747, 7, 365, 2, 2, 1747, 181, 3, 2, 2, 2, 1748, 1749, 7, 302, 2, 2, 1749, 1754, 5, 184, 93, 2, 1750, 1751, 7, 343, 2, 2, 1751, 1753, 5, 184, 93, 2, 1752, 1750, 3, 2, 2, 2, 1753, 1756, 3, 2, 2, 2, 1754, 1752, 3, 2, 2, 2, 1754, 1755, 3, 2, 2, 2, 1755, 183, 3, 2, 2, 2, 1756, 1754, 3, 2, 2, 2, 1757, 1758, 7, 362, 2, 2, 1758, 1763, 5, 384, 193, 2, 1759, 1760, 7, 343, 2, 2, 1760, 1762, 5, 384, 193, 2, 1761, 1759, 3, 2, 2, 2, 1762, 1765, 3, 2, 2, 2, 1763, 1761, 3, 2, 2, 2, 1763, 1764, 3, 2, 2, 2, 1764, 1766, 3, 2, 2, 2, 1765, 1763, 3, 2, 2, 2, 1766, 1767, 7, 365, 2, 2, 1767, 185, 3, 2, 2, 2, 1768, 1769, 7, 140, 2, 2, 1769, 1771, 7, 205, 2, 2, 1770, 1772, 7, 163, 2, 2, 1771, 1770, 3, 2, 2, 2, 1771, 1772, 3, 2, 2, 2, 1772, 1773, 3, 2, 2, 2, 1773, 1774, 7, 84, 2, 2, 1774, 1775, 5, 422, 212, 2, 1775, 1776, 5, 420, 211, 2, 1776, 187, 3, 2, 2, 2, 1777, 1779, 7, 104, 2, 2, 1778, 1780, 7, 369, 2, 2, 1779, 1778, 3, 2, 2, 2, 1779, 1780, 3, 2, 2, 2, 1780, 1783, 3, 2, 2, 2, 1781, 1782, 7, 308, 2, 2, 1782, 1784, 5, 368, 185, 2, 1783, 1781, 3, 2, 2, 2, 1783, 1784, 3, 2, 2, 2, 1784, 189, 3, 2, 2, 2, 1785, 1786, 7, 119, 2, 2, 1786, 1787, 7, 82, 2, 2, 1787, 1788, 5, 192, 97, 2, 1788, 191, 3, 2, 2, 2, 1789, 1792, 5, 194, 98, 2, 1790, 1792, 5, 196, 99, 2, 1791, 1789, 3, 2, 2, 2, 1791, 1790, 3, 2, 2, 2, 1792, 193, 3, 2, 2, 2, 1793, 1794, 7, 101, 2, 2, 1794, 1795, 7, 372, 2, 2, 1795, 1796, 5, 440, 221, 2, 1796, 1797, 7, 348, 2, 2, 1797, 1798, 7, 177, 2, 2, 1798, 195, 3, 2, 2, 2, 1799, 1800, 5, 440, 221, 2, 1800, 1801, 7, 348, 2, 2, 1801, 1802, 7, 241, 2, 2, 1802, 197, 3, 2, 2, 2, 1803, 1804, 7, 122, 2, 2, 1804, 1809, 5, 200, 101, 2, 1805, 1806, 7, 343, 2, 2, 1806, 1808, 5, 200, 101, 2, 1807, 1805, 3, 2, 2, 2, 1808, 1811, 3, 2, 2, 2, 1809, 1807, 3, 2, 2, 2, 1809, 1810, 3, 2, 2, 2, 1810, 1812, 3, 2, 2, 2, 1811, 1809, 3, 2, 2, 2, 1812, 1813, 7, 289, 2, 2, 1813, 1814, 7, 236, 2, 2, 1814, 1815, 5, 440, 221, 2, 1815, 199, 3, 2, 2, 2, 1816, 1817, 7, 100, 2, 2, 1817, 1818, 7, 197, 2, 2, 1818, 1819, 7, 217, 2, 2, 1819, 1820, 5, 440, 221, 2, 1820, 201, 3, 2, 2, 2, 1821, 1823, 7, 158, 2, 2, 1822, 1824, 7, 369, 2, 2, 1823, 1822, 3, 2, 2, 2, 1823, 1824, 3, 2, 2, 2, 1824, 203, 3, 2, 2, 2, 1825, 1826, 7, 172, 2, 2, 1826, 1827, 7, 195, 2, 2, 1827, 1830, 5, 384, 193, 2, 1828, 1829, 7, 289, 2, 2, 1829, 1831, 5, 384, 193, 2, 1830, 1828, 3, 2, 2, 2, 1830, 1831, 3, 2, 2, 2, 1831, 1834, 3, 2, 2, 2, 1832, 1833, 7, 14, 2, 2, 1833, 1835, 5, 384, 193, 2, 1834, 1832, 3, 2, 2, 2, 1834, 1835, 3, 2, 2, 2, 1835, 205, 3, 2, 2, 2, 1836, 1837, 7, 199, 2, 2, 1837, 1843, 7, 369, 2, 2, 1838, 1841, 7, 112, 2, 2, 1839, 1842, 5, 282, 142, 2, 1840, 1842, 5, 384, 193, 2, 1841, 1839, 3, 2, 2, 2, 1841, 1840, 3, 2, 2, 2, 1842, 1844, 3, 2, 2, 2, 1843, 1838, 3, 2, 2, 2, 1843, 1844, 3, 2, 2, 2, 1844, 207, 3, 2, 2, 2, 1845, 1847, 7, 107, 2, 2, 1846, 1848, 7, 116, 2, 2, 1847, 1846, 3, 2, 2, 2, 1847, 1848, 3, 2, 2, 2, 1848, 1849, 3, 2, 2, 2, 1849, 1850, 7, 369, 2, 2, 1850, 1851, 7, 148, 2, 2, 1851, 1856, 7, 369, 2, 2, 1852, 1853, 7, 343, 2, 2, 1853, 1855, 7, 369, 2, 2, 1854, 1852, 3, 2, 2, 2, 1855, 1858, 3, 2, 2, 2, 1856, 1854, 3, 2, 2, 2, 1856, 1857, 3, 2, 2, 2, 1857, 209, 3, 2, 2, 2, 1858, 1856, 3, 2, 2, 2, 1859, 1860, 7, 42, 2, 2, 1860, 1861, 9, 28, 2, 2, 1861, 1862, 7, 197, 2, 2, 1862, 1864, 5, 330, 166, 2, 1863, 1865, 5, 212, 107, 2, 1864, 1863, 3, 2, 2, 2, 1864, 1865, 3, 2, 2, 2, 1865, 211, 3, 2, 2, 2, 1866, 1867, 7, 44, 2, 2, 1867, 1868, 7, 362, 2, 2, 1868, 1873, 5, 440, 221, 2, 1869, 1870, 7, 343, 2, 2, 1870, 1872, 5, 440, 221, 2, 1871, 1869, 3, 2, 2, 2, 1872, 1875, 3, 2, 2, 2, 1873, 1871, 3, 2, 2, 2, 1873, 1874, 3, 2, 2, 2, 1874, 1876, 3, 2, 2, 2, 1875, 1873, 3, 2, 2, 2, 1876, 1877, 7, 365, 2, 2, 1877, 213, 3, 2, 2, 2, 1878, 1879, 7, 39, 2, 2, 1879, 1880, 7, 369, 2, 2, 1880, 215, 3, 2, 2, 2, 1881, 1882, 7, 41, 2, 2, 1882, 1883, 9, 29, 2, 2, 1883, 1884, 5, 218, 110, 2, 1884, 1885, 7, 343, 2, 2, 1885, 1886, 5, 218, 110, 2, 1886, 217, 3, 2, 2, 2, 1887, 1889, 5, 330, 166, 2, 1888, 1890, 5, 332, 167, 2, 1889, 1888, 3, 2, 2, 2, 1889, 1890, 3, 2, 2, 2, 1890, 1896, 3, 2, 2, 2, 1891, 1892, 7, 362, 2, 2, 1892, 1893, 5, 282, 142, 2, 1893, 1894, 7, 365, 2, 2, 1894, 1896, 3, 2, 2, 2, 1895, 1887, 3, 2, 2, 2, 1895, 1891, 3, 2, 2, 2, 1896, 1899, 3, 2, 2, 2, 1897, 1898, 7, 14, 2, 2, 1898, 1900, 5, 440, 221, 2, 1899, 1897, 3, 2, 2, 2, 1899, 1900, 3, 2, 2, 2, 1900, 219, 3, 2, 2, 2, 1901, 1902, 7, 53, 2, 2, 1902, 1903, 7, 116, 2, 2, 1903, 1904, 7, 163, 2, 2, 1904, 1909, 5, 224, 113, 2, 1905, 1906, 7, 343, 2, 2, 1906, 1908, 5, 224, 113, 2, 1907, 1905, 3, 2, 2, 2, 1908, 1911, 3, 2, 2, 2, 1909, 1907, 3, 2, 2, 2, 1909, 1910, 3, 2, 2, 2, 1910, 1912, 3, 2, 2, 2, 1911, 1909, 3, 2, 2, 2, 1912, 1913, 7, 289, 2, 2, 1913, 1917, 5, 226, 114, 2, 1914, 1916, 5, 230, 116, 2, 1915, 1914, 3, 2, 2, 2, 1916, 1919, 3, 2, 2, 2, 1917, 1915, 3, 2, 2, 2, 1917, 1918, 3, 2, 2, 2, 1918, 221, 3, 2, 2, 2, 1919, 1917, 3, 2, 2, 2, 1920, 1926, 7, 53, 2, 2, 1921, 1927, 5, 330, 166, 2, 1922, 1923, 7, 362, 2, 2, 1923, 1924, 5, 282, 142, 2, 1924, 1925, 7, 365, 2, 2, 1925, 1927, 3, 2, 2, 2, 1926, 1921, 3, 2, 2, 2, 1926, 1922, 3, 2, 2, 2, 1927, 1928, 3, 2, 2, 2, 1928, 1930, 7, 289, 2, 2, 1929, 1931, 7, 127, 2, 2, 1930, 1929, 3, 2, 2, 2, 1930, 1931, 3, 2, 2, 2, 1931, 1932, 3, 2, 2, 2, 1932, 1936, 5, 226, 114, 2, 1933, 1935, 5, 228, 115, 2, 1934, 1933, 3, 2, 2, 2, 1935, 1938, 3, 2, 2, 2, 1936, 1934, 3, 2, 2, 2, 1936, 1937, 3, 2, 2, 2, 1937, 223, 3, 2, 2, 2, 1938, 1936, 3, 2, 2, 2, 1939, 1942, 5, 434, 218, 2, 1940, 1942, 5, 384, 193, 2, 1941, 1939, 3, 2, 2, 2, 1941, 1940, 3, 2, 2, 2, 1942, 225, 3, 2, 2, 2, 1943, 1946, 5, 434, 218, 2, 1944, 1946, 5, 384, 193, 2, 1945, 1943, 3, 2, 2, 2, 1945, 1944, 3, 2, 2, 2, 1946, 227, 3, 2, 2, 2, 1947, 1948, 7, 14, 2, 2, 1948, 1956, 5, 440, 221, 2, 1949, 1950, 7, 17, 2, 2, 1950, 1956, 5, 384, 193, 2, 1951, 1952, 7, 79, 2, 2, 1952, 1956, 5, 384, 193, 2, 1953, 1954, 7, 266, 2, 2, 1954, 1956, 5, 440, 221, 2, 1955, 1947, 3, 2, 2, 2, 1955, 1949, 3, 2, 2, 2, 1955, 1951, 3, 2, 2, 2, 1955, 1953, 3, 2, 2, 2, 1956, 229, 3, 2, 2, 2, 1957, 1958, 9, 30, 2, 2, 1958, 231, 3, 2, 2, 2, 1959, 1961, 7, 47, 2, 2, 1960, 1962, 7, 313, 2, 2, 1961, 1960, 3, 2, 2, 2, 1961, 1962, 3, 2, 2, 2, 1962, 233, 3, 2, 2, 2, 1963, 1965, 7, 56, 2, 2, 1964, 1966, 7, 296, 2, 2, 1965, 1964, 3, 2, 2, 2, 1965, 1966, 3, 2, 2, 2, 1966, 1967, 3, 2, 2, 2, 1967, 1968, 7, 136, 2, 2, 1968, 1969, 5, 440, 221, 2, 1969, 1970, 7, 197, 2, 2, 1970, 1971, 5, 330, 166, 2, 1971, 1972, 7, 362, 2, 2, 1972, 1977, 5, 236, 119, 2, 1973, 1974, 7, 343, 2, 2, 1974, 1976, 5, 236, 119, 2, 1975, 1973, 3, 2, 2, 2, 1976, 1979, 3, 2, 2, 2, 1977, 1975, 3, 2, 2, 2, 1977, 1978, 3, 2, 2, 2, 1978, 1980, 3, 2, 2, 2, 1979, 1977, 3, 2, 2, 2, 1980, 1981, 7, 365, 2, 2, 1981, 235, 3, 2, 2, 2, 1982, 1984, 5, 440, 221, 2, 1983, 1985, 9, 9, 2, 2, 1984, 1983, 3, 2, 2, 2, 1984, 1985, 3, 2, 2, 2, 1985, 237, 3, 2, 2, 2, 1986, 1987, 5, 240, 121, 2, 1987, 239, 3, 2, 2, 2, 1988, 1989, 7, 311, 2, 2, 1989, 1990, 7, 362, 2, 2, 1990, 1991, 5, 440, 221, 2, 1991, 1992, 7, 348, 2, 2, 1992, 2000, 5, 440, 221, 2, 1993, 1994, 7, 343, 2, 2, 1994, 1995, 5, 440, 221, 2, 1995, 1996, 7, 348, 2, 2, 1996, 1997, 5, 440, 221, 2, 1997, 1999, 3, 2, 2, 2, 1998, 1993, 3, 2, 2, 2, 1999, 2002, 3, 2, 2, 2, 2000, 1998, 3, 2, 2, 2, 2000, 2001, 3, 2, 2, 2, 2001, 2003, 3, 2, 2, 2, 2002, 2000, 3, 2, 2, 2, 2003, 2007, 7, 365, 2, 2, 2004, 2006, 5, 108, 55, 2, 2005, 2004, 3, 2, 2, 2, 2006, 2009, 3, 2, 2, 2, 2007, 2005, 3, 2, 2, 2, 2007, 2008, 3, 2, 2, 2, 2008, 241, 3, 2, 2, 2, 2009, 2007, 3, 2, 2, 2, 2010, 2011, 7, 215, 2, 2, 2011, 2018, 5, 384, 193, 2, 2012, 2013, 7, 215, 2, 2, 2013, 2014, 7, 362, 2, 2, 2014, 2015, 5, 384, 193, 2, 2015, 2016, 7, 365, 2, 2, 2016, 2018, 3, 2, 2, 2, 2017, 2010, 3, 2, 2, 2, 2017, 2012, 3, 2, 2, 2, 2018, 243, 3, 2, 2, 2, 2019, 2021, 7, 346, 2, 2, 2020, 2019, 3, 2, 2, 2, 2020, 2021, 3, 2, 2, 2, 2021, 2022, 3, 2, 2, 2, 2022, 2024, 7, 220, 2, 2, 2023, 2025, 5, 384, 193, 2, 2024, 2023, 3, 2, 2, 2, 2024, 2025, 3, 2, 2, 2, 2025, 245, 3, 2, 2, 2, 2026, 2027, 7, 222, 2, 2, 2027, 247, 3, 2, 2, 2, 2028, 2040, 7, 227, 2, 2, 2029, 2031, 7, 267, 2, 2, 2030, 2032, 7, 301, 2, 2, 2031, 2030, 3, 2, 2, 2, 2031, 2032, 3, 2, 2, 2, 2032, 2033, 3, 2, 2, 2, 2033, 2038, 5, 384, 193, 2, 2034, 2035, 7, 253, 2, 2, 2035, 2036, 7, 177, 2, 2, 2036, 2037, 7, 348, 2, 2, 2037, 2039, 5, 384, 193, 2, 2038, 2034, 3, 2, 2, 2, 2038, 2039, 3, 2, 2, 2, 2039, 2041, 3, 2, 2, 2, 2040, 2029, 3, 2, 2, 2, 2040, 2041, 3, 2, 2, 2, 2041, 249, 3, 2, 2, 2, 2042, 2044, 7, 231, 2, 2, 2043, 2045, 5, 384, 193, 2, 2044, 2043, 3, 2, 2, 2, 2044, 2045, 3, 2, 2, 2, 2045, 251, 3, 2, 2, 2, 2046, 2048, 7, 237, 2, 2, 2047, 2049, 7, 313, 2, 2, 2048, 2047, 3, 2, 2, 2, 2048, 2049, 3, 2, 2, 2, 2049, 253, 3, 2, 2, 2, 2050, 2054, 5, 256, 129, 2, 2051, 2054, 5, 258, 130, 2, 2052, 2054, 5, 260, 131, 2, 2053, 2050, 3, 2, 2, 2, 2053, 2051, 3, 2, 2, 2, 2053, 2052, 3, 2, 2, 2, 2054, 255, 3, 2, 2, 2, 2055, 2057, 7, 60, 2, 2, 2056, 2055, 3, 2, 2, 2, 2056, 2057, 3, 2, 2, 2, 2057, 2058, 3, 2, 2, 2, 2058, 2061, 7, 246, 2, 2, 2059, 2061, 7, 61, 2, 2, 2060, 2056, 3, 2, 2, 2, 2060, 2059, 3, 2, 2, 2, 2061, 2063, 3, 2, 2, 2, 2062, 2064, 7, 348, 2, 2, 2063, 2062, 3, 2, 2, 2, 2063, 2064, 3, 2, 2, 2, 2064, 2065, 3, 2, 2, 2, 2065, 2066, 5, 384, 193, 2, 2066, 257, 3, 2, 2, 2, 2067, 2068, 9, 31, 2, 2, 2068, 2069, 9, 32, 2, 2, 2069, 259, 3, 2, 2, 2, 2070, 2071, 7, 219, 2, 2, 2071, 2074, 7, 348, 2, 2, 2072, 2075, 5, 384, 193, 2, 2073, 2075, 7, 189, 2, 2, 2074, 2072, 3, 2, 2, 2, 2074, 2073, 3, 2, 2, 2, 2075, 2077, 3, 2, 2, 2, 2076, 2078, 7, 297, 2, 2, 2077, 2076, 3, 2, 2, 2, 2077, 2078, 3, 2, 2, 2, 2078, 2079, 3, 2, 2, 2, 2079, 2080, 7, 112, 2, 2, 2080, 2081, 9, 33, 2, 2, 2081, 261, 3, 2, 2, 2, 2082, 2083, 7, 258, 2, 2, 2083, 2084, 5, 440, 221, 2, 2084, 263, 3, 2, 2, 2, 2085, 2088, 7, 278, 2, 2, 2086, 2087, 7, 290, 2, 2, 2087, 2089, 5, 384, 193, 2, 2088, 2086, 3, 2, 2, 2, 2088, 2089, 3, 2, 2, 2, 2089, 2090, 3, 2, 2, 2, 2090, 2100, 7, 112, 2, 2, 2091, 2101, 5, 282, 142, 2, 2092, 2094, 5, 330, 166, 2, 2093, 2095, 5, 332, 167, 2, 2094, 2093, 3, 2, 2, 2, 2094, 2095, 3, 2, 2, 2, 2095, 2098, 3, 2, 2, 2, 2096, 2097, 7, 161, 2, 2, 2097, 2099, 5, 384, 193, 2, 2098, 2096, 3, 2, 2, 2, 2098, 2099, 3, 2, 2, 2, 2099, 2101, 3, 2, 2, 2, 2100, 2091, 3, 2, 2, 2, 2100, 2092, 3, 2, 2, 2, 2101, 265, 3, 2, 2, 2, 2102, 2104, 7, 293, 2, 2, 2103, 2105, 7, 280, 2, 2, 2104, 2103, 3, 2, 2, 2, 2104, 2105, 3, 2, 2, 2, 2105, 2106, 3, 2, 2, 2, 2106, 2107, 5, 330, 166, 2, 2107, 267, 3, 2, 2, 2, 2108, 2109, 7, 299, 2, 2, 2109, 2110, 5, 384, 193, 2, 2110, 269, 3, 2, 2, 2, 2111, 2113, 7, 302, 2, 2, 2112, 2114, 7, 362, 2, 2, 2113, 2112, 3, 2, 2, 2, 2113, 2114, 3, 2, 2, 2, 2114, 2115, 3, 2, 2, 2, 2115, 2120, 5, 384, 193, 2, 2116, 2117, 7, 343, 2, 2, 2117, 2119, 5, 384, 193, 2, 2118, 2116, 3, 2, 2, 2, 2119, 2122, 3, 2, 2, 2, 2120, 2118, 3, 2, 2, 2, 2120, 2121, 3, 2, 2, 2, 2121, 2124, 3, 2, 2, 2, 2122, 2120, 3, 2, 2, 2, 2123, 2125, 7, 365, 2, 2, 2124, 2123, 3, 2, 2, 2, 2124, 2125, 3, 2, 2, 2, 2125, 2126, 3, 2, 2, 2, 2126, 2128, 7, 148, 2, 2, 2127, 2129, 7, 362, 2, 2, 2128, 2127, 3, 2, 2, 2, 2128, 2129, 3, 2, 2, 2, 2129, 2130, 3, 2, 2, 2, 2130, 2135, 5, 440, 221, 2, 2131, 2132, 7, 343, 2, 2, 2132, 2134, 5, 440, 221, 2, 2133, 2131, 3, 2, 2, 2, 2134, 2137, 3, 2, 2, 2, 2135, 2133, 3, 2, 2, 2, 2135, 2136, 3, 2, 2, 2, 2136, 2139, 3, 2, 2, 2, 2137, 2135, 3, 2, 2, 2, 2138, 2140, 7, 365, 2, 2, 2139, 2138, 3, 2, 2, 2, 2139, 2140, 3, 2, 2, 2, 2140, 271, 3, 2, 2, 2, 2141, 2142, 7, 310, 2, 2, 2142, 2143, 5, 368, 185, 2, 2143, 2144, 9, 34, 2, 2, 2144, 2145, 5, 4, 3, 2, 2145, 2147, 7, 95, 2, 2, 2146, 2148, 9, 35, 2, 2, 2147, 2146, 3, 2, 2, 2, 2147, 2148, 3, 2, 2, 2, 2148, 273, 3, 2, 2, 2, 2149, 2150, 7, 112, 2, 2, 2150, 2151, 7, 369, 2, 2, 2151, 2153, 7, 134, 2, 2, 2152, 2154, 7, 362, 2, 2, 2153, 2152, 3, 2, 2, 2, 2153, 2154, 3, 2, 2, 2, 2154, 2155, 3, 2, 2, 2, 2155, 2157, 5, 282, 142, 2, 2156, 2158, 7, 365, 2, 2, 2157, 2156, 3, 2, 2, 2, 2157, 2158, 3, 2, 2, 2, 2158, 2159, 3, 2, 2, 2, 2159, 2160, 7, 171, 2, 2, 2160, 2161, 5, 4, 3, 2, 2161, 2162, 7, 95, 2, 2, 2162, 2163, 7, 171, 2, 2, 2163, 275, 3, 2, 2, 2, 2164, 2165, 7, 112, 2, 2, 2165, 2166, 7, 369, 2, 2, 2166, 2168, 7, 134, 2, 2, 2167, 2169, 7, 233, 2, 2, 2168, 2167, 3, 2, 2, 2, 2168, 2169, 3, 2, 2, 2, 2169, 2170, 3, 2, 2, 2, 2170, 2171, 5, 384, 193, 2, 2171, 2172, 7, 347, 2, 2, 2172, 2175, 5, 384, 193, 2, 2173, 2174, 9, 36, 2, 2, 2174, 2176, 5, 384, 193, 2, 2175, 2173, 3, 2, 2, 2, 2175, 2176, 3, 2, 2, 2, 2176, 2177, 3, 2, 2, 2, 2177, 2178, 7, 171, 2, 2, 2178, 2179, 5, 4, 3, 2, 2179, 2180, 7, 95, 2, 2, 2180, 2181, 7, 171, 2, 2, 2181, 277, 3, 2, 2, 2, 2182, 2189, 7, 378, 2, 2, 2183, 2184, 7, 356, 2, 2, 2184, 2185, 7, 356, 2, 2, 2185, 2186, 7, 369, 2, 2, 2186, 2187, 7, 354, 2, 2, 2187, 2189, 7, 354, 2, 2, 2188, 2182, 3, 2, 2, 2, 2188, 2183, 3, 2, 2, 2, 2189, 279, 3, 2, 2, 2, 2190, 2191, 7, 300, 2, 2, 2191, 2196, 5, 384, 193, 2, 2192, 2193, 7, 343, 2, 2, 2193, 2195, 5, 384, 193, 2, 2194, 2192, 3, 2, 2, 2, 2195, 2198, 3, 2, 2, 2, 2196, 2194, 3, 2, 2, 2, 2196, 2197, 3, 2, 2, 2, 2197, 281, 3, 2, 2, 2, 2198, 2196, 3, 2, 2, 2, 2199, 2201, 5, 284, 143, 2, 2200, 2199, 3, 2, 2, 2, 2200, 2201, 3, 2, 2, 2, 2201, 2202, 3, 2, 2, 2, 2202, 2203, 5, 290, 146, 2, 2203, 283, 3, 2, 2, 2, 2204, 2205, 7, 311, 2, 2, 2205, 2210, 5, 286, 144, 2, 2206, 2207, 7, 343, 2, 2, 2207, 2209, 5, 286, 144, 2, 2208, 2206, 3, 2, 2, 2, 2209, 2212, 3, 2, 2, 2, 2210, 2208, 3, 2, 2, 2, 2210, 2211, 3, 2, 2, 2, 2211, 285, 3, 2, 2, 2, 2212, 2210, 3, 2, 2, 2, 2213, 2215, 5, 440, 221, 2, 2214, 2216, 5, 288, 145, 2, 2215, 2214, 3, 2, 2, 2, 2215, 2216, 3, 2, 2, 2, 2216, 2217, 3, 2, 2, 2, 2217, 2218, 7, 11, 2, 2, 2218, 2219, 7, 362, 2, 2, 2219, 2220, 5, 290, 146, 2, 2220, 2221, 7, 365, 2, 2, 2221, 287, 3, 2, 2, 2, 2222, 2223, 7, 362, 2, 2, 2223, 2228, 5, 440, 221, 2, 2224, 2225, 7, 343, 2, 2, 2225, 2227, 5, 440, 221, 2, 2226, 2224, 3, 2, 2, 2, 2227, 2230, 3, 2, 2, 2, 2228, 2226, 3, 2, 2, 2, 2228, 2229, 3, 2, 2, 2, 2229, 2231, 3, 2, 2, 2, 2230, 2228, 3, 2, 2, 2, 2231, 2232, 7, 365, 2, 2, 2232, 289, 3, 2, 2, 2, 2233, 2239, 5, 292, 147, 2, 2234, 2235, 5, 294, 148, 2, 2235, 2236, 5, 292, 147, 2, 2236, 2238, 3, 2, 2, 2, 2237, 2234, 3, 2, 2, 2, 2238, 2241, 3, 2, 2, 2, 2239, 2237, 3, 2, 2, 2, 2239, 2240, 3, 2, 2, 2, 2240, 291, 3, 2, 2, 2, 2241, 2239, 3, 2, 2, 2, 2242, 2248, 5, 296, 149, 2, 2243, 2244, 7, 362, 2, 2, 2244, 2245, 5, 290, 146, 2, 2245, 2246, 7, 365, 2, 2, 2246, 2248, 3, 2, 2, 2, 2247, 2242, 3, 2, 2, 2, 2247, 2243, 3, 2, 2, 2, 2248, 293, 3, 2, 2, 2, 2249, 2251, 7, 295, 2, 2, 2250, 2252, 7, 5, 2, 2, 2251, 2250, 3, 2, 2, 2, 2251, 2252, 3, 2, 2, 2, 2252, 2262, 3, 2, 2, 2, 2253, 2255, 7, 98, 2, 2, 2254, 2256, 7, 5, 2, 2, 2255, 2254, 3, 2, 2, 2, 2255, 2256, 3, 2, 2, 2, 2256, 2262, 3, 2, 2, 2, 2257, 2259, 7, 146, 2, 2, 2258, 2260, 7, 5, 2, 2, 2259, 2258, 3, 2, 2, 2, 2259, 2260, 3, 2, 2, 2, 2260, 2262, 3, 2, 2, 2, 2261, 2249, 3, 2, 2, 2, 2261, 2253, 3, 2, 2, 2, 2261, 2257, 3, 2, 2, 2, 2262, 295, 3, 2, 2, 2, 2263, 2264, 9, 37, 2, 2, 2264, 2266, 5, 298, 150, 2, 2265, 2267, 5, 310, 156, 2, 2266, 2265, 3, 2, 2, 2, 2266, 2267, 3, 2, 2, 2, 2267, 2269, 3, 2, 2, 2, 2268, 2270, 5, 312, 157, 2, 2269, 2268, 3, 2, 2, 2, 2269, 2270, 3, 2, 2, 2, 2270, 2272, 3, 2, 2, 2, 2271, 2273, 5, 332, 167, 2, 2272, 2271, 3, 2, 2, 2, 2272, 2273, 3, 2, 2, 2, 2273, 2275, 3, 2, 2, 2, 2274, 2276, 5, 334, 168, 2, 2275, 2274, 3, 2, 2, 2, 2275, 2276, 3, 2, 2, 2, 2276, 2279, 3, 2, 2, 2, 2277, 2280, 5, 336, 169, 2, 2278, 2280, 5, 338, 170, 2, 2279, 2277, 3, 2, 2, 2, 2279, 2278, 3, 2, 2, 2, 2279, 2280, 3, 2, 2, 2, 2280, 2282, 3, 2, 2, 2, 2281, 2283, 5, 340, 171, 2, 2282, 2281, 3, 2, 2, 2, 2282, 2283, 3, 2, 2, 2, 2283, 2285, 3, 2, 2, 2, 2284, 2286, 5, 342, 172, 2, 2285, 2284, 3, 2, 2, 2, 2285, 2286, 3, 2, 2, 2, 2286, 297, 3, 2, 2, 2, 2287, 2289, 5, 300, 151, 2, 2288, 2287, 3, 2, 2, 2, 2288, 2289, 3, 2, 2, 2, 2289, 2291, 3, 2, 2, 2, 2290, 2292, 5, 302, 152, 2, 2291, 2290, 3, 2, 2, 2, 2291, 2292, 3, 2, 2, 2, 2292, 2293, 3, 2, 2, 2, 2293, 2298, 5, 304, 153, 2, 2294, 2295, 7, 343, 2, 2, 2295, 2297, 5, 304, 153, 2, 2296, 2294, 3, 2, 2, 2, 2297, 2300, 3, 2, 2, 2, 2298, 2296, 3, 2, 2, 2, 2298, 2299, 3, 2, 2, 2, 2299, 299, 3, 2, 2, 2, 2300, 2298, 3, 2, 2, 2, 2301, 2302, 9, 38, 2, 2, 2302, 301, 3, 2, 2, 2, 2303, 2304, 7, 290, 2, 2, 2304, 2305, 5, 384, 193, 2, 2305, 303, 3, 2, 2, 2, 2306, 2307, 5, 440, 221, 2, 2307, 2308, 7, 348, 2, 2, 2308, 2310, 3, 2, 2, 2, 2309, 2306, 3, 2, 2, 2, 2309, 2310, 3, 2, 2, 2, 2310, 2311, 3, 2, 2, 2, 2311, 2313, 5, 384, 193, 2, 2312, 2314, 5, 306, 154, 2, 2313, 2312, 3, 2, 2, 2, 2313, 2314, 3, 2, 2, 2, 2314, 2317, 3, 2, 2, 2, 2315, 2317, 5, 308, 155, 2, 2316, 2309, 3, 2, 2, 2, 2316, 2315, 3, 2, 2, 2, 2317, 305, 3, 2, 2, 2, 2318, 2320, 6, 154, 5, 2, 2319, 2321, 7, 11, 2, 2, 2320, 2319, 3, 2, 2, 2, 2320, 2321, 3, 2, 2, 2, 2321, 2322, 3, 2, 2, 2, 2322, 2328, 5, 440, 221, 2, 2323, 2324, 7, 362, 2, 2, 2324, 2325, 7, 288, 2, 2, 2325, 2326, 7, 370, 2, 2, 2326, 2328, 7, 365, 2, 2, 2327, 2318, 3, 2, 2, 2, 2327, 2323, 3, 2, 2, 2, 2328, 307, 3, 2, 2, 2, 2329, 2330, 7, 369, 2, 2, 2330, 2332, 7, 346, 2, 2, 2331, 2329, 3, 2, 2, 2, 2331, 2332, 3, 2, 2, 2, 2332, 2333, 3, 2, 2, 2, 2333, 2334, 7, 358, 2, 2, 2334, 309, 3, 2, 2, 2, 2335, 2336, 7, 148, 2, 2, 2336, 2341, 5, 440, 221, 2, 2337, 2338, 7, 343, 2, 2, 2338, 2340, 5, 440, 221, 2, 2339, 2337, 3, 2, 2, 2, 2340, 2343, 3, 2, 2, 2, 2341, 2339, 3, 2, 2, 2, 2341, 2342, 3, 2, 2, 2, 2342, 311, 3, 2, 2, 2, 2343, 2341, 3, 2, 2, 2, 2344, 2345, 7, 116, 2, 2, 2345, 2349, 5, 314, 158, 2, 2346, 2348, 5, 320, 161, 2, 2347, 2346, 3, 2, 2, 2, 2348, 2351, 3, 2, 2, 2, 2349, 2347, 3, 2, 2, 2, 2349, 2350, 3, 2, 2, 2, 2350, 313, 3, 2, 2, 2, 2351, 2349, 3, 2, 2, 2, 2352, 2356, 5, 316, 159, 2, 2353, 2356, 5, 318, 160, 2, 2354, 2356, 5, 324, 163, 2, 2355, 2352, 3, 2, 2, 2, 2355, 2353, 3, 2, 2, 2, 2355, 2354, 3, 2, 2, 2, 2356, 315, 3, 2, 2, 2, 2357, 2359, 5, 330, 166, 2, 2358, 2360, 5, 328, 165, 2, 2359, 2358, 3, 2, 2, 2, 2359, 2360, 3, 2, 2, 2, 2360, 317, 3, 2, 2, 2, 2361, 2362, 7, 362, 2, 2, 2362, 2363, 5, 282, 142, 2, 2363, 2365, 7, 365, 2, 2, 2364, 2366, 5, 328, 165, 2, 2365, 2364, 3, 2, 2, 2, 2365, 2366, 3, 2, 2, 2, 2366, 319, 3, 2, 2, 2, 2367, 2368, 7, 343, 2, 2, 2368, 2375, 5, 314, 158, 2, 2369, 2370, 5, 322, 162, 2, 2370, 2371, 5, 314, 158, 2, 2371, 2372, 7, 197, 2, 2, 2372, 2373, 5, 368, 185, 2, 2373, 2375, 3, 2, 2, 2, 2374, 2367, 3, 2, 2, 2, 2374, 2369, 3, 2, 2, 2, 2375, 321, 3, 2, 2, 2, 2376, 2378, 7, 138, 2, 2, 2377, 2376, 3, 2, 2, 2, 2377, 2378, 3, 2, 2, 2, 2378, 2379, 3, 2, 2, 2, 2379, 2386, 7, 153, 2, 2, 2380, 2382, 9, 39, 2, 2, 2381, 2383, 7, 203, 2, 2, 2382, 2381, 3, 2, 2, 2, 2382, 2383, 3, 2, 2, 2, 2383, 2384, 3, 2, 2, 2, 2384, 2386, 7, 153, 2, 2, 2385, 2377, 3, 2, 2, 2, 2385, 2380, 3, 2, 2, 2, 2386, 323, 3, 2, 2, 2, 2387, 2388, 7, 280, 2, 2, 2388, 2389, 7, 362, 2, 2, 2389, 2390, 7, 302, 2, 2, 2390, 2395, 5, 326, 164, 2, 2391, 2392, 7, 343, 2, 2, 2392, 2394, 5, 326, 164, 2, 2393, 2391, 3, 2, 2, 2, 2394, 2397, 3, 2, 2, 2, 2395, 2393, 3, 2, 2, 2, 2395, 2396, 3, 2, 2, 2, 2396, 2398, 3, 2, 2, 2, 2397, 2395, 3, 2, 2, 2, 2398, 2400, 7, 365, 2, 2, 2399, 2401, 5, 328, 165, 2, 2400, 2399, 3, 2, 2, 2, 2400, 2401, 3, 2, 2, 2, 2401, 325, 3, 2, 2, 2, 2402, 2415, 5, 384, 193, 2, 2403, 2404, 7, 362, 2, 2, 2404, 2409, 5, 384, 193, 2, 2405, 2406, 7, 343, 2, 2, 2406, 2408, 5, 384, 193, 2, 2407, 2405, 3, 2, 2, 2, 2408, 2411, 3, 2, 2, 2, 2409, 2407, 3, 2, 2, 2, 2409, 2410, 3, 2, 2, 2, 2410, 2412, 3, 2, 2, 2, 2411, 2409, 3, 2, 2, 2, 2412, 2413, 7, 365, 2, 2, 2413, 2415, 3, 2, 2, 2, 2414, 2402, 3, 2, 2, 2, 2414, 2403, 3, 2, 2, 2, 2415, 327, 3, 2, 2, 2, 2416, 2418, 6, 165, 6, 2, 2417, 2419, 7, 11, 2, 2, 2418, 2417, 3, 2, 2, 2, 2418, 2419, 3, 2, 2, 2, 2419, 2420, 3, 2, 2, 2, 2420, 2431, 5, 440, 221, 2, 2421, 2422, 7, 362, 2, 2, 2422, 2427, 7, 369, 2, 2, 2423, 2424, 7, 343, 2, 2, 2424, 2426, 7, 369, 2, 2, 2425, 2423, 3, 2, 2, 2, 2426, 2429, 3, 2, 2, 2, 2427, 2425, 3, 2, 2, 2, 2427, 2428, 3, 2, 2, 2, 2428, 2430, 3, 2, 2, 2, 2429, 2427, 3, 2, 2, 2, 2430, 2432, 7, 365, 2, 2, 2431, 2421, 3, 2, 2, 2, 2431, 2432, 3, 2, 2, 2, 2432, 329, 3, 2, 2, 2, 2433, 2434, 5, 440, 221, 2, 2434, 331, 3, 2, 2, 2, 2435, 2436, 7, 309, 2, 2, 2436, 2437, 5, 368, 185, 2, 2437, 333, 3, 2, 2, 2, 2438, 2439, 7, 123, 2, 2, 2439, 2440, 7, 27, 2, 2, 2440, 2445, 5, 384, 193, 2, 2441, 2442, 7, 343, 2, 2, 2442, 2444, 5, 384, 193, 2, 2443, 2441, 3, 2, 2, 2, 2444, 2447, 3, 2, 2, 2, 2445, 2443, 3, 2, 2, 2, 2445, 2446, 3, 2, 2, 2, 2446, 335, 3, 2, 2, 2, 2447, 2445, 3, 2, 2, 2, 2448, 2449, 7, 126, 2, 2, 2449, 2450, 5, 368, 185, 2, 2450, 337, 3, 2, 2, 2, 2451, 2452, 7, 218, 2, 2, 2452, 2453, 5, 368, 185, 2, 2453, 339, 3, 2, 2, 2, 2454, 2455, 7, 201, 2, 2, 2455, 2456, 7, 27, 2, 2, 2456, 2458, 5, 384, 193, 2, 2457, 2459, 9, 9, 2, 2, 2458, 2457, 3, 2, 2, 2, 2458, 2459, 3, 2, 2, 2, 2459, 2467, 3, 2, 2, 2, 2460, 2461, 7, 343, 2, 2, 2461, 2463, 5, 384, 193, 2, 2462, 2464, 9, 9, 2, 2, 2463, 2462, 3, 2, 2, 2, 2463, 2464, 3, 2, 2, 2, 2464, 2466, 3, 2, 2, 2, 2465, 2460, 3, 2, 2, 2, 2466, 2469, 3, 2, 2, 2, 2467, 2465, 3, 2, 2, 2, 2467, 2468, 3, 2, 2, 2, 2468, 341, 3, 2, 2, 2, 2469, 2467, 3, 2, 2, 2, 2470, 2472, 5, 344, 173, 2, 2471, 2470, 3, 2, 2, 2, 2472, 2473, 3, 2, 2, 2, 2473, 2471, 3, 2, 2, 2, 2473, 2474, 3, 2, 2, 2, 2474, 343, 3, 2, 2, 2, 2475, 2476, 7, 161, 2, 2, 2476, 2487, 5, 384, 193, 2, 2477, 2478, 7, 311, 2, 2, 2478, 2484, 9, 40, 2, 2, 2479, 2480, 7, 299, 2, 2, 2480, 2481, 7, 8, 2, 2, 2481, 2482, 7, 154, 2, 2, 2482, 2483, 9, 41, 2, 2, 2483, 2485, 7, 167, 2, 2, 2484, 2479, 3, 2, 2, 2, 2484, 2485, 3, 2, 2, 2, 2485, 2487, 3, 2, 2, 2, 2486, 2475, 3, 2, 2, 2, 2486, 2477, 3, 2, 2, 2, 2487, 345, 3, 2, 2, 2, 2488, 2489, 7, 297, 2, 2, 2489, 2490, 5, 350, 176, 2, 2490, 2491, 7, 253, 2, 2, 2491, 2493, 5, 348, 175, 2, 2492, 2494, 5, 332, 167, 2, 2493, 2492, 3, 2, 2, 2, 2493, 2494, 3, 2, 2, 2, 2494, 2496, 3, 2, 2, 2, 2495, 2497, 5, 352, 177, 2, 2496, 2495, 3, 2, 2, 2, 2496, 2497, 3, 2, 2, 2, 2497, 347, 3, 2, 2, 2, 2498, 2503, 5, 28, 15, 2, 2499, 2500, 7, 343, 2, 2, 2500, 2502, 5, 28, 15, 2, 2501, 2499, 3, 2, 2, 2, 2502, 2505, 3, 2, 2, 2, 2503, 2501, 3, 2, 2, 2, 2503, 2504, 3, 2, 2, 2, 2504, 349, 3, 2, 2, 2, 2505, 2503, 3, 2, 2, 2, 2506, 2508, 5, 330, 166, 2, 2507, 2509, 5, 312, 157, 2, 2508, 2507, 3, 2, 2, 2, 2508, 2509, 3, 2, 2, 2, 2509, 2515, 3, 2, 2, 2, 2510, 2511, 7, 362, 2, 2, 2511, 2512, 5, 282, 142, 2, 2512, 2513, 7, 365, 2, 2, 2513, 2515, 3, 2, 2, 2, 2514, 2506, 3, 2, 2, 2, 2514, 2510, 3, 2, 2, 2, 2515, 2520, 3, 2, 2, 2, 2516, 2518, 7, 11, 2, 2, 2517, 2516, 3, 2, 2, 2, 2517, 2518, 3, 2, 2, 2, 2518, 2519, 3, 2, 2, 2, 2519, 2521, 5, 440, 221, 2, 2520, 2517, 3, 2, 2, 2, 2520, 2521, 3, 2, 2, 2, 2521, 351, 3, 2, 2, 2, 2522, 2523, 7, 91, 2, 2, 2523, 2524, 5, 178, 90, 2, 2524, 353, 3, 2, 2, 2, 2525, 2526, 7, 176, 2, 2, 2526, 2527, 7, 148, 2, 2, 2527, 2528, 5, 356, 179, 2, 2528, 2529, 7, 300, 2, 2, 2529, 2530, 5, 356, 179, 2, 2530, 2531, 7, 197, 2, 2, 2531, 2533, 5, 368, 185, 2, 2532, 2534, 5, 358, 180, 2, 2533, 2532, 3, 2, 2, 2, 2534, 2535, 3, 2, 2, 2, 2535, 2533, 3, 2, 2, 2, 2535, 2536, 3, 2, 2, 2, 2536, 355, 3, 2, 2, 2, 2537, 2543, 5, 330, 166, 2, 2538, 2539, 7, 362, 2, 2, 2539, 2540, 5, 282, 142, 2, 2540, 2541, 7, 365, 2, 2, 2541, 2543, 3, 2, 2, 2, 2542, 2537, 3, 2, 2, 2, 2542, 2538, 3, 2, 2, 2, 2543, 2548, 3, 2, 2, 2, 2544, 2546, 7, 11, 2, 2, 2545, 2544, 3, 2, 2, 2, 2545, 2546, 3, 2, 2, 2, 2546, 2547, 3, 2, 2, 2, 2547, 2549, 5, 440, 221, 2, 2548, 2545, 3, 2, 2, 2, 2548, 2549, 3, 2, 2, 2, 2549, 357, 3, 2, 2, 2, 2550, 2552, 7, 308, 2, 2, 2551, 2553, 7, 190, 2, 2, 2552, 2551, 3, 2, 2, 2, 2552, 2553, 3, 2, 2, 2, 2553, 2554, 3, 2, 2, 2, 2554, 2557, 7, 173, 2, 2, 2555, 2556, 7, 8, 2, 2, 2556, 2558, 5, 368, 185, 2, 2557, 2555, 3, 2, 2, 2, 2557, 2558, 3, 2, 2, 2, 2558, 2559, 3, 2, 2, 2, 2559, 2560, 7, 285, 2, 2, 2560, 2564, 5, 360, 181, 2, 2561, 2562, 7, 91, 2, 2, 2562, 2564, 7, 132, 2, 2, 2563, 2550, 3, 2, 2, 2, 2563, 2561, 3, 2, 2, 2, 2564, 359, 3, 2, 2, 2, 2565, 2567, 7, 140, 2, 2, 2566, 2568, 5, 180, 91, 2, 2567, 2566, 3, 2, 2, 2, 2567, 2568, 3, 2, 2, 2, 2568, 2569, 3, 2, 2, 2, 2569, 2570, 7, 302, 2, 2, 2570, 2586, 5, 184, 93, 2, 2571, 2572, 7, 297, 2, 2, 2572, 2573, 7, 253, 2, 2, 2573, 2578, 5, 28, 15, 2, 2574, 2575, 7, 343, 2, 2, 2575, 2577, 5, 28, 15, 2, 2576, 2574, 3, 2, 2, 2, 2577, 2580, 3, 2, 2, 2, 2578, 2576, 3, 2, 2, 2, 2578, 2579, 3, 2, 2, 2, 2579, 2582, 3, 2, 2, 2, 2580, 2578, 3, 2, 2, 2, 2581, 2583, 5, 332, 167, 2, 2582, 2581, 3, 2, 2, 2, 2582, 2583, 3, 2, 2, 2, 2583, 2586, 3, 2, 2, 2, 2584, 2586, 7, 77, 2, 2, 2585, 2565, 3, 2, 2, 2, 2585, 2571, 3, 2, 2, 2, 2585, 2584, 3, 2, 2, 2, 2586, 361, 3, 2, 2, 2, 2587, 2589, 7, 77, 2, 2, 2588, 2590, 7, 116, 2, 2, 2589, 2588, 3, 2, 2, 2, 2589, 2590, 3, 2, 2, 2, 2590, 2591, 3, 2, 2, 2, 2591, 2593, 5, 330, 166, 2, 2592, 2594, 5, 364, 183, 2, 2593, 2592, 3, 2, 2, 2, 2593, 2594, 3, 2, 2, 2, 2594, 2597, 3, 2, 2, 2, 2595, 2598, 5, 332, 167, 2, 2596, 2598, 7, 5, 2, 2, 2597, 2595, 3, 2, 2, 2, 2597, 2596, 3, 2, 2, 2, 2597, 2598, 3, 2, 2, 2, 2598, 363, 3, 2, 2, 2, 2599, 2601, 6, 183, 7, 2, 2600, 2602, 7, 11, 2, 2, 2601, 2600, 3, 2, 2, 2, 2601, 2602, 3, 2, 2, 2, 2602, 2603, 3, 2, 2, 2, 2603, 2604, 5, 440, 221, 2, 2604, 365, 3, 2, 2, 2, 2605, 2607, 9, 42, 2, 2, 2606, 2608, 7, 280, 2, 2, 2607, 2606, 3, 2, 2, 2, 2607, 2608, 3, 2, 2, 2, 2608, 2609, 3, 2, 2, 2, 2609, 2610, 5, 330, 166, 2, 2610, 367, 3, 2, 2, 2, 2611, 2613, 8, 185, 1, 2, 2612, 2614, 7, 190, 2, 2, 2613, 2612, 3, 2, 2, 2, 2613, 2614, 3, 2, 2, 2, 2614, 2615, 3, 2, 2, 2, 2615, 2616, 7, 362, 2, 2, 2616, 2617, 5, 368, 185, 2, 2617, 2618, 7, 365, 2, 2, 2618, 2621, 3, 2, 2, 2, 2619, 2621, 5, 370, 186, 2, 2620, 2611, 3, 2, 2, 2, 2620, 2619, 3, 2, 2, 2, 2621, 2628, 3, 2, 2, 2, 2622, 2623, 12, 4, 2, 2, 2623, 2624, 5, 380, 191, 2, 2624, 2625, 5, 368, 185, 5, 2625, 2627, 3, 2, 2, 2, 2626, 2622, 3, 2, 2, 2, 2627, 2630, 3, 2, 2, 2, 2628, 2626, 3, 2, 2, 2, 2628, 2629, 3, 2, 2, 2, 2629, 369, 3, 2, 2, 2, 2630, 2628, 3, 2, 2, 2, 2631, 2635, 5, 372, 187, 2, 2632, 2635, 5, 378, 190, 2, 2633, 2635, 5, 384, 193, 2, 2634, 2631, 3, 2, 2, 2, 2634, 2632, 3, 2, 2, 2, 2634, 2633, 3, 2, 2, 2, 2635, 371, 3, 2, 2, 2, 2636, 2637, 5, 384, 193, 2, 2637, 2639, 7, 150, 2, 2, 2638, 2640, 7, 190, 2, 2, 2639, 2638, 3, 2, 2, 2, 2639, 2640, 3, 2, 2, 2, 2640, 2641, 3, 2, 2, 2, 2641, 2642, 7, 192, 2, 2, 2642, 2660, 3, 2, 2, 2, 2643, 2644, 5, 384, 193, 2, 2644, 2645, 7, 19, 2, 2, 2645, 2646, 5, 384, 193, 2, 2646, 2647, 7, 8, 2, 2, 2647, 2648, 5, 384, 193, 2, 2648, 2660, 3, 2, 2, 2, 2649, 2651, 7, 190, 2, 2, 2650, 2649, 3, 2, 2, 2, 2650, 2651, 3, 2, 2, 2, 2651, 2652, 3, 2, 2, 2, 2652, 2653, 7, 103, 2, 2, 2653, 2654, 7, 362, 2, 2, 2654, 2655, 5, 282, 142, 2, 2655, 2656, 7, 365, 2, 2, 2656, 2660, 3, 2, 2, 2, 2657, 2660, 5, 374, 188, 2, 2658, 2660, 5, 376, 189, 2, 2659, 2636, 3, 2, 2, 2, 2659, 2643, 3, 2, 2, 2, 2659, 2650, 3, 2, 2, 2, 2659, 2657, 3, 2, 2, 2, 2659, 2658, 3, 2, 2, 2, 2660, 373, 3, 2, 2, 2, 2661, 2663, 5, 384, 193, 2, 2662, 2664, 7, 190, 2, 2, 2663, 2662, 3, 2, 2, 2, 2663, 2664, 3, 2, 2, 2, 2664, 2665, 3, 2, 2, 2, 2665, 2666, 7, 134, 2, 2, 2666, 2676, 7, 362, 2, 2, 2667, 2672, 5, 384, 193, 2, 2668, 2669, 7, 343, 2, 2, 2669, 2671, 5, 384, 193, 2, 2670, 2668, 3, 2, 2, 2, 2671, 2674, 3, 2, 2, 2, 2672, 2670, 3, 2, 2, 2, 2672, 2673, 3, 2, 2, 2, 2673, 2677, 3, 2, 2, 2, 2674, 2672, 3, 2, 2, 2, 2675, 2677, 5, 282, 142, 2, 2676, 2667, 3, 2, 2, 2, 2676, 2675, 3, 2, 2, 2, 2677, 2678, 3, 2, 2, 2, 2678, 2679, 7, 365, 2, 2, 2679, 375, 3, 2, 2, 2, 2680, 2681, 7, 362, 2, 2, 2681, 2686, 5, 384, 193, 2, 2682, 2683, 7, 343, 2, 2, 2683, 2685, 5, 384, 193, 2, 2684, 2682, 3, 2, 2, 2, 2685, 2688, 3, 2, 2, 2, 2686, 2684, 3, 2, 2, 2, 2686, 2687, 3, 2, 2, 2, 2687, 2689, 3, 2, 2, 2, 2688, 2686, 3, 2, 2, 2, 2689, 2691, 7, 365, 2, 2, 2690, 2692, 7, 190, 2, 2, 2691, 2690, 3, 2, 2, 2, 2691, 2692, 3, 2, 2, 2, 2692, 2693, 3, 2, 2, 2, 2693, 2694, 7, 134, 2, 2, 2694, 2695, 7, 362, 2, 2, 2695, 2696, 5, 282, 142, 2, 2696, 2697, 7, 365, 2, 2, 2697, 377, 3, 2, 2, 2, 2698, 2699, 5, 384, 193, 2, 2699, 2700, 5, 382, 192, 2, 2700, 2701, 5, 384, 193, 2, 2701, 379, 3, 2, 2, 2, 2702, 2703, 9, 43, 2, 2, 2703, 381, 3, 2, 2, 2, 2704, 2717, 7, 348, 2, 2, 2705, 2717, 7, 349, 2, 2, 2706, 2717, 7, 352, 2, 2, 2707, 2717, 7, 353, 2, 2, 2708, 2717, 7, 356, 2, 2, 2709, 2717, 7, 357, 2, 2, 2710, 2717, 7, 354, 2, 2, 2711, 2717, 7, 355, 2, 2, 2712, 2714, 7, 190, 2, 2, 2713, 2712, 3, 2, 2, 2, 2713, 2714, 3, 2, 2, 2, 2714, 2715, 3, 2, 2, 2, 2715, 2717, 9, 44, 2, 2, 2716, 2704, 3, 2, 2, 2, 2716, 2705, 3, 2, 2, 2, 2716, 2706, 3, 2, 2, 2, 2716, 2707, 3, 2, 2, 2, 2716, 2708, 3, 2, 2, 2, 2716, 2709, 3, 2, 2, 2, 2716, 2710, 3, 2, 2, 2, 2716, 2711, 3, 2, 2, 2, 2716, 2713, 3, 2, 2, 2, 2717, 383, 3, 2, 2, 2, 2718, 2719, 8, 193, 1, 2, 2719, 2720, 7, 362, 2, 2, 2720, 2721, 5, 282, 142, 2, 2721, 2722, 7, 365, 2, 2, 2722, 2736, 3, 2, 2, 2, 2723, 2724, 7, 362, 2, 2, 2724, 2725, 5, 384, 193, 2, 2725, 2726, 7, 365, 2, 2, 2726, 2736, 3, 2, 2, 2, 2727, 2736, 5, 388, 195, 2, 2728, 2736, 5, 392, 197, 2, 2729, 2736, 5, 396, 199, 2, 2730, 2736, 5, 402, 202, 2, 2731, 2736, 5, 404, 203, 2, 2732, 2736, 5, 412, 207, 2, 2733, 2736, 5, 414, 208, 2, 2734, 2736, 5, 386, 194, 2, 2735, 2718, 3, 2, 2, 2, 2735, 2723, 3, 2, 2, 2, 2735, 2727, 3, 2, 2, 2, 2735, 2728, 3, 2, 2, 2, 2735, 2729, 3, 2, 2, 2, 2735, 2730, 3, 2, 2, 2, 2735, 2731, 3, 2, 2, 2, 2735, 2732, 3, 2, 2, 2, 2735, 2733, 3, 2, 2, 2, 2735, 2734, 3, 2, 2, 2, 2736, 2753, 3, 2, 2, 2, 2737, 2738, 12, 16, 2, 2, 2738, 2739, 7, 358, 2, 2, 2739, 2752, 5, 384, 193, 17, 2740, 2741, 12, 15, 2, 2, 2741, 2742, 7, 345, 2, 2, 2742, 2752, 5, 384, 193, 16, 2743, 2744, 12, 14, 2, 2, 2744, 2745, 7, 341, 2, 2, 2745, 2752, 5, 384, 193, 15, 2746, 2747, 12, 13, 2, 2, 2747, 2748, 7, 368, 2, 2, 2748, 2752, 5, 384, 193, 14, 2749, 2750, 12, 17, 2, 2, 2750, 2752, 5, 390, 196, 2, 2751, 2737, 3, 2, 2, 2, 2751, 2740, 3, 2, 2, 2, 2751, 2743, 3, 2, 2, 2, 2751, 2746, 3, 2, 2, 2, 2751, 2749, 3, 2, 2, 2, 2752, 2755, 3, 2, 2, 2, 2753, 2751, 3, 2, 2, 2, 2753, 2754, 3, 2, 2, 2, 2754, 385, 3, 2, 2, 2, 2755, 2753, 3, 2, 2, 2, 2756, 2765, 5, 436, 219, 2, 2757, 2765, 5, 438, 220, 2, 2758, 2765, 5, 448, 225, 2, 2759, 2765, 5, 440, 221, 2, 2760, 2765, 5, 442, 222, 2, 2761, 2765, 5, 446, 224, 2, 2762, 2765, 5, 444, 223, 2, 2763, 2765, 5, 450, 226, 2, 2764, 2756, 3, 2, 2, 2, 2764, 2757, 3, 2, 2, 2, 2764, 2758, 3, 2, 2, 2, 2764, 2759, 3, 2, 2, 2, 2764, 2760, 3, 2, 2, 2, 2764, 2761, 3, 2, 2, 2, 2764, 2762, 3, 2, 2, 2, 2764, 2763, 3, 2, 2, 2, 2765, 387, 3, 2, 2, 2, 2766, 2767, 7, 147, 2, 2, 2767, 2768, 5, 384, 193, 2, 2768, 2769, 5, 390, 196, 2, 2769, 389, 3, 2, 2, 2, 2770, 2771, 9, 45, 2, 2, 2771, 391, 3, 2, 2, 2, 2772, 2773, 5, 394, 198, 2, 2773, 2774, 9, 46, 2, 2, 2774, 2779, 5, 394, 198, 2, 2775, 2776, 9, 46, 2, 2, 2776, 2778, 5, 394, 198, 2, 2777, 2775, 3, 2, 2, 2, 2778, 2781, 3, 2, 2, 2, 2779, 2777, 3, 2, 2, 2, 2779, 2780, 3, 2, 2, 2, 2780, 393, 3, 2, 2, 2, 2781, 2779, 3, 2, 2, 2, 2782, 2783, 7, 362, 2, 2, 2783, 2784, 5, 384, 193, 2, 2784, 2785, 7, 365, 2, 2, 2785, 2792, 3, 2, 2, 2, 2786, 2792, 5, 396, 199, 2, 2787, 2792, 5, 404, 203, 2, 2788, 2792, 5, 412, 207, 2, 2789, 2792, 5, 414, 208, 2, 2790, 2792, 5, 386, 194, 2, 2791, 2782, 3, 2, 2, 2, 2791, 2786, 3, 2, 2, 2, 2791, 2787, 3, 2, 2, 2, 2791, 2788, 3, 2, 2, 2, 2791, 2789, 3, 2, 2, 2, 2791, 2790, 3, 2, 2, 2, 2792, 395, 3, 2, 2, 2, 2793, 2796, 5, 398, 200, 2, 2794, 2796, 5, 400, 201, 2, 2795, 2793, 3, 2, 2, 2, 2795, 2794, 3, 2, 2, 2, 2796, 397, 3, 2, 2, 2, 2797, 2798, 7, 32, 2, 2, 2798, 2804, 5, 384, 193, 2, 2799, 2800, 7, 308, 2, 2, 2800, 2801, 5, 384, 193, 2, 2801, 2802, 7, 285, 2, 2, 2802, 2803, 5, 384, 193, 2, 2803, 2805, 3, 2, 2, 2, 2804, 2799, 3, 2, 2, 2, 2805, 2806, 3, 2, 2, 2, 2806, 2804, 3, 2, 2, 2, 2806, 2807, 3, 2, 2, 2, 2807, 2810, 3, 2, 2, 2, 2808, 2809, 7, 91, 2, 2, 2809, 2811, 5, 384, 193, 2, 2810, 2808, 3, 2, 2, 2, 2810, 2811, 3, 2, 2, 2, 2811, 2812, 3, 2, 2, 2, 2812, 2813, 7, 95, 2, 2, 2813, 399, 3, 2, 2, 2, 2814, 2820, 7, 32, 2, 2, 2815, 2816, 7, 308, 2, 2, 2816, 2817, 5, 368, 185, 2, 2817, 2818, 7, 285, 2, 2, 2818, 2819, 5, 384, 193, 2, 2819, 2821, 3, 2, 2, 2, 2820, 2815, 3, 2, 2, 2, 2821, 2822, 3, 2, 2, 2, 2822, 2820, 3, 2, 2, 2, 2822, 2823, 3, 2, 2, 2, 2823, 2826, 3, 2, 2, 2, 2824, 2825, 7, 91, 2, 2, 2825, 2827, 5, 384, 193, 2, 2826, 2824, 3, 2, 2, 2, 2826, 2827, 3, 2, 2, 2, 2827, 2828, 3, 2, 2, 2, 2828, 2829, 7, 95, 2, 2, 2829, 401, 3, 2, 2, 2, 2830, 2831, 5, 440, 221, 2, 2831, 2832, 7, 359, 2, 2, 2832, 2833, 9, 47, 2, 2, 2833, 403, 3, 2, 2, 2, 2834, 2835, 7, 16, 2, 2, 2835, 2837, 7, 362, 2, 2, 2836, 2838, 5, 406, 204, 2, 2837, 2836, 3, 2, 2, 2, 2837, 2838, 3, 2, 2, 2, 2838, 2839, 3, 2, 2, 2, 2839, 2840, 5, 384, 193, 2, 2840, 2842, 7, 365, 2, 2, 2841, 2843, 5, 408, 205, 2, 2842, 2841, 3, 2, 2, 2, 2842, 2843, 3, 2, 2, 2, 2843, 2987, 3, 2, 2, 2, 2844, 2845, 7, 54, 2, 2, 2845, 2851, 7, 362, 2, 2, 2846, 2848, 5, 406, 204, 2, 2847, 2846, 3, 2, 2, 2, 2847, 2848, 3, 2, 2, 2, 2848, 2849, 3, 2, 2, 2, 2849, 2852, 5, 384, 193, 2, 2850, 2852, 7, 358, 2, 2, 2851, 2847, 3, 2, 2, 2, 2851, 2850, 3, 2, 2, 2, 2852, 2853, 3, 2, 2, 2, 2853, 2855, 7, 365, 2, 2, 2854, 2856, 5, 408, 205, 2, 2855, 2854, 3, 2, 2, 2, 2855, 2856, 3, 2, 2, 2, 2856, 2987, 3, 2, 2, 2, 2857, 2858, 7, 55, 2, 2, 2858, 2864, 7, 362, 2, 2, 2859, 2861, 5, 406, 204, 2, 2860, 2859, 3, 2, 2, 2, 2860, 2861, 3, 2, 2, 2, 2861, 2862, 3, 2, 2, 2, 2862, 2865, 5, 384, 193, 2, 2863, 2865, 7, 358, 2, 2, 2864, 2860, 3, 2, 2, 2, 2864, 2863, 3, 2, 2, 2, 2865, 2866, 3, 2, 2, 2, 2866, 2868, 7, 365, 2, 2, 2867, 2869, 5, 408, 205, 2, 2868, 2867, 3, 2, 2, 2, 2868, 2869, 3, 2, 2, 2, 2869, 2987, 3, 2, 2, 2, 2870, 2871, 7, 318, 2, 2, 2871, 2872, 7, 362, 2, 2, 2872, 2873, 7, 365, 2, 2, 2873, 2987, 5, 408, 205, 2, 2874, 2875, 7, 322, 2, 2, 2875, 2876, 7, 362, 2, 2, 2876, 2877, 7, 365, 2, 2, 2877, 2987, 5, 408, 205, 2, 2878, 2879, 7, 323, 2, 2, 2879, 2880, 7, 362, 2, 2, 2880, 2881, 5, 384, 193, 2, 2881, 2882, 7, 365, 2, 2, 2882, 2883, 5, 408, 205, 2, 2883, 2987, 3, 2, 2, 2, 2884, 2885, 7, 324, 2, 2, 2885, 2886, 7, 362, 2, 2, 2886, 2893, 5, 384, 193, 2, 2887, 2888, 7, 343, 2, 2, 2888, 2891, 5, 384, 193, 2, 2889, 2890, 7, 343, 2, 2, 2890, 2892, 5, 384, 193, 2, 2891, 2889, 3, 2, 2, 2, 2891, 2892, 3, 2, 2, 2, 2892, 2894, 3, 2, 2, 2, 2893, 2887, 3, 2, 2, 2, 2893, 2894, 3, 2, 2, 2, 2894, 2895, 3, 2, 2, 2, 2895, 2896, 7, 365, 2, 2, 2896, 2897, 5, 408, 205, 2, 2897, 2987, 3, 2, 2, 2, 2898, 2899, 7, 325, 2, 2, 2899, 2900, 7, 362, 2, 2, 2900, 2901, 5, 384, 193, 2, 2901, 2902, 7, 365, 2, 2, 2902, 2903, 5, 408, 205, 2, 2903, 2987, 3, 2, 2, 2, 2904, 2905, 7, 326, 2, 2, 2905, 2906, 7, 362, 2, 2, 2906, 2913, 5, 384, 193, 2, 2907, 2908, 7, 343, 2, 2, 2908, 2911, 5, 384, 193, 2, 2909, 2910, 7, 343, 2, 2, 2910, 2912, 5, 384, 193, 2, 2911, 2909, 3, 2, 2, 2, 2911, 2912, 3, 2, 2, 2, 2912, 2914, 3, 2, 2, 2, 2913, 2907, 3, 2, 2, 2, 2913, 2914, 3, 2, 2, 2, 2914, 2915, 3, 2, 2, 2, 2915, 2916, 7, 365, 2, 2, 2916, 2917, 5, 408, 205, 2, 2917, 2987, 3, 2, 2, 2, 2918, 2919, 7, 174, 2, 2, 2919, 2921, 7, 362, 2, 2, 2920, 2922, 5, 406, 204, 2, 2921, 2920, 3, 2, 2, 2, 2921, 2922, 3, 2, 2, 2, 2922, 2923, 3, 2, 2, 2, 2923, 2924, 5, 384, 193, 2, 2924, 2926, 7, 365, 2, 2, 2925, 2927, 5, 408, 205, 2, 2926, 2925, 3, 2, 2, 2, 2926, 2927, 3, 2, 2, 2, 2927, 2987, 3, 2, 2, 2, 2928, 2929, 7, 180, 2, 2, 2929, 2931, 7, 362, 2, 2, 2930, 2932, 5, 406, 204, 2, 2931, 2930, 3, 2, 2, 2, 2931, 2932, 3, 2, 2, 2, 2932, 2933, 3, 2, 2, 2, 2933, 2934, 5, 384, 193, 2, 2934, 2936, 7, 365, 2, 2, 2935, 2937, 5, 408, 205, 2, 2936, 2935, 3, 2, 2, 2, 2936, 2937, 3, 2, 2, 2, 2937, 2987, 3, 2, 2, 2, 2938, 2939, 7, 335, 2, 2, 2939, 2940, 7, 362, 2, 2, 2940, 2941, 7, 365, 2, 2, 2941, 2987, 5, 408, 205, 2, 2942, 2943, 7, 336, 2, 2, 2943, 2944, 7, 362, 2, 2, 2944, 2945, 7, 365, 2, 2, 2945, 2987, 5, 408, 205, 2, 2946, 2947, 7, 337, 2, 2, 2947, 2949, 7, 362, 2, 2, 2948, 2950, 5, 406, 204, 2, 2949, 2948, 3, 2, 2, 2, 2949, 2950, 3, 2, 2, 2, 2950, 2951, 3, 2, 2, 2, 2951, 2952, 5, 384, 193, 2, 2952, 2954, 7, 365, 2, 2, 2953, 2955, 5, 408, 205, 2, 2954, 2953, 3, 2, 2, 2, 2954, 2955, 3, 2, 2, 2, 2955, 2987, 3, 2, 2, 2, 2956, 2957, 7, 277, 2, 2, 2957, 2959, 7, 362, 2, 2, 2958, 2960, 5, 406, 204, 2, 2959, 2958, 3, 2, 2, 2, 2959, 2960, 3, 2, 2, 2, 2960, 2961, 3, 2, 2, 2, 2961, 2962, 5, 384, 193, 2, 2962, 2964, 7, 365, 2, 2, 2963, 2965, 5, 408, 205, 2, 2964, 2963, 3, 2, 2, 2, 2964, 2965, 3, 2, 2, 2, 2965, 2987, 3, 2, 2, 2, 2966, 2967, 7, 303, 2, 2, 2967, 2969, 7, 362, 2, 2, 2968, 2970, 5, 406, 204, 2, 2969, 2968, 3, 2, 2, 2, 2969, 2970, 3, 2, 2, 2, 2970, 2971, 3, 2, 2, 2, 2971, 2972, 5, 384, 193, 2, 2972, 2974, 7, 365, 2, 2, 2973, 2975, 5, 408, 205, 2, 2974, 2973, 3, 2, 2, 2, 2974, 2975, 3, 2, 2, 2, 2975, 2987, 3, 2, 2, 2, 2976, 2977, 7, 339, 2, 2, 2977, 2979, 7, 362, 2, 2, 2978, 2980, 5, 406, 204, 2, 2979, 2978, 3, 2, 2, 2, 2979, 2980, 3, 2, 2, 2, 2980, 2981, 3, 2, 2, 2, 2981, 2982, 5, 384, 193, 2, 2982, 2984, 7, 365, 2, 2, 2983, 2985, 5, 408, 205, 2, 2984, 2983, 3, 2, 2, 2, 2984, 2985, 3, 2, 2, 2, 2985, 2987, 3, 2, 2, 2, 2986, 2834, 3, 2, 2, 2, 2986, 2844, 3, 2, 2, 2, 2986, 2857, 3, 2, 2, 2, 2986, 2870, 3, 2, 2, 2, 2986, 2874, 3, 2, 2, 2, 2986, 2878, 3, 2, 2, 2, 2986, 2884, 3, 2, 2, 2, 2986, 2898, 3, 2, 2, 2, 2986, 2904, 3, 2, 2, 2, 2986, 2918, 3, 2, 2, 2, 2986, 2928, 3, 2, 2, 2, 2986, 2938, 3, 2, 2, 2, 2986, 2942, 3, 2, 2, 2, 2986, 2946, 3, 2, 2, 2, 2986, 2956, 3, 2, 2, 2, 2986, 2966, 3, 2, 2, 2, 2986, 2976, 3, 2, 2, 2, 2987, 405, 3, 2, 2, 2, 2988, 2989, 9, 38, 2, 2, 2989, 407, 3, 2, 2, 2, 2990, 2991, 7, 204, 2, 2, 2991, 2993, 7, 362, 2, 2, 2992, 2994, 5, 410, 206, 2, 2993, 2992, 3, 2, 2, 2, 2993, 2994, 3, 2, 2, 2, 2994, 2996, 3, 2, 2, 2, 2995, 2997, 5, 340, 171, 2, 2996, 2995, 3, 2, 2, 2, 2996, 2997, 3, 2, 2, 2, 2997, 2998, 3, 2, 2, 2, 2998, 2999, 7, 365, 2, 2, 2999, 409, 3, 2, 2, 2, 3000, 3001, 7, 208, 2, 2, 3001, 3002, 7, 27, 2, 2, 3002, 3007, 5, 384, 193, 2, 3003, 3004, 7, 343, 2, 2, 3004, 3006, 5, 384, 193, 2, 3005, 3003, 3, 2, 2, 2, 3006, 3009, 3, 2, 2, 2, 3007, 3005, 3, 2, 2, 2, 3007, 3008, 3, 2, 2, 2, 3008, 411, 3, 2, 2, 2, 3009, 3007, 3, 2, 2, 2, 3010, 3211, 7, 317, 2, 2, 3011, 3012, 7, 34, 2, 2, 3012, 3013, 7, 362, 2, 2, 3013, 3014, 5, 384, 193, 2, 3014, 3015, 7, 11, 2, 2, 3015, 3017, 5, 120, 61, 2, 3016, 3018, 5, 122, 62, 2, 3017, 3016, 3, 2, 2, 2, 3017, 3018, 3, 2, 2, 2, 3018, 3019, 3, 2, 2, 2, 3019, 3020, 7, 365, 2, 2, 3020, 3211, 3, 2, 2, 2, 3021, 3022, 7, 54, 2, 2, 3022, 3025, 7, 362, 2, 2, 3023, 3026, 5, 384, 193, 2, 3024, 3026, 7, 358, 2, 2, 3025, 3023, 3, 2, 2, 2, 3025, 3024, 3, 2, 2, 2, 3026, 3027, 3, 2, 2, 2, 3027, 3211, 7, 365, 2, 2, 3028, 3211, 7, 319, 2, 2, 3029, 3030, 7, 60, 2, 2, 3030, 3211, 7, 65, 2, 2, 3031, 3035, 7, 320, 2, 2, 3032, 3033, 7, 60, 2, 2, 3033, 3035, 7, 286, 2, 2, 3034, 3031, 3, 2, 2, 2, 3034, 3032, 3, 2, 2, 2, 3035, 3040, 3, 2, 2, 2, 3036, 3037, 7, 362, 2, 2, 3037, 3038, 5, 384, 193, 2, 3038, 3039, 7, 365, 2, 2, 3039, 3041, 3, 2, 2, 2, 3040, 3036, 3, 2, 2, 2, 3040, 3041, 3, 2, 2, 2, 3041, 3211, 3, 2, 2, 2, 3042, 3211, 7, 321, 2, 2, 3043, 3044, 7, 60, 2, 2, 3044, 3211, 7, 340, 2, 2, 3045, 3046, 7, 327, 2, 2, 3046, 3047, 7, 362, 2, 2, 3047, 3060, 5, 384, 193, 2, 3048, 3049, 7, 343, 2, 2, 3049, 3057, 5, 384, 193, 2, 3050, 3051, 7, 343, 2, 2, 3051, 3052, 5, 384, 193, 2, 3052, 3053, 7, 348, 2, 2, 3053, 3054, 5, 384, 193, 2, 3054, 3056, 3, 2, 2, 2, 3055, 3050, 3, 2, 2, 2, 3056, 3059, 3, 2, 2, 2, 3057, 3055, 3, 2, 2, 2, 3057, 3058, 3, 2, 2, 2, 3058, 3061, 3, 2, 2, 2, 3059, 3057, 3, 2, 2, 2, 3060, 3048, 3, 2, 2, 2, 3060, 3061, 3, 2, 2, 2, 3061, 3062, 3, 2, 2, 2, 3062, 3063, 7, 365, 2, 2, 3063, 3211, 3, 2, 2, 2, 3064, 3065, 7, 328, 2, 2, 3065, 3066, 7, 362, 2, 2, 3066, 3079, 5, 384, 193, 2, 3067, 3068, 7, 343, 2, 2, 3068, 3076, 5, 384, 193, 2, 3069, 3070, 7, 343, 2, 2, 3070, 3071, 5, 384, 193, 2, 3071, 3072, 7, 348, 2, 2, 3072, 3073, 5, 384, 193, 2, 3073, 3075, 3, 2, 2, 2, 3074, 3069, 3, 2, 2, 2, 3075, 3078, 3, 2, 2, 2, 3076, 3074, 3, 2, 2, 2, 3076, 3077, 3, 2, 2, 2, 3077, 3080, 3, 2, 2, 2, 3078, 3076, 3, 2, 2, 2, 3079, 3067, 3, 2, 2, 2, 3079, 3080, 3, 2, 2, 2, 3080, 3081, 3, 2, 2, 2, 3081, 3082, 7, 365, 2, 2, 3082, 3211, 3, 2, 2, 2, 3083, 3084, 7, 329, 2, 2, 3084, 3085, 7, 362, 2, 2, 3085, 3098, 5, 384, 193, 2, 3086, 3087, 7, 343, 2, 2, 3087, 3095, 5, 384, 193, 2, 3088, 3089, 7, 343, 2, 2, 3089, 3090, 5, 384, 193, 2, 3090, 3091, 7, 348, 2, 2, 3091, 3092, 5, 384, 193, 2, 3092, 3094, 3, 2, 2, 2, 3093, 3088, 3, 2, 2, 2, 3094, 3097, 3, 2, 2, 2, 3095, 3093, 3, 2, 2, 2, 3095, 3096, 3, 2, 2, 2, 3096, 3099, 3, 2, 2, 2, 3097, 3095, 3, 2, 2, 2, 3098, 3086, 3, 2, 2, 2, 3098, 3099, 3, 2, 2, 2, 3099, 3100, 3, 2, 2, 2, 3100, 3101, 7, 365, 2, 2, 3101, 3211, 3, 2, 2, 2, 3102, 3103, 7, 330, 2, 2, 3103, 3104, 7, 362, 2, 2, 3104, 3117, 5, 384, 193, 2, 3105, 3106, 7, 343, 2, 2, 3106, 3114, 5, 384, 193, 2, 3107, 3108, 7, 343, 2, 2, 3108, 3109, 5, 384, 193, 2, 3109, 3110, 7, 348, 2, 2, 3110, 3111, 5, 384, 193, 2, 3111, 3113, 3, 2, 2, 2, 3112, 3107, 3, 2, 2, 2, 3113, 3116, 3, 2, 2, 2, 3114, 3112, 3, 2, 2, 2, 3114, 3115, 3, 2, 2, 2, 3115, 3118, 3, 2, 2, 2, 3116, 3114, 3, 2, 2, 2, 3117, 3105, 3, 2, 2, 2, 3117, 3118, 3, 2, 2, 2, 3118, 3119, 3, 2, 2, 2, 3119, 3120, 7, 365, 2, 2, 3120, 3211, 3, 2, 2, 2, 3121, 3122, 7, 331, 2, 2, 3122, 3123, 7, 362, 2, 2, 3123, 3136, 5, 384, 193, 2, 3124, 3125, 7, 343, 2, 2, 3125, 3133, 5, 384, 193, 2, 3126, 3127, 7, 343, 2, 2, 3127, 3128, 5, 384, 193, 2, 3128, 3129, 7, 348, 2, 2, 3129, 3130, 5, 384, 193, 2, 3130, 3132, 3, 2, 2, 2, 3131, 3126, 3, 2, 2, 2, 3132, 3135, 3, 2, 2, 2, 3133, 3131, 3, 2, 2, 2, 3133, 3134, 3, 2, 2, 2, 3134, 3137, 3, 2, 2, 2, 3135, 3133, 3, 2, 2, 2, 3136, 3124, 3, 2, 2, 2, 3136, 3137, 3, 2, 2, 2, 3137, 3138, 3, 2, 2, 2, 3138, 3139, 7, 365, 2, 2, 3139, 3211, 3, 2, 2, 2, 3140, 3141, 7, 332, 2, 2, 3141, 3142, 7, 362, 2, 2, 3142, 3155, 5, 384, 193, 2, 3143, 3144, 7, 343, 2, 2, 3144, 3152, 5, 384, 193, 2, 3145, 3146, 7, 343, 2, 2, 3146, 3147, 5, 384, 193, 2, 3147, 3148, 7, 348, 2, 2, 3148, 3149, 5, 384, 193, 2, 3149, 3151, 3, 2, 2, 2, 3150, 3145, 3, 2, 2, 2, 3151, 3154, 3, 2, 2, 2, 3152, 3150, 3, 2, 2, 2, 3152, 3153, 3, 2, 2, 2, 3153, 3156, 3, 2, 2, 2, 3154, 3152, 3, 2, 2, 2, 3155, 3143, 3, 2, 2, 2, 3155, 3156, 3, 2, 2, 2, 3156, 3157, 3, 2, 2, 2, 3157, 3158, 7, 365, 2, 2, 3158, 3211, 3, 2, 2, 2, 3159, 3160, 7, 333, 2, 2, 3160, 3161, 7, 362, 2, 2, 3161, 3169, 5, 384, 193, 2, 3162, 3163, 7, 343, 2, 2, 3163, 3164, 5, 384, 193, 2, 3164, 3165, 7, 348, 2, 2, 3165, 3166, 5, 384, 193, 2, 3166, 3168, 3, 2, 2, 2, 3167, 3162, 3, 2, 2, 2, 3168, 3171, 3, 2, 2, 2, 3169, 3167, 3, 2, 2, 2, 3169, 3170, 3, 2, 2, 2, 3170, 3172, 3, 2, 2, 2, 3171, 3169, 3, 2, 2, 2, 3172, 3173, 7, 365, 2, 2, 3173, 3211, 3, 2, 2, 2, 3174, 3175, 7, 334, 2, 2, 3175, 3176, 7, 362, 2, 2, 3176, 3182, 5, 384, 193, 2, 3177, 3178, 7, 343, 2, 2, 3178, 3179, 5, 384, 193, 2, 3179, 3180, 7, 348, 2, 2, 3180, 3181, 5, 384, 193, 2, 3181, 3183, 3, 2, 2, 2, 3182, 3177, 3, 2, 2, 2, 3183, 3184, 3, 2, 2, 2, 3184, 3182, 3, 2, 2, 2, 3184, 3185, 3, 2, 2, 2, 3185, 3188, 3, 2, 2, 2, 3186, 3187, 7, 343, 2, 2, 3187, 3189, 5, 384, 193, 2, 3188, 3186, 3, 2, 2, 2, 3188, 3189, 3, 2, 2, 2, 3189, 3190, 3, 2, 2, 2, 3190, 3191, 7, 365, 2, 2, 3191, 3211, 3, 2, 2, 2, 3192, 3193, 7, 245, 2, 2, 3193, 3194, 7, 362, 2, 2, 3194, 3195, 5, 384, 193, 2, 3195, 3196, 7, 365, 2, 2, 3196, 3211, 3, 2, 2, 2, 3197, 3198, 7, 276, 2, 2, 3198, 3199, 7, 362, 2, 2, 3199, 3200, 5, 384, 193, 2, 3200, 3201, 7, 116, 2, 2, 3201, 3204, 5, 384, 193, 2, 3202, 3203, 7, 112, 2, 2, 3203, 3205, 5, 384, 193, 2, 3204, 3202, 3, 2, 2, 2, 3204, 3205, 3, 2, 2, 2, 3205, 3206, 3, 2, 2, 2, 3206, 3207, 7, 365, 2, 2, 3207, 3211, 3, 2, 2, 2, 3208, 3211, 7, 338, 2, 2, 3209, 3211, 7, 340, 2, 2, 3210, 3010, 3, 2, 2, 2, 3210, 3011, 3, 2, 2, 2, 3210, 3021, 3, 2, 2, 2, 3210, 3028, 3, 2, 2, 2, 3210, 3029, 3, 2, 2, 2, 3210, 3034, 3, 2, 2, 2, 3210, 3042, 3, 2, 2, 2, 3210, 3043, 3, 2, 2, 2, 3210, 3045, 3, 2, 2, 2, 3210, 3064, 3, 2, 2, 2, 3210, 3083, 3, 2, 2, 2, 3210, 3102, 3, 2, 2, 2, 3210, 3121, 3, 2, 2, 2, 3210, 3140, 3, 2, 2, 2, 3210, 3159, 3, 2, 2, 2, 3210, 3174, 3, 2, 2, 2, 3210, 3192, 3, 2, 2, 2, 3210, 3197, 3, 2, 2, 2, 3210, 3208, 3, 2, 2, 2, 3210, 3209, 3, 2, 2, 2, 3211, 413, 3, 2, 2, 2, 3212, 3213, 5, 440, 221, 2, 3213, 3215, 7, 362, 2, 2, 3214, 3216, 5, 416, 209, 2, 3215, 3214, 3, 2, 2, 2, 3215, 3216, 3, 2, 2, 2, 3216, 3217, 3, 2, 2, 2, 3217, 3218, 7, 365, 2, 2, 3218, 415, 3, 2, 2, 2, 3219, 3224, 5, 418, 210, 2, 3220, 3221, 7, 343, 2, 2, 3221, 3223, 5, 418, 210, 2, 3222, 3220, 3, 2, 2, 2, 3223, 3226, 3, 2, 2, 2, 3224, 3222, 3, 2, 2, 2, 3224, 3225, 3, 2, 2, 2, 3225, 417, 3, 2, 2, 2, 3226, 3224, 3, 2, 2, 2, 3227, 3233, 6, 210, 14, 2, 3228, 3229, 5, 440, 221, 2, 3229, 3231, 7, 348, 2, 2, 3230, 3232, 7, 354, 2, 2, 3231, 3230, 3, 2, 2, 2, 3231, 3232, 3, 2, 2, 2, 3232, 3234, 3, 2, 2, 2, 3233, 3228, 3, 2, 2, 2, 3233, 3234, 3, 2, 2, 2, 3234, 3235, 3, 2, 2, 2, 3235, 3236, 5, 384, 193, 2, 3236, 419, 3, 2, 2, 2, 3237, 3240, 5, 282, 142, 2, 3238, 3240, 5, 384, 193, 2, 3239, 3237, 3, 2, 2, 2, 3239, 3238, 3, 2, 2, 2, 3240, 421, 3, 2, 2, 2, 3241, 3244, 5, 434, 218, 2, 3242, 3244, 5, 384, 193, 2, 3243, 3241, 3, 2, 2, 2, 3243, 3242, 3, 2, 2, 2, 3244, 423, 3, 2, 2, 2, 3245, 3249, 7, 128, 2, 2, 3246, 3248, 5, 426, 214, 2, 3247, 3246, 3, 2, 2, 2, 3248, 3251, 3, 2, 2, 2, 3249, 3247, 3, 2, 2, 2, 3249, 3250, 3, 2, 2, 2, 3250, 425, 3, 2, 2, 2, 3251, 3249, 3, 2, 2, 2, 3252, 3253, 7, 368, 2, 2, 3253, 3254, 5, 440, 221, 2, 3254, 3255, 5, 384, 193, 2, 3255, 3265, 3, 2, 2, 2, 3256, 3257, 7, 368, 2, 2, 3257, 3258, 5, 440, 221, 2, 3258, 3259, 7, 369, 2, 2, 3259, 3260, 7, 348, 2, 2, 3260, 3261, 5, 384, 193, 2, 3261, 3265, 3, 2, 2, 2, 3262, 3263, 7, 368, 2, 2, 3263, 3265, 5, 440, 221, 2, 3264, 3252, 3, 2, 2, 2, 3264, 3256, 3, 2, 2, 2, 3264, 3262, 3, 2, 2, 2, 3265, 427, 3, 2, 2, 2, 3266, 3267, 7, 351, 2, 2, 3267, 3268, 5, 430, 216, 2, 3268, 3269, 7, 367, 2, 2, 3269, 3272, 3, 2, 2, 2, 3270, 3272, 5, 432, 217, 2, 3271, 3266, 3, 2, 2, 2, 3271, 3270, 3, 2, 2, 2, 3272, 429, 3, 2, 2, 2, 3273, 3275, 11, 2, 2, 2, 3274, 3273, 3, 2, 2, 2, 3275, 3278, 3, 2, 2, 2, 3276, 3277, 3, 2, 2, 2, 3276, 3274, 3, 2, 2, 2, 3277, 431, 3, 2, 2, 2, 3278, 3276, 3, 2, 2, 2, 3279, 3280, 7, 129, 2, 2, 3280, 3281, 5, 384, 193, 2, 3281, 433, 3, 2, 2, 2, 3282, 3297, 7, 377, 2, 2, 3283, 3287, 7, 345, 2, 2, 3284, 3285, 7, 346, 2, 2, 3285, 3287, 7, 345, 2, 2, 3286, 3283, 3, 2, 2, 2, 3286, 3284, 3, 2, 2, 2, 3286, 3287, 3, 2, 2, 2, 3287, 3288, 3, 2, 2, 2, 3288, 3293, 5, 440, 221, 2, 3289, 3290, 7, 345, 2, 2, 3290, 3292, 5, 440, 221, 2, 3291, 3289, 3, 2, 2, 2, 3292, 3295, 3, 2, 2, 2, 3293, 3291, 3, 2, 2, 2, 3293, 3294, 3, 2, 2, 2, 3294, 3297, 3, 2, 2, 2, 3295, 3293, 3, 2, 2, 2, 3296, 3282, 3, 2, 2, 2, 3296, 3286, 3, 2, 2, 2, 3297, 435, 3, 2, 2, 2, 3298, 3299, 7, 65, 2, 2, 3299, 3300, 5, 442, 222, 2, 3300, 437, 3, 2, 2, 2, 3301, 3302, 7, 286, 2, 2, 3302, 3303, 5, 442, 222, 2, 3303, 439, 3, 2, 2, 2, 3304, 3307, 7, 369, 2, 2, 3305, 3307, 5, 452, 227, 2, 3306, 3304, 3, 2, 2, 2, 3306, 3305, 3, 2, 2, 2, 3307, 3315, 3, 2, 2, 2, 3308, 3311, 7, 346, 2, 2, 3309, 3312, 7, 369, 2, 2, 3310, 3312, 5, 452, 227, 2, 3311, 3309, 3, 2, 2, 2, 3311, 3310, 3, 2, 2, 2, 3312, 3314, 3, 2, 2, 2, 3313, 3308, 3, 2, 2, 2, 3314, 3317, 3, 2, 2, 2, 3315, 3313, 3, 2, 2, 2, 3315, 3316, 3, 2, 2, 2, 3316, 441, 3, 2, 2, 2, 3317, 3315, 3, 2, 2, 2, 3318, 3321, 7, 370, 2, 2, 3319, 3321, 7, 371, 2, 2, 3320, 3318, 3, 2, 2, 2, 3320, 3319, 3, 2, 2, 2, 3321, 443, 3, 2, 2, 2, 3322, 3324, 9, 48, 2, 2, 3323, 3322, 3, 2, 2, 2, 3323, 3324, 3, 2, 2, 2, 3324, 3325, 3, 2, 2, 2, 3325, 3326, 7, 372, 2, 2, 3326, 445, 3, 2, 2, 2, 3327, 3329, 9, 48, 2, 2, 3328, 3327, 3, 2, 2, 2, 3328, 3329, 3, 2, 2, 2, 3329, 3330, 3, 2, 2, 2, 3330, 3331, 7, 373, 2, 2, 3331, 447, 3, 2, 2, 2, 3332, 3333, 9, 49, 2, 2, 3333, 449, 3, 2, 2, 2, 3334, 3335, 7, 192, 2, 2, 3335, 451, 3, 2, 2, 2, 3336, 3337, 9, 50, 2, 2, 3337, 453, 3, 2, 2, 2, 425, 459, 462, 466, 469, 474, 481, 487, 489, 498, 501, 503, 566, 574, 590, 597, 600, 605, 609, 618, 623, 631, 636, 645, 657, 662, 665, 679, 686, 695, 712, 716, 724, 735, 745, 753, 760, 764, 768, 773, 777, 782, 786, 790, 800, 804, 809, 814, 818, 831, 836, 842, 851, 855, 863, 866, 871, 876, 883, 890, 893, 900, 906, 911, 917, 922, 925, 931, 945, 955, 961, 966, 971, 976, 980, 985, 988, 998, 1010, 1017, 1020, 1032, 1037, 1042, 1045, 1052, 1064, 1077, 1079, 1084, 1087, 1102, 1108, 1119, 1122, 1132, 1139, 1145, 1153, 1163, 1183, 1189, 1193, 1198, 1202, 1207, 1210, 1215, 1218, 1230, 1237, 1242, 1247, 1251, 1256, 1259, 1269, 1281, 1288, 1296, 1310, 1341, 1343, 1348, 1352, 1357, 1364, 1367, 1370, 1375, 1379, 1381, 1388, 1394, 1401, 1407, 1410, 1415, 1419, 1422, 1429, 1435, 1438, 1448, 1457, 1464, 1471, 1473, 1479, 1482, 1493, 1502, 1508, 1514, 1517, 1522, 1525, 1528, 1531, 1534, 1540, 1550, 1561, 1564, 1571, 1576, 1581, 1585, 1593, 1597, 1602, 1606, 1608, 1613, 1621, 1626, 1632, 1639, 1642, 1649, 1657, 1665, 1668, 1671, 1676, 1685, 1689, 1699, 1718, 1725, 1727, 1731, 1735, 1743, 1754, 1763, 1771, 1779, 1783, 1791, 1809, 1823, 1830, 1834, 1841, 1843, 1847, 1856, 1864, 1873, 1889, 1895, 1899, 1909, 1917, 1926, 1930, 1936, 1941, 1945, 1955, 1961, 1965, 1977, 1984, 2000, 2007, 2017, 2020, 2024, 2031, 2038, 2040, 2044, 2048, 2053, 2056, 2060, 2063, 2074, 2077, 2088, 2094, 2098, 2100, 2104, 2113, 2120, 2124, 2128, 2135, 2139, 2147, 2153, 2157, 2168, 2175, 2188, 2196, 2200, 2210, 2215, 2228, 2239, 2247, 2251, 2255, 2259, 2261, 2266, 2269, 2272, 2275, 2279, 2282, 2285, 2288, 2291, 2298, 2309, 2313, 2316, 2320, 2327, 2331, 2341, 2349, 2355, 2359, 2365, 2374, 2377, 2382, 2385, 2395, 2400, 2409, 2414, 2418, 2427, 2431, 2445, 2458, 2463, 2467, 2473, 2484, 2486, 2493, 2496, 2503, 2508, 2514, 2517, 2520, 2535, 2542, 2545, 2548, 2552, 2557, 2563, 2567, 2578, 2582, 2585, 2589, 2593, 2597, 2601, 2607, 2613, 2620, 2628, 2634, 2639, 2650, 2659, 2663, 2672, 2676, 2686, 2691, 2713, 2716, 2735, 2751, 2753, 2764, 2779, 2791, 2795, 2806, 2810, 2822, 2826, 2837, 2842, 2847, 2851, 2855, 2860, 2864, 2868, 2891, 2893, 2911, 2913, 2921, 2926, 2931, 2936, 2949, 2954, 2959, 2964, 2969, 2974, 2979, 2984, 2986, 2993, 2996, 3007, 3017, 3025, 3034, 3040, 3057, 3060, 3076, 3079, 3095, 3098, 3114, 3117, 3133, 3136, 3152, 3155, 3169, 3184, 3188, 3204, 3210, 3215, 3224, 3231, 3233, 3239, 3243, 3249, 3264, 3271, 3276, 3286, 3293, 3296, 3306, 3311, 3315, 3320, 3323, 3328] \ No newline at end of file diff --git a/src/lib/hive/HiveSqlParser.js b/src/lib/hive/HiveSql.js similarity index 53% rename from src/lib/hive/HiveSqlParser.js rename to src/lib/hive/HiveSql.js index 6be559b..46a0095 100644 --- a/src/lib/hive/HiveSqlParser.js +++ b/src/lib/hive/HiveSql.js @@ -1,4 +1,4 @@ -// Generated from /Users/ziv/Workspace/dt-sql-parser/src/grammar/hive/HiveSql.g4 by ANTLR 4.8 +// Generated from /Users/libowen/Desktop/Code/gitlab.prod.dtstack.cn/dt-insight-front/infrastructure/dt-sql-parser/src/grammar/hive/HiveSql.g4 by ANTLR 4.8 // jshint ignore: start var antlr4 = require('antlr4/index'); var HiveSqlListener = require('./HiveSqlListener').HiveSqlListener; @@ -8,7 +8,7 @@ var grammarFileName = "HiveSql.g4"; var serializedATN = ["\u0003\u608b\ua72a\u8133\ub9ed\u417c\u3be7\u7786\u5964", - "\u0003\u0178\u0d11\u0004\u0002\t\u0002\u0004\u0003\t\u0003\u0004\u0004", + "\u0003\u017a\u0d0b\u0004\u0002\t\u0002\u0004\u0003\t\u0003\u0004\u0004", "\t\u0004\u0004\u0005\t\u0005\u0004\u0006\t\u0006\u0004\u0007\t\u0007", "\u0004\b\t\b\u0004\t\t\t\u0004\n\t\n\u0004\u000b\t\u000b\u0004\f\t\f", "\u0004\r\t\r\u0004\u000e\t\u000e\u0004\u000f\t\u000f\u0004\u0010\t\u0010", @@ -126,401 +126,402 @@ var serializedATN = ["\u0003\u608b\ua72a\u8133\ub9ed\u417c\u3be7\u7786\u5964", "\n#\u0003#\u0003#\u0003$\u0003$\u0003$\u0003$\u0005$\u0360\n$\u0003", "$\u0005$\u0363\n$\u0003$\u0003$\u0003$\u0005$\u0368\n$\u0003$\u0003", "$\u0003%\u0005%\u036d\n%\u0003%\u0003%\u0003%\u0003%\u0003%\u0005%\u0374", - "\n%\u0003%\u0003%\u0003%\u0003%\u0003%\u0003%\u0003%\u0005%\u037d\n", - "%\u0003%\u0005%\u0380\n%\u0003&\u0003&\u0003&\u0007&\u0385\n&\f&\u000e", - "&\u0388\u000b&\u0003\'\u0003\'\u0003\'\u0005\'\u038d\n\'\u0003\'\u0007", - "\'\u0390\n\'\f\'\u000e\'\u0393\u000b\'\u0003\'\u0007\'\u0396\n\'\f\'", - "\u000e\'\u0399\u000b\'\u0003\'\u0003\'\u0005\'\u039d\n\'\u0003\'\u0005", - "\'\u03a0\n\'\u0003(\u0003(\u0003)\u0003)\u0005)\u03a6\n)\u0003)\u0003", - ")\u0003)\u0003)\u0003)\u0003)\u0003)\u0003)\u0003)\u0003)\u0007)\u03b2", - "\n)\f)\u000e)\u03b5\u000b)\u0003)\u0003)\u0003)\u0003)\u0003)\u0007", - ")\u03bc\n)\f)\u000e)\u03bf\u000b)\u0003)\u0003)\u0003)\u0005)\u03c4", - "\n)\u0003*\u0003*\u0003*\u0005*\u03c9\n*\u0003*\u0003*\u0003*\u0005", - "*\u03ce\n*\u0003*\u0003*\u0003*\u0005*\u03d3\n*\u0007*\u03d5\n*\f*\u000e", - "*\u03d8\u000b*\u0003*\u0003*\u0005*\u03dc\n*\u0003*\u0005*\u03df\n*", - "\u0003*\u0003*\u0003*\u0003*\u0003*\u0003*\u0007*\u03e7\n*\f*\u000e", - "*\u03ea\u000b*\u0003*\u0003*\u0003*\u0003*\u0003*\u0003*\u0003*\u0007", - "*\u03f3\n*\f*\u000e*\u03f6\u000b*\u0003*\u0003*\u0007*\u03fa\n*\f*\u000e", - "*\u03fd\u000b*\u0005*\u03ff\n*\u0003+\u0003+\u0003+\u0003+\u0003+\u0003", - "+\u0003+\u0003+\u0003+\u0003+\u0005+\u040b\n+\u0003,\u0006,\u040e\n", - ",\r,\u000e,\u040f\u0003-\u0003-\u0003-\u0005-\u0415\n-\u0003.\u0005", - ".\u0418\n.\u0003.\u0003.\u0003/\u0006/\u041d\n/\r/\u000e/\u041e\u0003", - "0\u00030\u00030\u00030\u00030\u00030\u00030\u00030\u00030\u00030\u0005", - "0\u042b\n0\u00031\u00031\u00031\u00031\u00031\u00031\u00031\u00031\u0003", - "1\u00031\u00031\u00061\u0438\n1\r1\u000e1\u0439\u00031\u00031\u0003", - "1\u00051\u043f\n1\u00032\u00052\u0442\n2\u00032\u00032\u00032\u0003", - "2\u00032\u00032\u00032\u00032\u00032\u00032\u00032\u00072\u044f\n2\f", - "2\u000e2\u0452\u000b2\u00032\u00032\u00032\u00052\u0457\n2\u00032\u0003", - "2\u00032\u00032\u00032\u00032\u00032\u00032\u00032\u00052\u0462\n2\u0003", - "3\u00053\u0465\n3\u00033\u00033\u00033\u00033\u00033\u00033\u00073\u046d", - "\n3\f3\u000e3\u0470\u000b3\u00033\u00033\u00033\u00033\u00053\u0476", - "\n3\u00034\u00034\u00034\u00034\u00054\u047c\n4\u00035\u00035\u0003", - "5\u00035\u00075\u0482\n5\f5\u000e5\u0485\u000b5\u00036\u00036\u0003", - "6\u00036\u00036\u00036\u00036\u00056\u048e\n6\u00036\u00036\u00036\u0003", + "\n%\u0003%\u0003%\u0003%\u0003%\u0003%\u0005%\u037b\n%\u0003%\u0005", + "%\u037e\n%\u0003&\u0003&\u0003&\u0007&\u0383\n&\f&\u000e&\u0386\u000b", + "&\u0003\'\u0003\'\u0003\'\u0005\'\u038b\n\'\u0003\'\u0007\'\u038e\n", + "\'\f\'\u000e\'\u0391\u000b\'\u0003\'\u0007\'\u0394\n\'\f\'\u000e\'\u0397", + "\u000b\'\u0003\'\u0003\'\u0005\'\u039b\n\'\u0003\'\u0005\'\u039e\n\'", + "\u0003(\u0003(\u0003)\u0003)\u0005)\u03a4\n)\u0003)\u0003)\u0003)\u0003", + ")\u0003)\u0003)\u0003)\u0003)\u0003)\u0003)\u0007)\u03b0\n)\f)\u000e", + ")\u03b3\u000b)\u0003)\u0003)\u0003)\u0003)\u0003)\u0007)\u03ba\n)\f", + ")\u000e)\u03bd\u000b)\u0003)\u0003)\u0003)\u0005)\u03c2\n)\u0003*\u0003", + "*\u0003*\u0005*\u03c7\n*\u0003*\u0003*\u0003*\u0005*\u03cc\n*\u0003", + "*\u0003*\u0003*\u0005*\u03d1\n*\u0007*\u03d3\n*\f*\u000e*\u03d6\u000b", + "*\u0003*\u0003*\u0005*\u03da\n*\u0003*\u0005*\u03dd\n*\u0003*\u0003", + "*\u0003*\u0003*\u0003*\u0003*\u0007*\u03e5\n*\f*\u000e*\u03e8\u000b", + "*\u0003*\u0003*\u0003*\u0003*\u0003*\u0003*\u0003*\u0007*\u03f1\n*\f", + "*\u000e*\u03f4\u000b*\u0003*\u0003*\u0007*\u03f8\n*\f*\u000e*\u03fb", + "\u000b*\u0005*\u03fd\n*\u0003+\u0003+\u0003+\u0003+\u0003+\u0003+\u0003", + "+\u0003+\u0003+\u0003+\u0005+\u0409\n+\u0003,\u0006,\u040c\n,\r,\u000e", + ",\u040d\u0003-\u0003-\u0003-\u0005-\u0413\n-\u0003.\u0005.\u0416\n.", + "\u0003.\u0003.\u0003/\u0006/\u041b\n/\r/\u000e/\u041c\u00030\u00030", + "\u00030\u00030\u00030\u00030\u00030\u00030\u00030\u00030\u00050\u0429", + "\n0\u00031\u00031\u00031\u00031\u00031\u00031\u00031\u00031\u00031\u0003", + "1\u00031\u00061\u0436\n1\r1\u000e1\u0437\u00031\u00031\u00031\u0005", + "1\u043d\n1\u00032\u00052\u0440\n2\u00032\u00032\u00032\u00032\u0003", + "2\u00032\u00032\u00032\u00032\u00032\u00032\u00072\u044d\n2\f2\u000e", + "2\u0450\u000b2\u00032\u00032\u00032\u00052\u0455\n2\u00032\u00032\u0003", + "2\u00032\u00032\u00032\u00032\u00032\u00032\u00052\u0460\n2\u00033\u0005", + "3\u0463\n3\u00033\u00033\u00033\u00033\u00033\u00033\u00073\u046b\n", + "3\f3\u000e3\u046e\u000b3\u00033\u00033\u00033\u00033\u00053\u0474\n", + "3\u00034\u00034\u00034\u00034\u00054\u047a\n4\u00035\u00035\u00035\u0003", + "5\u00075\u0480\n5\f5\u000e5\u0483\u000b5\u00036\u00036\u00036\u0003", + "6\u00036\u00036\u00036\u00056\u048c\n6\u00036\u00036\u00036\u00036\u0003", "6\u00036\u00036\u00036\u00036\u00036\u00036\u00036\u00036\u00036\u0003", - "6\u00036\u00036\u00036\u00036\u00056\u04a2\n6\u00037\u00037\u00037\u0003", - "7\u00057\u04a8\n7\u00038\u00038\u00058\u04ac\n8\u00038\u00038\u0003", - "8\u00058\u04b1\n8\u00038\u00038\u00058\u04b5\n8\u00038\u00038\u0003", - "8\u00058\u04ba\n8\u00038\u00058\u04bd\n8\u00038\u00038\u00038\u0005", - "8\u04c2\n8\u00038\u00058\u04c5\n8\u00039\u00039\u00039\u00039\u0003", - "9\u0003:\u0003:\u0003;\u0003;\u0003;\u0005;\u04d1\n;\u0003;\u0003;\u0003", - "<\u0003<\u0003<\u0005<\u04d8\n<\u0003<\u0003<\u0003<\u0005<\u04dd\n", - "<\u0003<\u0003<\u0003<\u0005<\u04e2\n<\u0007<\u04e4\n<\f<\u000e<\u04e7", - "\u000b<\u0003<\u0003<\u0005<\u04eb\n<\u0003<\u0005<\u04ee\n<\u0003<", - "\u0003<\u0003<\u0003<\u0003<\u0003<\u0007<\u04f6\n<\f<\u000e<\u04f9", - "\u000b<\u0003<\u0003<\u0003<\u0003<\u0003<\u0003<\u0003<\u0007<\u0502", - "\n<\f<\u000e<\u0505\u000b<\u0003<\u0003<\u0007<\u0509\n<\f<\u000e<\u050c", - "\u000b<\u0003<\u0003<\u0003<\u0003<\u0003<\u0005<\u0513\n<\u0003=\u0003", + "6\u00036\u00036\u00036\u00056\u04a0\n6\u00037\u00037\u00037\u00037\u0005", + "7\u04a6\n7\u00038\u00038\u00058\u04aa\n8\u00038\u00038\u00038\u0005", + "8\u04af\n8\u00038\u00038\u00058\u04b3\n8\u00038\u00038\u00038\u0005", + "8\u04b8\n8\u00038\u00058\u04bb\n8\u00038\u00038\u00038\u00058\u04c0", + "\n8\u00038\u00058\u04c3\n8\u00039\u00039\u00039\u00039\u00039\u0003", + ":\u0003:\u0003;\u0003;\u0003;\u0005;\u04cf\n;\u0003;\u0003;\u0003<\u0003", + "<\u0003<\u0005<\u04d6\n<\u0003<\u0003<\u0003<\u0005<\u04db\n<\u0003", + "<\u0003<\u0003<\u0005<\u04e0\n<\u0007<\u04e2\n<\f<\u000e<\u04e5\u000b", + "<\u0003<\u0003<\u0005<\u04e9\n<\u0003<\u0005<\u04ec\n<\u0003<\u0003", + "<\u0003<\u0003<\u0003<\u0003<\u0007<\u04f4\n<\f<\u000e<\u04f7\u000b", + "<\u0003<\u0003<\u0003<\u0003<\u0003<\u0003<\u0003<\u0007<\u0500\n<\f", + "<\u000e<\u0503\u000b<\u0003<\u0003<\u0007<\u0507\n<\f<\u000e<\u050a", + "\u000b<\u0003<\u0003<\u0003<\u0003<\u0003<\u0005<\u0511\n<\u0003=\u0003", "=\u0003=\u0003=\u0003=\u0003=\u0003=\u0003=\u0003=\u0003=\u0003=\u0003", - "=\u0003=\u0005=\u0522\n=\u0003=\u0003=\u0003=\u0003=\u0003=\u0003=\u0003", + "=\u0005=\u051f\n=\u0003=\u0003=\u0003=\u0003=\u0003=\u0003=\u0003=\u0003", "=\u0003=\u0003=\u0003=\u0003=\u0003=\u0003=\u0003=\u0003=\u0003=\u0003", "=\u0003=\u0003=\u0003=\u0003=\u0003=\u0003=\u0003=\u0003=\u0003=\u0003", - "=\u0003=\u0003=\u0005=\u0541\n=\u0005=\u0543\n=\u0003>\u0003>\u0003", - ">\u0005>\u0548\n>\u0003>\u0003>\u0005>\u054c\n>\u0003>\u0003>\u0003", - "?\u0005?\u0551\n?\u0003?\u0003?\u0003?\u0003?\u0003?\u0005?\u0558\n", - "?\u0003?\u0005?\u055b\n?\u0003@\u0005@\u055e\n@\u0003@\u0003@\u0003", - "@\u0005@\u0563\n@\u0003@\u0003@\u0005@\u0567\n@\u0005@\u0569\n@\u0003", - "A\u0003A\u0003A\u0003A\u0003A\u0005A\u0570\nA\u0003A\u0003A\u0007A\u0574", - "\nA\fA\u000eA\u0577\u000bA\u0003B\u0003B\u0003B\u0003B\u0005B\u057d", - "\nB\u0003C\u0003C\u0003C\u0003C\u0005C\u0583\nC\u0003C\u0005C\u0586", - "\nC\u0003C\u0003C\u0003C\u0005C\u058b\nC\u0003C\u0003C\u0005C\u058f", - "\nC\u0003C\u0005C\u0592\nC\u0003C\u0003C\u0003D\u0003D\u0003D\u0005", - "D\u0599\nD\u0003E\u0003E\u0003E\u0003E\u0005E\u059f\nE\u0003E\u0005", - "E\u05a2\nE\u0003E\u0003E\u0003E\u0003E\u0003E\u0003E\u0003E\u0003E\u0005", - "E\u05ac\nE\u0003F\u0003F\u0003F\u0003F\u0003F\u0007F\u05b3\nF\fF\u000e", - "F\u05b6\u000bF\u0003G\u0003G\u0003G\u0003G\u0005G\u05bc\nG\u0003G\u0003", - "G\u0003G\u0003G\u0003G\u0005G\u05c3\nG\u0005G\u05c5\nG\u0003H\u0003", - "H\u0003H\u0003H\u0005H\u05cb\nH\u0003H\u0005H\u05ce\nH\u0003H\u0003", - "H\u0003H\u0003H\u0003H\u0003H\u0003H\u0003H\u0003H\u0005H\u05d9\nH\u0003", - "I\u0003I\u0003I\u0003I\u0003I\u0007I\u05e0\nI\fI\u000eI\u05e3\u000b", - "I\u0003J\u0003J\u0003J\u0005J\u05e8\nJ\u0003K\u0003K\u0003K\u0003K\u0005", - "K\u05ee\nK\u0003K\u0005K\u05f1\nK\u0003K\u0003K\u0003K\u0005K\u05f6", - "\nK\u0003K\u0005K\u05f9\nK\u0003K\u0005K\u05fc\nK\u0003K\u0005K\u05ff", - "\nK\u0003K\u0005K\u0602\nK\u0003K\u0003K\u0003K\u0003K\u0005K\u0608", - "\nK\u0003L\u0003L\u0003L\u0003L\u0003L\u0003L\u0007L\u0610\nL\fL\u000e", - "L\u0613\u000bL\u0003L\u0003L\u0003L\u0003L\u0003L\u0003L\u0007L\u061b", - "\nL\fL\u000eL\u061e\u000bL\u0005L\u0620\nL\u0003M\u0003M\u0003M\u0003", - "M\u0003M\u0005M\u0627\nM\u0003M\u0003M\u0003M\u0005M\u062c\nM\u0003", - "M\u0007M\u062f\nM\fM\u000eM\u0632\u000bM\u0003M\u0005M\u0635\nM\u0003", - "M\u0003M\u0003M\u0003M\u0003M\u0003M\u0005M\u063d\nM\u0003M\u0003M\u0005", - "M\u0641\nM\u0003M\u0007M\u0644\nM\fM\u000eM\u0647\u000bM\u0003M\u0005", - "M\u064a\nM\u0005M\u064c\nM\u0003N\u0006N\u064f\nN\rN\u000eN\u0650\u0003", - "O\u0003O\u0003O\u0003O\u0003O\u0003O\u0005O\u0659\nO\u0003O\u0003O\u0003", - "O\u0005O\u065e\nO\u0003P\u0003P\u0003P\u0003P\u0005P\u0664\nP\u0003", - "P\u0003P\u0003P\u0003P\u0003P\u0005P\u066b\nP\u0003P\u0005P\u066e\n", - "P\u0003Q\u0003Q\u0003Q\u0003R\u0003R\u0005R\u0675\nR\u0003R\u0003R\u0003", - "R\u0003R\u0003R\u0003R\u0005R\u067d\nR\u0003R\u0003R\u0003R\u0003R\u0007", - "R\u0683\nR\fR\u000eR\u0686\u000bR\u0005R\u0688\nR\u0003R\u0005R\u068b", - "\nR\u0003S\u0003S\u0003S\u0005S\u0690\nS\u0003T\u0003T\u0003T\u0003", - "T\u0003T\u0007T\u0697\nT\fT\u000eT\u069a\u000bT\u0003T\u0005T\u069d", - "\nT\u0003T\u0003T\u0003T\u0003U\u0003U\u0003U\u0003U\u0003U\u0005U\u06a7", - "\nU\u0003V\u0003V\u0003V\u0003V\u0003V\u0003V\u0003W\u0003W\u0003W\u0003", - "W\u0003W\u0003X\u0003X\u0003X\u0003Y\u0003Y\u0003Y\u0005Y\u06ba\nY\u0003", - "Z\u0003Z\u0003Z\u0003Z\u0003Z\u0005Z\u06c1\nZ\u0005Z\u06c3\nZ\u0003", - "Z\u0003Z\u0005Z\u06c7\nZ\u0003Z\u0003Z\u0005Z\u06cb\nZ\u0003[\u0003", - "[\u0003[\u0003[\u0007[\u06d1\n[\f[\u000e[\u06d4\u000b[\u0003[\u0003", - "[\u0003\\\u0003\\\u0003\\\u0003\\\u0007\\\u06dc\n\\\f\\\u000e\\\u06df", - "\u000b\\\u0003]\u0003]\u0003]\u0003]\u0007]\u06e5\n]\f]\u000e]\u06e8", - "\u000b]\u0003]\u0003]\u0003^\u0003^\u0003^\u0005^\u06ef\n^\u0003^\u0003", - "^\u0003^\u0003^\u0003_\u0003_\u0005_\u06f7\n_\u0003_\u0003_\u0005_\u06fb", - "\n_\u0003`\u0003`\u0003`\u0003`\u0003a\u0003a\u0005a\u0703\na\u0003", - "b\u0003b\u0003b\u0003b\u0003b\u0003b\u0003c\u0003c\u0003c\u0003c\u0003", - "d\u0003d\u0003d\u0003d\u0007d\u0713\nd\fd\u000ed\u0716\u000bd\u0003", - "d\u0003d\u0003d\u0003d\u0003e\u0003e\u0003e\u0003e\u0003e\u0003f\u0003", - "f\u0005f\u0723\nf\u0003g\u0003g\u0003g\u0003g\u0003g\u0005g\u072a\n", - "g\u0003g\u0003g\u0005g\u072e\ng\u0003h\u0003h\u0003h\u0003h\u0003h\u0005", - "h\u0735\nh\u0005h\u0737\nh\u0003i\u0003i\u0005i\u073b\ni\u0003i\u0003", - "i\u0003i\u0003i\u0003i\u0007i\u0742\ni\fi\u000ei\u0745\u000bi\u0003", - "j\u0003j\u0003j\u0003j\u0003j\u0005j\u074c\nj\u0003k\u0003k\u0003k\u0003", - "k\u0003k\u0007k\u0753\nk\fk\u000ek\u0756\u000bk\u0003k\u0003k\u0003", - "l\u0003l\u0003l\u0003m\u0003m\u0003m\u0003m\u0003m\u0003m\u0003n\u0003", - "n\u0005n\u0765\nn\u0003n\u0003n\u0003n\u0003n\u0005n\u076b\nn\u0003", - "n\u0003n\u0005n\u076f\nn\u0003o\u0003o\u0003o\u0003o\u0003o\u0003o\u0007", - "o\u0777\no\fo\u000eo\u077a\u000bo\u0003o\u0003o\u0003o\u0007o\u077f", - "\no\fo\u000eo\u0782\u000bo\u0003p\u0003p\u0003p\u0003p\u0003p\u0003", - "p\u0005p\u078a\np\u0003p\u0003p\u0005p\u078e\np\u0003p\u0003p\u0007", - "p\u0792\np\fp\u000ep\u0795\u000bp\u0003q\u0003q\u0005q\u0799\nq\u0003", - "r\u0003r\u0005r\u079d\nr\u0003s\u0003s\u0003s\u0003s\u0003s\u0003s\u0003", - "s\u0003s\u0005s\u07a7\ns\u0003t\u0003t\u0003u\u0003u\u0005u\u07ad\n", - "u\u0003v\u0003v\u0005v\u07b1\nv\u0003v\u0003v\u0003v\u0003v\u0003v\u0003", - "v\u0003v\u0003v\u0007v\u07bb\nv\fv\u000ev\u07be\u000bv\u0003v\u0003", - "v\u0003w\u0003w\u0005w\u07c4\nw\u0003x\u0003x\u0003y\u0003y\u0003y\u0003", - "y\u0003y\u0003y\u0003y\u0003y\u0003y\u0003y\u0007y\u07d2\ny\fy\u000e", - "y\u07d5\u000by\u0003y\u0003y\u0007y\u07d9\ny\fy\u000ey\u07dc\u000by", - "\u0003z\u0003z\u0003z\u0003z\u0003z\u0003z\u0003z\u0005z\u07e5\nz\u0003", - "{\u0005{\u07e8\n{\u0003{\u0003{\u0005{\u07ec\n{\u0003|\u0003|\u0003", - "}\u0003}\u0003}\u0005}\u07f3\n}\u0003}\u0003}\u0003}\u0003}\u0003}\u0005", - "}\u07fa\n}\u0005}\u07fc\n}\u0003~\u0003~\u0005~\u0800\n~\u0003\u007f", - "\u0003\u007f\u0005\u007f\u0804\n\u007f\u0003\u0080\u0003\u0080\u0003", - "\u0080\u0005\u0080\u0809\n\u0080\u0003\u0081\u0005\u0081\u080c\n\u0081", - "\u0003\u0081\u0003\u0081\u0005\u0081\u0810\n\u0081\u0003\u0081\u0005", - "\u0081\u0813\n\u0081\u0003\u0081\u0003\u0081\u0003\u0082\u0003\u0082", - "\u0003\u0082\u0003\u0083\u0003\u0083\u0003\u0083\u0003\u0083\u0005\u0083", - "\u081e\n\u0083\u0003\u0083\u0005\u0083\u0821\n\u0083\u0003\u0083\u0003", - "\u0083\u0003\u0083\u0003\u0084\u0003\u0084\u0003\u0084\u0003\u0085\u0003", - "\u0085\u0003\u0085\u0005\u0085\u082c\n\u0085\u0003\u0085\u0003\u0085", - "\u0003\u0085\u0003\u0085\u0005\u0085\u0832\n\u0085\u0003\u0085\u0003", - "\u0085\u0005\u0085\u0836\n\u0085\u0005\u0085\u0838\n\u0085\u0003\u0086", - "\u0003\u0086\u0005\u0086\u083c\n\u0086\u0003\u0086\u0003\u0086\u0003", - "\u0087\u0003\u0087\u0003\u0087\u0003\u0088\u0003\u0088\u0005\u0088\u0845", - "\n\u0088\u0003\u0088\u0003\u0088\u0003\u0088\u0007\u0088\u084a\n\u0088", - "\f\u0088\u000e\u0088\u084d\u000b\u0088\u0003\u0088\u0005\u0088\u0850", - "\n\u0088\u0003\u0088\u0003\u0088\u0005\u0088\u0854\n\u0088\u0003\u0088", - "\u0003\u0088\u0003\u0088\u0007\u0088\u0859\n\u0088\f\u0088\u000e\u0088", - "\u085c\u000b\u0088\u0003\u0088\u0005\u0088\u085f\n\u0088\u0003\u0089", - "\u0003\u0089\u0003\u0089\u0003\u0089\u0003\u0089\u0003\u0089\u0005\u0089", - "\u0867\n\u0089\u0003\u008a\u0003\u008a\u0003\u008a\u0003\u008a\u0005", - "\u008a\u086d\n\u008a\u0003\u008a\u0003\u008a\u0005\u008a\u0871\n\u008a", - "\u0003\u008a\u0003\u008a\u0003\u008a\u0003\u008a\u0003\u008a\u0003\u008b", - "\u0003\u008b\u0003\u008b\u0003\u008b\u0005\u008b\u087c\n\u008b\u0003", - "\u008b\u0003\u008b\u0003\u008b\u0003\u008b\u0003\u008b\u0005\u008b\u0883", - "\n\u008b\u0003\u008b\u0003\u008b\u0003\u008b\u0003\u008b\u0003\u008b", - "\u0003\u008c\u0003\u008c\u0003\u008c\u0003\u008c\u0003\u008c\u0003\u008c", - "\u0005\u008c\u0890\n\u008c\u0003\u008d\u0003\u008d\u0003\u008d\u0003", - "\u008d\u0007\u008d\u0896\n\u008d\f\u008d\u000e\u008d\u0899\u000b\u008d", - "\u0003\u008e\u0005\u008e\u089c\n\u008e\u0003\u008e\u0003\u008e\u0003", - "\u008f\u0003\u008f\u0003\u008f\u0003\u008f\u0007\u008f\u08a4\n\u008f", - "\f\u008f\u000e\u008f\u08a7\u000b\u008f\u0003\u0090\u0003\u0090\u0005", - "\u0090\u08ab\n\u0090\u0003\u0090\u0003\u0090\u0003\u0090\u0003\u0090", - "\u0003\u0090\u0003\u0091\u0003\u0091\u0003\u0091\u0003\u0091\u0007\u0091", - "\u08b6\n\u0091\f\u0091\u000e\u0091\u08b9\u000b\u0091\u0003\u0091\u0003", - "\u0091\u0003\u0092\u0003\u0092\u0003\u0092\u0003\u0092\u0007\u0092\u08c1", - "\n\u0092\f\u0092\u000e\u0092\u08c4\u000b\u0092\u0003\u0093\u0003\u0093", - "\u0003\u0093\u0003\u0093\u0003\u0093\u0005\u0093\u08cb\n\u0093\u0003", - "\u0094\u0003\u0094\u0005\u0094\u08cf\n\u0094\u0003\u0094\u0003\u0094", - "\u0005\u0094\u08d3\n\u0094\u0003\u0094\u0003\u0094\u0005\u0094\u08d7", - "\n\u0094\u0005\u0094\u08d9\n\u0094\u0003\u0095\u0003\u0095\u0003\u0095", - "\u0005\u0095\u08de\n\u0095\u0003\u0095\u0005\u0095\u08e1\n\u0095\u0003", - "\u0095\u0005\u0095\u08e4\n\u0095\u0003\u0095\u0005\u0095\u08e7\n\u0095", - "\u0003\u0095\u0003\u0095\u0005\u0095\u08eb\n\u0095\u0003\u0095\u0005", - "\u0095\u08ee\n\u0095\u0003\u0095\u0005\u0095\u08f1\n\u0095\u0003\u0096", - "\u0005\u0096\u08f4\n\u0096\u0003\u0096\u0005\u0096\u08f7\n\u0096\u0003", - "\u0096\u0003\u0096\u0003\u0096\u0007\u0096\u08fc\n\u0096\f\u0096\u000e", - "\u0096\u08ff\u000b\u0096\u0003\u0097\u0003\u0097\u0003\u0098\u0003\u0098", - "\u0003\u0098\u0003\u0099\u0003\u0099\u0003\u0099\u0005\u0099\u0909\n", - "\u0099\u0003\u0099\u0003\u0099\u0005\u0099\u090d\n\u0099\u0003\u0099", - "\u0005\u0099\u0910\n\u0099\u0003\u009a\u0003\u009a\u0005\u009a\u0914", - "\n\u009a\u0003\u009a\u0003\u009a\u0003\u009a\u0003\u009a\u0003\u009a", - "\u0005\u009a\u091b\n\u009a\u0003\u009b\u0003\u009b\u0005\u009b\u091f", - "\n\u009b\u0003\u009b\u0003\u009b\u0003\u009c\u0003\u009c\u0003\u009c", - "\u0003\u009c\u0007\u009c\u0927\n\u009c\f\u009c\u000e\u009c\u092a\u000b", - "\u009c\u0003\u009d\u0003\u009d\u0003\u009d\u0007\u009d\u092f\n\u009d", - "\f\u009d\u000e\u009d\u0932\u000b\u009d\u0003\u009e\u0003\u009e\u0003", - "\u009e\u0005\u009e\u0937\n\u009e\u0003\u009f\u0003\u009f\u0005\u009f", - "\u093b\n\u009f\u0003\u00a0\u0003\u00a0\u0003\u00a0\u0003\u00a0\u0005", - "\u00a0\u0941\n\u00a0\u0003\u00a1\u0003\u00a1\u0003\u00a1\u0003\u00a1", - "\u0003\u00a1\u0003\u00a1\u0003\u00a1\u0005\u00a1\u094a\n\u00a1\u0003", - "\u00a2\u0005\u00a2\u094d\n\u00a2\u0003\u00a2\u0003\u00a2\u0003\u00a2", - "\u0005\u00a2\u0952\n\u00a2\u0003\u00a2\u0005\u00a2\u0955\n\u00a2\u0003", - "\u00a3\u0003\u00a3\u0003\u00a3\u0003\u00a3\u0003\u00a3\u0003\u00a3\u0007", - "\u00a3\u095d\n\u00a3\f\u00a3\u000e\u00a3\u0960\u000b\u00a3\u0003\u00a3", - "\u0003\u00a3\u0005\u00a3\u0964\n\u00a3\u0003\u00a4\u0003\u00a4\u0003", - "\u00a4\u0003\u00a4\u0003\u00a4\u0007\u00a4\u096b\n\u00a4\f\u00a4\u000e", - "\u00a4\u096e\u000b\u00a4\u0003\u00a4\u0003\u00a4\u0005\u00a4\u0972\n", - "\u00a4\u0003\u00a5\u0003\u00a5\u0005\u00a5\u0976\n\u00a5\u0003\u00a5", - "\u0003\u00a5\u0003\u00a5\u0003\u00a5\u0003\u00a5\u0007\u00a5\u097d\n", - "\u00a5\f\u00a5\u000e\u00a5\u0980\u000b\u00a5\u0003\u00a5\u0005\u00a5", - "\u0983\n\u00a5\u0003\u00a6\u0003\u00a6\u0003\u00a7\u0003\u00a7\u0003", - "\u00a7\u0003\u00a8\u0003\u00a8\u0003\u00a8\u0003\u00a8\u0003\u00a8\u0007", - "\u00a8\u098f\n\u00a8\f\u00a8\u000e\u00a8\u0992\u000b\u00a8\u0003\u00a9", - "\u0003\u00a9\u0003\u00a9\u0003\u00aa\u0003\u00aa\u0003\u00aa\u0003\u00ab", - "\u0003\u00ab\u0003\u00ab\u0003\u00ab\u0005\u00ab\u099e\n\u00ab\u0003", - "\u00ab\u0003\u00ab\u0003\u00ab\u0005\u00ab\u09a3\n\u00ab\u0007\u00ab", - "\u09a5\n\u00ab\f\u00ab\u000e\u00ab\u09a8\u000b\u00ab\u0003\u00ac\u0006", - "\u00ac\u09ab\n\u00ac\r\u00ac\u000e\u00ac\u09ac\u0003\u00ad\u0003\u00ad", - "\u0003\u00ad\u0003\u00ad\u0003\u00ad\u0003\u00ad\u0003\u00ad\u0003\u00ad", - "\u0003\u00ad\u0005\u00ad\u09b8\n\u00ad\u0005\u00ad\u09ba\n\u00ad\u0003", - "\u00ae\u0003\u00ae\u0003\u00ae\u0003\u00ae\u0003\u00ae\u0005\u00ae\u09c1", - "\n\u00ae\u0003\u00ae\u0005\u00ae\u09c4\n\u00ae\u0003\u00af\u0003\u00af", - "\u0003\u00af\u0007\u00af\u09c9\n\u00af\f\u00af\u000e\u00af\u09cc\u000b", - "\u00af\u0003\u00b0\u0003\u00b0\u0005\u00b0\u09d0\n\u00b0\u0003\u00b0", - "\u0003\u00b0\u0003\u00b0\u0003\u00b0\u0005\u00b0\u09d6\n\u00b0\u0003", - "\u00b0\u0005\u00b0\u09d9\n\u00b0\u0003\u00b0\u0005\u00b0\u09dc\n\u00b0", - "\u0003\u00b1\u0003\u00b1\u0003\u00b1\u0003\u00b2\u0003\u00b2\u0003\u00b2", - "\u0003\u00b2\u0003\u00b2\u0003\u00b2\u0003\u00b2\u0003\u00b2\u0006\u00b2", - "\u09e9\n\u00b2\r\u00b2\u000e\u00b2\u09ea\u0003\u00b3\u0003\u00b3\u0003", - "\u00b3\u0003\u00b3\u0003\u00b3\u0005\u00b3\u09f2\n\u00b3\u0003\u00b3", - "\u0005\u00b3\u09f5\n\u00b3\u0003\u00b3\u0005\u00b3\u09f8\n\u00b3\u0003", - "\u00b4\u0003\u00b4\u0005\u00b4\u09fc\n\u00b4\u0003\u00b4\u0003\u00b4", - "\u0003\u00b4\u0005\u00b4\u0a01\n\u00b4\u0003\u00b4\u0003\u00b4\u0003", - "\u00b4\u0003\u00b4\u0005\u00b4\u0a07\n\u00b4\u0003\u00b5\u0003\u00b5", - "\u0005\u00b5\u0a0b\n\u00b5\u0003\u00b5\u0003\u00b5\u0003\u00b5\u0003", - "\u00b5\u0003\u00b5\u0003\u00b5\u0003\u00b5\u0007\u00b5\u0a14\n\u00b5", - "\f\u00b5\u000e\u00b5\u0a17\u000b\u00b5\u0003\u00b5\u0005\u00b5\u0a1a", - "\n\u00b5\u0003\u00b5\u0005\u00b5\u0a1d\n\u00b5\u0003\u00b6\u0003\u00b6", - "\u0005\u00b6\u0a21\n\u00b6\u0003\u00b6\u0003\u00b6\u0005\u00b6\u0a25", - "\n\u00b6\u0003\u00b6\u0003\u00b6\u0005\u00b6\u0a29\n\u00b6\u0003\u00b7", - "\u0003\u00b7\u0005\u00b7\u0a2d\n\u00b7\u0003\u00b7\u0003\u00b7\u0003", - "\u00b8\u0003\u00b8\u0005\u00b8\u0a33\n\u00b8\u0003\u00b8\u0003\u00b8", - "\u0003\u00b9\u0003\u00b9\u0005\u00b9\u0a39\n\u00b9\u0003\u00b9\u0003", - "\u00b9\u0003\u00b9\u0003\u00b9\u0003\u00b9\u0005\u00b9\u0a40\n\u00b9", - "\u0003\u00b9\u0003\u00b9\u0003\u00b9\u0003\u00b9\u0007\u00b9\u0a46\n", - "\u00b9\f\u00b9\u000e\u00b9\u0a49\u000b\u00b9\u0003\u00ba\u0003\u00ba", - "\u0003\u00ba\u0005\u00ba\u0a4e\n\u00ba\u0003\u00bb\u0003\u00bb\u0003", - "\u00bb\u0005\u00bb\u0a53\n\u00bb\u0003\u00bb\u0003\u00bb\u0003\u00bb", + "=\u0003=\u0005=\u053e\n=\u0005=\u0540\n=\u0003>\u0003>\u0003>\u0005", + ">\u0545\n>\u0003>\u0003>\u0005>\u0549\n>\u0003>\u0003>\u0003?\u0005", + "?\u054e\n?\u0003?\u0003?\u0003?\u0003?\u0003?\u0005?\u0555\n?\u0003", + "?\u0005?\u0558\n?\u0003@\u0005@\u055b\n@\u0003@\u0003@\u0003@\u0005", + "@\u0560\n@\u0003@\u0003@\u0005@\u0564\n@\u0005@\u0566\n@\u0003A\u0003", + "A\u0003A\u0003A\u0003A\u0005A\u056d\nA\u0003A\u0003A\u0007A\u0571\n", + "A\fA\u000eA\u0574\u000bA\u0003B\u0003B\u0003B\u0003B\u0005B\u057a\n", + "B\u0003C\u0003C\u0003C\u0003C\u0005C\u0580\nC\u0003C\u0005C\u0583\n", + "C\u0003C\u0003C\u0003C\u0005C\u0588\nC\u0003C\u0003C\u0005C\u058c\n", + "C\u0003C\u0005C\u058f\nC\u0003C\u0003C\u0003D\u0003D\u0003D\u0005D\u0596", + "\nD\u0003E\u0003E\u0003E\u0003E\u0005E\u059c\nE\u0003E\u0005E\u059f", + "\nE\u0003E\u0003E\u0003E\u0003E\u0003E\u0003E\u0003E\u0003E\u0005E\u05a9", + "\nE\u0003F\u0003F\u0003F\u0003F\u0003F\u0007F\u05b0\nF\fF\u000eF\u05b3", + "\u000bF\u0003G\u0003G\u0003G\u0003G\u0005G\u05b9\nG\u0003G\u0003G\u0003", + "G\u0003G\u0003G\u0005G\u05c0\nG\u0005G\u05c2\nG\u0003H\u0003H\u0003", + "H\u0003H\u0005H\u05c8\nH\u0003H\u0005H\u05cb\nH\u0003H\u0003H\u0003", + "H\u0003H\u0003H\u0003H\u0003H\u0003H\u0003H\u0005H\u05d6\nH\u0003I\u0003", + "I\u0003I\u0003I\u0003I\u0007I\u05dd\nI\fI\u000eI\u05e0\u000bI\u0003", + "J\u0003J\u0003J\u0005J\u05e5\nJ\u0003K\u0003K\u0003K\u0003K\u0005K\u05eb", + "\nK\u0003K\u0005K\u05ee\nK\u0003K\u0003K\u0003K\u0005K\u05f3\nK\u0003", + "K\u0005K\u05f6\nK\u0003K\u0005K\u05f9\nK\u0003K\u0005K\u05fc\nK\u0003", + "K\u0005K\u05ff\nK\u0003K\u0003K\u0003K\u0003K\u0005K\u0605\nK\u0003", + "L\u0003L\u0003L\u0003L\u0003L\u0003L\u0007L\u060d\nL\fL\u000eL\u0610", + "\u000bL\u0003L\u0003L\u0003L\u0003L\u0003L\u0003L\u0007L\u0618\nL\f", + "L\u000eL\u061b\u000bL\u0005L\u061d\nL\u0003M\u0003M\u0003M\u0003M\u0003", + "M\u0005M\u0624\nM\u0003M\u0003M\u0003M\u0005M\u0629\nM\u0003M\u0007", + "M\u062c\nM\fM\u000eM\u062f\u000bM\u0003M\u0005M\u0632\nM\u0003M\u0003", + "M\u0003M\u0003M\u0003M\u0003M\u0005M\u063a\nM\u0003M\u0003M\u0005M\u063e", + "\nM\u0003M\u0007M\u0641\nM\fM\u000eM\u0644\u000bM\u0003M\u0005M\u0647", + "\nM\u0005M\u0649\nM\u0003N\u0006N\u064c\nN\rN\u000eN\u064d\u0003O\u0003", + "O\u0003O\u0003O\u0003O\u0003O\u0005O\u0656\nO\u0003O\u0003O\u0003O\u0005", + "O\u065b\nO\u0003P\u0003P\u0003P\u0003P\u0005P\u0661\nP\u0003P\u0003", + "P\u0003P\u0003P\u0003P\u0005P\u0668\nP\u0003P\u0005P\u066b\nP\u0003", + "Q\u0003Q\u0003Q\u0003R\u0003R\u0005R\u0672\nR\u0003R\u0003R\u0003R\u0003", + "R\u0003R\u0003R\u0005R\u067a\nR\u0003R\u0003R\u0003R\u0003R\u0007R\u0680", + "\nR\fR\u000eR\u0683\u000bR\u0005R\u0685\nR\u0003R\u0005R\u0688\nR\u0003", + "S\u0003S\u0003S\u0005S\u068d\nS\u0003T\u0003T\u0003T\u0003T\u0003T\u0007", + "T\u0694\nT\fT\u000eT\u0697\u000bT\u0003T\u0005T\u069a\nT\u0003T\u0003", + "T\u0003T\u0003U\u0003U\u0003U\u0003U\u0003U\u0005U\u06a4\nU\u0003V\u0003", + "V\u0003V\u0003V\u0003V\u0003V\u0003W\u0003W\u0003W\u0003W\u0003W\u0003", + "X\u0003X\u0003X\u0003Y\u0003Y\u0003Y\u0005Y\u06b7\nY\u0003Z\u0003Z\u0003", + "Z\u0003Z\u0003Z\u0005Z\u06be\nZ\u0005Z\u06c0\nZ\u0003Z\u0003Z\u0005", + "Z\u06c4\nZ\u0003Z\u0003Z\u0005Z\u06c8\nZ\u0003[\u0003[\u0003[\u0003", + "[\u0007[\u06ce\n[\f[\u000e[\u06d1\u000b[\u0003[\u0003[\u0003\\\u0003", + "\\\u0003\\\u0003\\\u0007\\\u06d9\n\\\f\\\u000e\\\u06dc\u000b\\\u0003", + "]\u0003]\u0003]\u0003]\u0007]\u06e2\n]\f]\u000e]\u06e5\u000b]\u0003", + "]\u0003]\u0003^\u0003^\u0003^\u0005^\u06ec\n^\u0003^\u0003^\u0003^\u0003", + "^\u0003_\u0003_\u0005_\u06f4\n_\u0003_\u0003_\u0005_\u06f8\n_\u0003", + "`\u0003`\u0003`\u0003`\u0003a\u0003a\u0005a\u0700\na\u0003b\u0003b\u0003", + "b\u0003b\u0003b\u0003b\u0003c\u0003c\u0003c\u0003c\u0003d\u0003d\u0003", + "d\u0003d\u0007d\u0710\nd\fd\u000ed\u0713\u000bd\u0003d\u0003d\u0003", + "d\u0003d\u0003e\u0003e\u0003e\u0003e\u0003e\u0003f\u0003f\u0005f\u0720", + "\nf\u0003g\u0003g\u0003g\u0003g\u0003g\u0005g\u0727\ng\u0003g\u0003", + "g\u0005g\u072b\ng\u0003h\u0003h\u0003h\u0003h\u0003h\u0005h\u0732\n", + "h\u0005h\u0734\nh\u0003i\u0003i\u0005i\u0738\ni\u0003i\u0003i\u0003", + "i\u0003i\u0003i\u0007i\u073f\ni\fi\u000ei\u0742\u000bi\u0003j\u0003", + "j\u0003j\u0003j\u0003j\u0005j\u0749\nj\u0003k\u0003k\u0003k\u0003k\u0003", + "k\u0007k\u0750\nk\fk\u000ek\u0753\u000bk\u0003k\u0003k\u0003l\u0003", + "l\u0003l\u0003m\u0003m\u0003m\u0003m\u0003m\u0003m\u0003n\u0003n\u0005", + "n\u0762\nn\u0003n\u0003n\u0003n\u0003n\u0005n\u0768\nn\u0003n\u0003", + "n\u0005n\u076c\nn\u0003o\u0003o\u0003o\u0003o\u0003o\u0003o\u0007o\u0774", + "\no\fo\u000eo\u0777\u000bo\u0003o\u0003o\u0003o\u0007o\u077c\no\fo\u000e", + "o\u077f\u000bo\u0003p\u0003p\u0003p\u0003p\u0003p\u0003p\u0005p\u0787", + "\np\u0003p\u0003p\u0005p\u078b\np\u0003p\u0003p\u0007p\u078f\np\fp\u000e", + "p\u0792\u000bp\u0003q\u0003q\u0005q\u0796\nq\u0003r\u0003r\u0005r\u079a", + "\nr\u0003s\u0003s\u0003s\u0003s\u0003s\u0003s\u0003s\u0003s\u0005s\u07a4", + "\ns\u0003t\u0003t\u0003u\u0003u\u0005u\u07aa\nu\u0003v\u0003v\u0005", + "v\u07ae\nv\u0003v\u0003v\u0003v\u0003v\u0003v\u0003v\u0003v\u0003v\u0007", + "v\u07b8\nv\fv\u000ev\u07bb\u000bv\u0003v\u0003v\u0003w\u0003w\u0005", + "w\u07c1\nw\u0003x\u0003x\u0003y\u0003y\u0003y\u0003y\u0003y\u0003y\u0003", + "y\u0003y\u0003y\u0003y\u0007y\u07cf\ny\fy\u000ey\u07d2\u000by\u0003", + "y\u0003y\u0007y\u07d6\ny\fy\u000ey\u07d9\u000by\u0003z\u0003z\u0003", + "z\u0003z\u0003z\u0003z\u0003z\u0005z\u07e2\nz\u0003{\u0005{\u07e5\n", + "{\u0003{\u0003{\u0005{\u07e9\n{\u0003|\u0003|\u0003}\u0003}\u0003}\u0005", + "}\u07f0\n}\u0003}\u0003}\u0003}\u0003}\u0003}\u0005}\u07f7\n}\u0005", + "}\u07f9\n}\u0003~\u0003~\u0005~\u07fd\n~\u0003\u007f\u0003\u007f\u0005", + "\u007f\u0801\n\u007f\u0003\u0080\u0003\u0080\u0003\u0080\u0005\u0080", + "\u0806\n\u0080\u0003\u0081\u0005\u0081\u0809\n\u0081\u0003\u0081\u0003", + "\u0081\u0005\u0081\u080d\n\u0081\u0003\u0081\u0005\u0081\u0810\n\u0081", + "\u0003\u0081\u0003\u0081\u0003\u0082\u0003\u0082\u0003\u0082\u0003\u0083", + "\u0003\u0083\u0003\u0083\u0003\u0083\u0005\u0083\u081b\n\u0083\u0003", + "\u0083\u0005\u0083\u081e\n\u0083\u0003\u0083\u0003\u0083\u0003\u0083", + "\u0003\u0084\u0003\u0084\u0003\u0084\u0003\u0085\u0003\u0085\u0003\u0085", + "\u0005\u0085\u0829\n\u0085\u0003\u0085\u0003\u0085\u0003\u0085\u0003", + "\u0085\u0005\u0085\u082f\n\u0085\u0003\u0085\u0003\u0085\u0005\u0085", + "\u0833\n\u0085\u0005\u0085\u0835\n\u0085\u0003\u0086\u0003\u0086\u0005", + "\u0086\u0839\n\u0086\u0003\u0086\u0003\u0086\u0003\u0087\u0003\u0087", + "\u0003\u0087\u0003\u0088\u0003\u0088\u0005\u0088\u0842\n\u0088\u0003", + "\u0088\u0003\u0088\u0003\u0088\u0007\u0088\u0847\n\u0088\f\u0088\u000e", + "\u0088\u084a\u000b\u0088\u0003\u0088\u0005\u0088\u084d\n\u0088\u0003", + "\u0088\u0003\u0088\u0005\u0088\u0851\n\u0088\u0003\u0088\u0003\u0088", + "\u0003\u0088\u0007\u0088\u0856\n\u0088\f\u0088\u000e\u0088\u0859\u000b", + "\u0088\u0003\u0088\u0005\u0088\u085c\n\u0088\u0003\u0089\u0003\u0089", + "\u0003\u0089\u0003\u0089\u0003\u0089\u0003\u0089\u0005\u0089\u0864\n", + "\u0089\u0003\u008a\u0003\u008a\u0003\u008a\u0003\u008a\u0005\u008a\u086a", + "\n\u008a\u0003\u008a\u0003\u008a\u0005\u008a\u086e\n\u008a\u0003\u008a", + "\u0003\u008a\u0003\u008a\u0003\u008a\u0003\u008a\u0003\u008b\u0003\u008b", + "\u0003\u008b\u0003\u008b\u0005\u008b\u0879\n\u008b\u0003\u008b\u0003", + "\u008b\u0003\u008b\u0003\u008b\u0003\u008b\u0005\u008b\u0880\n\u008b", + "\u0003\u008b\u0003\u008b\u0003\u008b\u0003\u008b\u0003\u008b\u0003\u008c", + "\u0003\u008c\u0003\u008c\u0003\u008c\u0003\u008c\u0003\u008c\u0005\u008c", + "\u088d\n\u008c\u0003\u008d\u0003\u008d\u0003\u008d\u0003\u008d\u0007", + "\u008d\u0893\n\u008d\f\u008d\u000e\u008d\u0896\u000b\u008d\u0003\u008e", + "\u0005\u008e\u0899\n\u008e\u0003\u008e\u0003\u008e\u0003\u008f\u0003", + "\u008f\u0003\u008f\u0003\u008f\u0007\u008f\u08a1\n\u008f\f\u008f\u000e", + "\u008f\u08a4\u000b\u008f\u0003\u0090\u0003\u0090\u0005\u0090\u08a8\n", + "\u0090\u0003\u0090\u0003\u0090\u0003\u0090\u0003\u0090\u0003\u0090\u0003", + "\u0091\u0003\u0091\u0003\u0091\u0003\u0091\u0007\u0091\u08b3\n\u0091", + "\f\u0091\u000e\u0091\u08b6\u000b\u0091\u0003\u0091\u0003\u0091\u0003", + "\u0092\u0003\u0092\u0003\u0092\u0003\u0092\u0007\u0092\u08be\n\u0092", + "\f\u0092\u000e\u0092\u08c1\u000b\u0092\u0003\u0093\u0003\u0093\u0003", + "\u0093\u0003\u0093\u0003\u0093\u0005\u0093\u08c8\n\u0093\u0003\u0094", + "\u0003\u0094\u0005\u0094\u08cc\n\u0094\u0003\u0094\u0003\u0094\u0005", + "\u0094\u08d0\n\u0094\u0003\u0094\u0003\u0094\u0005\u0094\u08d4\n\u0094", + "\u0005\u0094\u08d6\n\u0094\u0003\u0095\u0003\u0095\u0003\u0095\u0005", + "\u0095\u08db\n\u0095\u0003\u0095\u0005\u0095\u08de\n\u0095\u0003\u0095", + "\u0005\u0095\u08e1\n\u0095\u0003\u0095\u0005\u0095\u08e4\n\u0095\u0003", + "\u0095\u0003\u0095\u0005\u0095\u08e8\n\u0095\u0003\u0095\u0005\u0095", + "\u08eb\n\u0095\u0003\u0095\u0005\u0095\u08ee\n\u0095\u0003\u0096\u0005", + "\u0096\u08f1\n\u0096\u0003\u0096\u0005\u0096\u08f4\n\u0096\u0003\u0096", + "\u0003\u0096\u0003\u0096\u0007\u0096\u08f9\n\u0096\f\u0096\u000e\u0096", + "\u08fc\u000b\u0096\u0003\u0097\u0003\u0097\u0003\u0098\u0003\u0098\u0003", + "\u0098\u0003\u0099\u0003\u0099\u0003\u0099\u0005\u0099\u0906\n\u0099", + "\u0003\u0099\u0003\u0099\u0005\u0099\u090a\n\u0099\u0003\u0099\u0005", + "\u0099\u090d\n\u0099\u0003\u009a\u0003\u009a\u0005\u009a\u0911\n\u009a", + "\u0003\u009a\u0003\u009a\u0003\u009a\u0003\u009a\u0003\u009a\u0005\u009a", + "\u0918\n\u009a\u0003\u009b\u0003\u009b\u0005\u009b\u091c\n\u009b\u0003", + "\u009b\u0003\u009b\u0003\u009c\u0003\u009c\u0003\u009c\u0003\u009c\u0007", + "\u009c\u0924\n\u009c\f\u009c\u000e\u009c\u0927\u000b\u009c\u0003\u009d", + "\u0003\u009d\u0003\u009d\u0007\u009d\u092c\n\u009d\f\u009d\u000e\u009d", + "\u092f\u000b\u009d\u0003\u009e\u0003\u009e\u0003\u009e\u0005\u009e\u0934", + "\n\u009e\u0003\u009f\u0003\u009f\u0005\u009f\u0938\n\u009f\u0003\u00a0", + "\u0003\u00a0\u0003\u00a0\u0003\u00a0\u0005\u00a0\u093e\n\u00a0\u0003", + "\u00a1\u0003\u00a1\u0003\u00a1\u0003\u00a1\u0003\u00a1\u0003\u00a1\u0003", + "\u00a1\u0005\u00a1\u0947\n\u00a1\u0003\u00a2\u0005\u00a2\u094a\n\u00a2", + "\u0003\u00a2\u0003\u00a2\u0003\u00a2\u0005\u00a2\u094f\n\u00a2\u0003", + "\u00a2\u0005\u00a2\u0952\n\u00a2\u0003\u00a3\u0003\u00a3\u0003\u00a3", + "\u0003\u00a3\u0003\u00a3\u0003\u00a3\u0007\u00a3\u095a\n\u00a3\f\u00a3", + "\u000e\u00a3\u095d\u000b\u00a3\u0003\u00a3\u0003\u00a3\u0005\u00a3\u0961", + "\n\u00a3\u0003\u00a4\u0003\u00a4\u0003\u00a4\u0003\u00a4\u0003\u00a4", + "\u0007\u00a4\u0968\n\u00a4\f\u00a4\u000e\u00a4\u096b\u000b\u00a4\u0003", + "\u00a4\u0003\u00a4\u0005\u00a4\u096f\n\u00a4\u0003\u00a5\u0003\u00a5", + "\u0005\u00a5\u0973\n\u00a5\u0003\u00a5\u0003\u00a5\u0003\u00a5\u0003", + "\u00a5\u0003\u00a5\u0007\u00a5\u097a\n\u00a5\f\u00a5\u000e\u00a5\u097d", + "\u000b\u00a5\u0003\u00a5\u0005\u00a5\u0980\n\u00a5\u0003\u00a6\u0003", + "\u00a6\u0003\u00a7\u0003\u00a7\u0003\u00a7\u0003\u00a8\u0003\u00a8\u0003", + "\u00a8\u0003\u00a8\u0003\u00a8\u0007\u00a8\u098c\n\u00a8\f\u00a8\u000e", + "\u00a8\u098f\u000b\u00a8\u0003\u00a9\u0003\u00a9\u0003\u00a9\u0003\u00aa", + "\u0003\u00aa\u0003\u00aa\u0003\u00ab\u0003\u00ab\u0003\u00ab\u0003\u00ab", + "\u0005\u00ab\u099b\n\u00ab\u0003\u00ab\u0003\u00ab\u0003\u00ab\u0005", + "\u00ab\u09a0\n\u00ab\u0007\u00ab\u09a2\n\u00ab\f\u00ab\u000e\u00ab\u09a5", + "\u000b\u00ab\u0003\u00ac\u0006\u00ac\u09a8\n\u00ac\r\u00ac\u000e\u00ac", + "\u09a9\u0003\u00ad\u0003\u00ad\u0003\u00ad\u0003\u00ad\u0003\u00ad\u0003", + "\u00ad\u0003\u00ad\u0003\u00ad\u0003\u00ad\u0005\u00ad\u09b5\n\u00ad", + "\u0005\u00ad\u09b7\n\u00ad\u0003\u00ae\u0003\u00ae\u0003\u00ae\u0003", + "\u00ae\u0003\u00ae\u0005\u00ae\u09be\n\u00ae\u0003\u00ae\u0005\u00ae", + "\u09c1\n\u00ae\u0003\u00af\u0003\u00af\u0003\u00af\u0007\u00af\u09c6", + "\n\u00af\f\u00af\u000e\u00af\u09c9\u000b\u00af\u0003\u00b0\u0003\u00b0", + "\u0005\u00b0\u09cd\n\u00b0\u0003\u00b0\u0003\u00b0\u0003\u00b0\u0003", + "\u00b0\u0005\u00b0\u09d3\n\u00b0\u0003\u00b0\u0005\u00b0\u09d6\n\u00b0", + "\u0003\u00b0\u0005\u00b0\u09d9\n\u00b0\u0003\u00b1\u0003\u00b1\u0003", + "\u00b1\u0003\u00b2\u0003\u00b2\u0003\u00b2\u0003\u00b2\u0003\u00b2\u0003", + "\u00b2\u0003\u00b2\u0003\u00b2\u0006\u00b2\u09e6\n\u00b2\r\u00b2\u000e", + "\u00b2\u09e7\u0003\u00b3\u0003\u00b3\u0003\u00b3\u0003\u00b3\u0003\u00b3", + "\u0005\u00b3\u09ef\n\u00b3\u0003\u00b3\u0005\u00b3\u09f2\n\u00b3\u0003", + "\u00b3\u0005\u00b3\u09f5\n\u00b3\u0003\u00b4\u0003\u00b4\u0005\u00b4", + "\u09f9\n\u00b4\u0003\u00b4\u0003\u00b4\u0003\u00b4\u0005\u00b4\u09fe", + "\n\u00b4\u0003\u00b4\u0003\u00b4\u0003\u00b4\u0003\u00b4\u0005\u00b4", + "\u0a04\n\u00b4\u0003\u00b5\u0003\u00b5\u0005\u00b5\u0a08\n\u00b5\u0003", + "\u00b5\u0003\u00b5\u0003\u00b5\u0003\u00b5\u0003\u00b5\u0003\u00b5\u0003", + "\u00b5\u0007\u00b5\u0a11\n\u00b5\f\u00b5\u000e\u00b5\u0a14\u000b\u00b5", + "\u0003\u00b5\u0005\u00b5\u0a17\n\u00b5\u0003\u00b5\u0005\u00b5\u0a1a", + "\n\u00b5\u0003\u00b6\u0003\u00b6\u0005\u00b6\u0a1e\n\u00b6\u0003\u00b6", + "\u0003\u00b6\u0005\u00b6\u0a22\n\u00b6\u0003\u00b6\u0003\u00b6\u0005", + "\u00b6\u0a26\n\u00b6\u0003\u00b7\u0003\u00b7\u0005\u00b7\u0a2a\n\u00b7", + "\u0003\u00b7\u0003\u00b7\u0003\u00b8\u0003\u00b8\u0005\u00b8\u0a30\n", + "\u00b8\u0003\u00b8\u0003\u00b8\u0003\u00b9\u0003\u00b9\u0005\u00b9\u0a36", + "\n\u00b9\u0003\u00b9\u0003\u00b9\u0003\u00b9\u0003\u00b9\u0003\u00b9", + "\u0005\u00b9\u0a3d\n\u00b9\u0003\u00b9\u0003\u00b9\u0003\u00b9\u0003", + "\u00b9\u0007\u00b9\u0a43\n\u00b9\f\u00b9\u000e\u00b9\u0a46\u000b\u00b9", + "\u0003\u00ba\u0003\u00ba\u0003\u00ba\u0005\u00ba\u0a4b\n\u00ba\u0003", + "\u00bb\u0003\u00bb\u0003\u00bb\u0005\u00bb\u0a50\n\u00bb\u0003\u00bb", "\u0003\u00bb\u0003\u00bb\u0003\u00bb\u0003\u00bb\u0003\u00bb\u0003\u00bb", - "\u0005\u00bb\u0a5e\n\u00bb\u0003\u00bb\u0003\u00bb\u0003\u00bb\u0003", - "\u00bb\u0003\u00bb\u0003\u00bb\u0003\u00bb\u0005\u00bb\u0a67\n\u00bb", - "\u0003\u00bc\u0003\u00bc\u0005\u00bc\u0a6b\n\u00bc\u0003\u00bc\u0003", - "\u00bc\u0003\u00bc\u0003\u00bc\u0003\u00bc\u0007\u00bc\u0a72\n\u00bc", - "\f\u00bc\u000e\u00bc\u0a75\u000b\u00bc\u0003\u00bc\u0005\u00bc\u0a78", - "\n\u00bc\u0003\u00bc\u0003\u00bc\u0003\u00bd\u0003\u00bd\u0003\u00bd", - "\u0003\u00bd\u0007\u00bd\u0a80\n\u00bd\f\u00bd\u000e\u00bd\u0a83\u000b", - "\u00bd\u0003\u00bd\u0003\u00bd\u0005\u00bd\u0a87\n\u00bd\u0003\u00bd", - "\u0003\u00bd\u0003\u00bd\u0003\u00bd\u0003\u00bd\u0003\u00be\u0003\u00be", - "\u0003\u00be\u0003\u00be\u0003\u00bf\u0003\u00bf\u0003\u00c0\u0003\u00c0", + "\u0003\u00bb\u0003\u00bb\u0005\u00bb\u0a5b\n\u00bb\u0003\u00bb\u0003", + "\u00bb\u0003\u00bb\u0003\u00bb\u0003\u00bb\u0003\u00bb\u0003\u00bb\u0005", + "\u00bb\u0a64\n\u00bb\u0003\u00bc\u0003\u00bc\u0005\u00bc\u0a68\n\u00bc", + "\u0003\u00bc\u0003\u00bc\u0003\u00bc\u0003\u00bc\u0003\u00bc\u0007\u00bc", + "\u0a6f\n\u00bc\f\u00bc\u000e\u00bc\u0a72\u000b\u00bc\u0003\u00bc\u0005", + "\u00bc\u0a75\n\u00bc\u0003\u00bc\u0003\u00bc\u0003\u00bd\u0003\u00bd", + "\u0003\u00bd\u0003\u00bd\u0007\u00bd\u0a7d\n\u00bd\f\u00bd\u000e\u00bd", + "\u0a80\u000b\u00bd\u0003\u00bd\u0003\u00bd\u0005\u00bd\u0a84\n\u00bd", + "\u0003\u00bd\u0003\u00bd\u0003\u00bd\u0003\u00bd\u0003\u00bd\u0003\u00be", + "\u0003\u00be\u0003\u00be\u0003\u00be\u0003\u00bf\u0003\u00bf\u0003\u00c0", "\u0003\u00c0\u0003\u00c0\u0003\u00c0\u0003\u00c0\u0003\u00c0\u0003\u00c0", - "\u0003\u00c0\u0005\u00c0\u0a9d\n\u00c0\u0003\u00c0\u0005\u00c0\u0aa0", - "\n\u00c0\u0003\u00c1\u0003\u00c1\u0003\u00c1\u0003\u00c1\u0003\u00c1", + "\u0003\u00c0\u0003\u00c0\u0005\u00c0\u0a9a\n\u00c0\u0003\u00c0\u0005", + "\u00c0\u0a9d\n\u00c0\u0003\u00c1\u0003\u00c1\u0003\u00c1\u0003\u00c1", "\u0003\u00c1\u0003\u00c1\u0003\u00c1\u0003\u00c1\u0003\u00c1\u0003\u00c1", "\u0003\u00c1\u0003\u00c1\u0003\u00c1\u0003\u00c1\u0003\u00c1\u0003\u00c1", - "\u0005\u00c1\u0ab3\n\u00c1\u0003\u00c1\u0003\u00c1\u0003\u00c1\u0003", + "\u0003\u00c1\u0005\u00c1\u0ab0\n\u00c1\u0003\u00c1\u0003\u00c1\u0003", "\u00c1\u0003\u00c1\u0003\u00c1\u0003\u00c1\u0003\u00c1\u0003\u00c1\u0003", - "\u00c1\u0003\u00c1\u0003\u00c1\u0003\u00c1\u0003\u00c1\u0007\u00c1\u0ac3", - "\n\u00c1\f\u00c1\u000e\u00c1\u0ac6\u000b\u00c1\u0003\u00c2\u0003\u00c2", + "\u00c1\u0003\u00c1\u0003\u00c1\u0003\u00c1\u0003\u00c1\u0003\u00c1\u0007", + "\u00c1\u0ac0\n\u00c1\f\u00c1\u000e\u00c1\u0ac3\u000b\u00c1\u0003\u00c2", "\u0003\u00c2\u0003\u00c2\u0003\u00c2\u0003\u00c2\u0003\u00c2\u0003\u00c2", - "\u0005\u00c2\u0ad0\n\u00c2\u0003\u00c3\u0003\u00c3\u0003\u00c3\u0003", - "\u00c3\u0003\u00c4\u0003\u00c4\u0003\u00c5\u0003\u00c5\u0003\u00c5\u0003", - "\u00c5\u0003\u00c5\u0007\u00c5\u0add\n\u00c5\f\u00c5\u000e\u00c5\u0ae0", - "\u000b\u00c5\u0003\u00c6\u0003\u00c6\u0003\u00c6\u0003\u00c6\u0003\u00c6", - "\u0003\u00c6\u0003\u00c6\u0003\u00c6\u0003\u00c6\u0005\u00c6\u0aeb\n", - "\u00c6\u0003\u00c7\u0003\u00c7\u0005\u00c7\u0aef\n\u00c7\u0003\u00c8", - "\u0003\u00c8\u0003\u00c8\u0003\u00c8\u0003\u00c8\u0003\u00c8\u0003\u00c8", - "\u0006\u00c8\u0af8\n\u00c8\r\u00c8\u000e\u00c8\u0af9\u0003\u00c8\u0003", - "\u00c8\u0005\u00c8\u0afe\n\u00c8\u0003\u00c8\u0003\u00c8\u0003\u00c9", - "\u0003\u00c9\u0003\u00c9\u0003\u00c9\u0003\u00c9\u0003\u00c9\u0006\u00c9", - "\u0b08\n\u00c9\r\u00c9\u000e\u00c9\u0b09\u0003\u00c9\u0003\u00c9\u0005", - "\u00c9\u0b0e\n\u00c9\u0003\u00c9\u0003\u00c9\u0003\u00ca\u0003\u00ca", - "\u0003\u00ca\u0003\u00ca\u0003\u00cb\u0003\u00cb\u0003\u00cb\u0005\u00cb", - "\u0b19\n\u00cb\u0003\u00cb\u0003\u00cb\u0003\u00cb\u0005\u00cb\u0b1e", - "\n\u00cb\u0003\u00cb\u0003\u00cb\u0003\u00cb\u0005\u00cb\u0b23\n\u00cb", - "\u0003\u00cb\u0003\u00cb\u0005\u00cb\u0b27\n\u00cb\u0003\u00cb\u0003", - "\u00cb\u0005\u00cb\u0b2b\n\u00cb\u0003\u00cb\u0003\u00cb\u0003\u00cb", - "\u0005\u00cb\u0b30\n\u00cb\u0003\u00cb\u0003\u00cb\u0005\u00cb\u0b34", - "\n\u00cb\u0003\u00cb\u0003\u00cb\u0005\u00cb\u0b38\n\u00cb\u0003\u00cb", - "\u0003\u00cb\u0003\u00cb\u0003\u00cb\u0003\u00cb\u0003\u00cb\u0003\u00cb", - "\u0003\u00cb\u0003\u00cb\u0003\u00cb\u0003\u00cb\u0003\u00cb\u0003\u00cb", - "\u0003\u00cb\u0003\u00cb\u0003\u00cb\u0003\u00cb\u0003\u00cb\u0003\u00cb", - "\u0003\u00cb\u0003\u00cb\u0005\u00cb\u0b4f\n\u00cb\u0005\u00cb\u0b51", - "\n\u00cb\u0003\u00cb\u0003\u00cb\u0003\u00cb\u0003\u00cb\u0003\u00cb", - "\u0003\u00cb\u0003\u00cb\u0003\u00cb\u0003\u00cb\u0003\u00cb\u0003\u00cb", - "\u0003\u00cb\u0003\u00cb\u0003\u00cb\u0003\u00cb\u0003\u00cb\u0005\u00cb", - "\u0b63\n\u00cb\u0005\u00cb\u0b65\n\u00cb\u0003\u00cb\u0003\u00cb\u0003", - "\u00cb\u0003\u00cb\u0003\u00cb\u0003\u00cb\u0005\u00cb\u0b6d\n\u00cb", - "\u0003\u00cb\u0003\u00cb\u0003\u00cb\u0005\u00cb\u0b72\n\u00cb\u0003", - "\u00cb\u0003\u00cb\u0003\u00cb\u0005\u00cb\u0b77\n\u00cb\u0003\u00cb", - "\u0003\u00cb\u0003\u00cb\u0005\u00cb\u0b7c\n\u00cb\u0003\u00cb\u0003", + "\u0003\u00c2\u0005\u00c2\u0acd\n\u00c2\u0003\u00c3\u0003\u00c3\u0003", + "\u00c3\u0003\u00c3\u0003\u00c4\u0003\u00c4\u0003\u00c5\u0003\u00c5\u0003", + "\u00c5\u0003\u00c5\u0003\u00c5\u0007\u00c5\u0ada\n\u00c5\f\u00c5\u000e", + "\u00c5\u0add\u000b\u00c5\u0003\u00c6\u0003\u00c6\u0003\u00c6\u0003\u00c6", + "\u0003\u00c6\u0003\u00c6\u0003\u00c6\u0003\u00c6\u0003\u00c6\u0005\u00c6", + "\u0ae8\n\u00c6\u0003\u00c7\u0003\u00c7\u0005\u00c7\u0aec\n\u00c7\u0003", + "\u00c8\u0003\u00c8\u0003\u00c8\u0003\u00c8\u0003\u00c8\u0003\u00c8\u0003", + "\u00c8\u0006\u00c8\u0af5\n\u00c8\r\u00c8\u000e\u00c8\u0af6\u0003\u00c8", + "\u0003\u00c8\u0005\u00c8\u0afb\n\u00c8\u0003\u00c8\u0003\u00c8\u0003", + "\u00c9\u0003\u00c9\u0003\u00c9\u0003\u00c9\u0003\u00c9\u0003\u00c9\u0006", + "\u00c9\u0b05\n\u00c9\r\u00c9\u000e\u00c9\u0b06\u0003\u00c9\u0003\u00c9", + "\u0005\u00c9\u0b0b\n\u00c9\u0003\u00c9\u0003\u00c9\u0003\u00ca\u0003", + "\u00ca\u0003\u00ca\u0003\u00ca\u0003\u00cb\u0003\u00cb\u0003\u00cb\u0005", + "\u00cb\u0b16\n\u00cb\u0003\u00cb\u0003\u00cb\u0003\u00cb\u0005\u00cb", + "\u0b1b\n\u00cb\u0003\u00cb\u0003\u00cb\u0003\u00cb\u0005\u00cb\u0b20", + "\n\u00cb\u0003\u00cb\u0003\u00cb\u0005\u00cb\u0b24\n\u00cb\u0003\u00cb", + "\u0003\u00cb\u0005\u00cb\u0b28\n\u00cb\u0003\u00cb\u0003\u00cb\u0003", + "\u00cb\u0005\u00cb\u0b2d\n\u00cb\u0003\u00cb\u0003\u00cb\u0005\u00cb", + "\u0b31\n\u00cb\u0003\u00cb\u0003\u00cb\u0005\u00cb\u0b35\n\u00cb\u0003", "\u00cb\u0003\u00cb\u0003\u00cb\u0003\u00cb\u0003\u00cb\u0003\u00cb\u0003", - "\u00cb\u0003\u00cb\u0003\u00cb\u0003\u00cb\u0005\u00cb\u0b89\n\u00cb", - "\u0003\u00cb\u0003\u00cb\u0003\u00cb\u0005\u00cb\u0b8e\n\u00cb\u0003", - "\u00cb\u0003\u00cb\u0003\u00cb\u0005\u00cb\u0b93\n\u00cb\u0003\u00cb", - "\u0003\u00cb\u0003\u00cb\u0005\u00cb\u0b98\n\u00cb\u0003\u00cb\u0003", - "\u00cb\u0003\u00cb\u0005\u00cb\u0b9d\n\u00cb\u0003\u00cb\u0003\u00cb", - "\u0003\u00cb\u0005\u00cb\u0ba2\n\u00cb\u0003\u00cb\u0003\u00cb\u0003", - "\u00cb\u0005\u00cb\u0ba7\n\u00cb\u0003\u00cb\u0003\u00cb\u0003\u00cb", - "\u0005\u00cb\u0bac\n\u00cb\u0005\u00cb\u0bae\n\u00cb\u0003\u00cc\u0003", - "\u00cc\u0003\u00cd\u0003\u00cd\u0003\u00cd\u0005\u00cd\u0bb5\n\u00cd", - "\u0003\u00cd\u0005\u00cd\u0bb8\n\u00cd\u0003\u00cd\u0003\u00cd\u0003", - "\u00ce\u0003\u00ce\u0003\u00ce\u0003\u00ce\u0003\u00ce\u0007\u00ce\u0bc1", - "\n\u00ce\f\u00ce\u000e\u00ce\u0bc4\u000b\u00ce\u0003\u00cf\u0003\u00cf", - "\u0003\u00cf\u0003\u00cf\u0003\u00cf\u0003\u00cf\u0003\u00cf\u0005\u00cf", - "\u0bcd\n\u00cf\u0003\u00cf\u0003\u00cf\u0003\u00cf\u0003\u00cf\u0003", - "\u00cf\u0003\u00cf\u0005\u00cf\u0bd5\n\u00cf\u0003\u00cf\u0003\u00cf", - "\u0003\u00cf\u0003\u00cf\u0003\u00cf\u0003\u00cf\u0003\u00cf\u0005\u00cf", - "\u0bde\n\u00cf\u0003\u00cf\u0003\u00cf\u0003\u00cf\u0003\u00cf\u0005", - "\u00cf\u0be4\n\u00cf\u0003\u00cf\u0003\u00cf\u0003\u00cf\u0003\u00cf", - "\u0003\u00cf\u0003\u00cf\u0003\u00cf\u0003\u00cf\u0003\u00cf\u0003\u00cf", - "\u0003\u00cf\u0003\u00cf\u0003\u00cf\u0007\u00cf\u0bf3\n\u00cf\f\u00cf", - "\u000e\u00cf\u0bf6\u000b\u00cf\u0005\u00cf\u0bf8\n\u00cf\u0003\u00cf", - "\u0003\u00cf\u0003\u00cf\u0003\u00cf\u0003\u00cf\u0003\u00cf\u0003\u00cf", - "\u0003\u00cf\u0003\u00cf\u0003\u00cf\u0003\u00cf\u0003\u00cf\u0007\u00cf", - "\u0c06\n\u00cf\f\u00cf\u000e\u00cf\u0c09\u000b\u00cf\u0005\u00cf\u0c0b", - "\n\u00cf\u0003\u00cf\u0003\u00cf\u0003\u00cf\u0003\u00cf\u0003\u00cf", - "\u0003\u00cf\u0003\u00cf\u0003\u00cf\u0003\u00cf\u0003\u00cf\u0003\u00cf", - "\u0003\u00cf\u0007\u00cf\u0c19\n\u00cf\f\u00cf\u000e\u00cf\u0c1c\u000b", - "\u00cf\u0005\u00cf\u0c1e\n\u00cf\u0003\u00cf\u0003\u00cf\u0003\u00cf", - "\u0003\u00cf\u0003\u00cf\u0003\u00cf\u0003\u00cf\u0003\u00cf\u0003\u00cf", - "\u0003\u00cf\u0003\u00cf\u0003\u00cf\u0007\u00cf\u0c2c\n\u00cf\f\u00cf", - "\u000e\u00cf\u0c2f\u000b\u00cf\u0005\u00cf\u0c31\n\u00cf\u0003\u00cf", - "\u0003\u00cf\u0003\u00cf\u0003\u00cf\u0003\u00cf\u0003\u00cf\u0003\u00cf", - "\u0003\u00cf\u0003\u00cf\u0003\u00cf\u0003\u00cf\u0003\u00cf\u0007\u00cf", - "\u0c3f\n\u00cf\f\u00cf\u000e\u00cf\u0c42\u000b\u00cf\u0005\u00cf\u0c44", - "\n\u00cf\u0003\u00cf\u0003\u00cf\u0003\u00cf\u0003\u00cf\u0003\u00cf", - "\u0003\u00cf\u0003\u00cf\u0003\u00cf\u0003\u00cf\u0003\u00cf\u0003\u00cf", - "\u0003\u00cf\u0007\u00cf\u0c52\n\u00cf\f\u00cf\u000e\u00cf\u0c55\u000b", - "\u00cf\u0005\u00cf\u0c57\n\u00cf\u0003\u00cf\u0003\u00cf\u0003\u00cf", - "\u0003\u00cf\u0003\u00cf\u0003\u00cf\u0003\u00cf\u0003\u00cf\u0003\u00cf", - "\u0003\u00cf\u0007\u00cf\u0c63\n\u00cf\f\u00cf\u000e\u00cf\u0c66\u000b", + "\u00cb\u0003\u00cb\u0003\u00cb\u0003\u00cb\u0003\u00cb\u0003\u00cb\u0003", + "\u00cb\u0003\u00cb\u0003\u00cb\u0003\u00cb\u0003\u00cb\u0003\u00cb\u0003", + "\u00cb\u0003\u00cb\u0003\u00cb\u0005\u00cb\u0b4c\n\u00cb\u0005\u00cb", + "\u0b4e\n\u00cb\u0003\u00cb\u0003\u00cb\u0003\u00cb\u0003\u00cb\u0003", + "\u00cb\u0003\u00cb\u0003\u00cb\u0003\u00cb\u0003\u00cb\u0003\u00cb\u0003", + "\u00cb\u0003\u00cb\u0003\u00cb\u0003\u00cb\u0003\u00cb\u0003\u00cb\u0005", + "\u00cb\u0b60\n\u00cb\u0005\u00cb\u0b62\n\u00cb\u0003\u00cb\u0003\u00cb", + "\u0003\u00cb\u0003\u00cb\u0003\u00cb\u0003\u00cb\u0005\u00cb\u0b6a\n", + "\u00cb\u0003\u00cb\u0003\u00cb\u0003\u00cb\u0005\u00cb\u0b6f\n\u00cb", + "\u0003\u00cb\u0003\u00cb\u0003\u00cb\u0005\u00cb\u0b74\n\u00cb\u0003", + "\u00cb\u0003\u00cb\u0003\u00cb\u0005\u00cb\u0b79\n\u00cb\u0003\u00cb", + "\u0003\u00cb\u0003\u00cb\u0003\u00cb\u0003\u00cb\u0003\u00cb\u0003\u00cb", + "\u0003\u00cb\u0003\u00cb\u0003\u00cb\u0003\u00cb\u0005\u00cb\u0b86\n", + "\u00cb\u0003\u00cb\u0003\u00cb\u0003\u00cb\u0005\u00cb\u0b8b\n\u00cb", + "\u0003\u00cb\u0003\u00cb\u0003\u00cb\u0005\u00cb\u0b90\n\u00cb\u0003", + "\u00cb\u0003\u00cb\u0003\u00cb\u0005\u00cb\u0b95\n\u00cb\u0003\u00cb", + "\u0003\u00cb\u0003\u00cb\u0005\u00cb\u0b9a\n\u00cb\u0003\u00cb\u0003", + "\u00cb\u0003\u00cb\u0005\u00cb\u0b9f\n\u00cb\u0003\u00cb\u0003\u00cb", + "\u0003\u00cb\u0005\u00cb\u0ba4\n\u00cb\u0003\u00cb\u0003\u00cb\u0003", + "\u00cb\u0005\u00cb\u0ba9\n\u00cb\u0005\u00cb\u0bab\n\u00cb\u0003\u00cc", + "\u0003\u00cc\u0003\u00cd\u0003\u00cd\u0003\u00cd\u0005\u00cd\u0bb2\n", + "\u00cd\u0003\u00cd\u0005\u00cd\u0bb5\n\u00cd\u0003\u00cd\u0003\u00cd", + "\u0003\u00ce\u0003\u00ce\u0003\u00ce\u0003\u00ce\u0003\u00ce\u0007\u00ce", + "\u0bbe\n\u00ce\f\u00ce\u000e\u00ce\u0bc1\u000b\u00ce\u0003\u00cf\u0003", + "\u00cf\u0003\u00cf\u0003\u00cf\u0003\u00cf\u0003\u00cf\u0003\u00cf\u0005", + "\u00cf\u0bca\n\u00cf\u0003\u00cf\u0003\u00cf\u0003\u00cf\u0003\u00cf", + "\u0003\u00cf\u0003\u00cf\u0005\u00cf\u0bd2\n\u00cf\u0003\u00cf\u0003", + "\u00cf\u0003\u00cf\u0003\u00cf\u0003\u00cf\u0003\u00cf\u0003\u00cf\u0005", + "\u00cf\u0bdb\n\u00cf\u0003\u00cf\u0003\u00cf\u0003\u00cf\u0003\u00cf", + "\u0005\u00cf\u0be1\n\u00cf\u0003\u00cf\u0003\u00cf\u0003\u00cf\u0003", "\u00cf\u0003\u00cf\u0003\u00cf\u0003\u00cf\u0003\u00cf\u0003\u00cf\u0003", - "\u00cf\u0003\u00cf\u0003\u00cf\u0003\u00cf\u0003\u00cf\u0006\u00cf\u0c72", - "\n\u00cf\r\u00cf\u000e\u00cf\u0c73\u0003\u00cf\u0003\u00cf\u0005\u00cf", - "\u0c78\n\u00cf\u0003\u00cf\u0003\u00cf\u0003\u00cf\u0003\u00cf\u0003", + "\u00cf\u0003\u00cf\u0003\u00cf\u0003\u00cf\u0007\u00cf\u0bf0\n\u00cf", + "\f\u00cf\u000e\u00cf\u0bf3\u000b\u00cf\u0005\u00cf\u0bf5\n\u00cf\u0003", "\u00cf\u0003\u00cf\u0003\u00cf\u0003\u00cf\u0003\u00cf\u0003\u00cf\u0003", - "\u00cf\u0003\u00cf\u0003\u00cf\u0003\u00cf\u0005\u00cf\u0c88\n\u00cf", - "\u0003\u00cf\u0003\u00cf\u0003\u00cf\u0003\u00cf\u0005\u00cf\u0c8e\n", - "\u00cf\u0003\u00d0\u0003\u00d0\u0003\u00d0\u0005\u00d0\u0c93\n\u00d0", + "\u00cf\u0003\u00cf\u0003\u00cf\u0003\u00cf\u0003\u00cf\u0003\u00cf\u0007", + "\u00cf\u0c03\n\u00cf\f\u00cf\u000e\u00cf\u0c06\u000b\u00cf\u0005\u00cf", + "\u0c08\n\u00cf\u0003\u00cf\u0003\u00cf\u0003\u00cf\u0003\u00cf\u0003", + "\u00cf\u0003\u00cf\u0003\u00cf\u0003\u00cf\u0003\u00cf\u0003\u00cf\u0003", + "\u00cf\u0003\u00cf\u0007\u00cf\u0c16\n\u00cf\f\u00cf\u000e\u00cf\u0c19", + "\u000b\u00cf\u0005\u00cf\u0c1b\n\u00cf\u0003\u00cf\u0003\u00cf\u0003", + "\u00cf\u0003\u00cf\u0003\u00cf\u0003\u00cf\u0003\u00cf\u0003\u00cf\u0003", + "\u00cf\u0003\u00cf\u0003\u00cf\u0003\u00cf\u0007\u00cf\u0c29\n\u00cf", + "\f\u00cf\u000e\u00cf\u0c2c\u000b\u00cf\u0005\u00cf\u0c2e\n\u00cf\u0003", + "\u00cf\u0003\u00cf\u0003\u00cf\u0003\u00cf\u0003\u00cf\u0003\u00cf\u0003", + "\u00cf\u0003\u00cf\u0003\u00cf\u0003\u00cf\u0003\u00cf\u0003\u00cf\u0007", + "\u00cf\u0c3c\n\u00cf\f\u00cf\u000e\u00cf\u0c3f\u000b\u00cf\u0005\u00cf", + "\u0c41\n\u00cf\u0003\u00cf\u0003\u00cf\u0003\u00cf\u0003\u00cf\u0003", + "\u00cf\u0003\u00cf\u0003\u00cf\u0003\u00cf\u0003\u00cf\u0003\u00cf\u0003", + "\u00cf\u0003\u00cf\u0007\u00cf\u0c4f\n\u00cf\f\u00cf\u000e\u00cf\u0c52", + "\u000b\u00cf\u0005\u00cf\u0c54\n\u00cf\u0003\u00cf\u0003\u00cf\u0003", + "\u00cf\u0003\u00cf\u0003\u00cf\u0003\u00cf\u0003\u00cf\u0003\u00cf\u0003", + "\u00cf\u0003\u00cf\u0007\u00cf\u0c60\n\u00cf\f\u00cf\u000e\u00cf\u0c63", + "\u000b\u00cf\u0003\u00cf\u0003\u00cf\u0003\u00cf\u0003\u00cf\u0003\u00cf", + "\u0003\u00cf\u0003\u00cf\u0003\u00cf\u0003\u00cf\u0003\u00cf\u0006\u00cf", + "\u0c6f\n\u00cf\r\u00cf\u000e\u00cf\u0c70\u0003\u00cf\u0003\u00cf\u0005", + "\u00cf\u0c75\n\u00cf\u0003\u00cf\u0003\u00cf\u0003\u00cf\u0003\u00cf", + "\u0003\u00cf\u0003\u00cf\u0003\u00cf\u0003\u00cf\u0003\u00cf\u0003\u00cf", + "\u0003\u00cf\u0003\u00cf\u0003\u00cf\u0003\u00cf\u0005\u00cf\u0c85\n", + "\u00cf\u0003\u00cf\u0003\u00cf\u0003\u00cf\u0003\u00cf\u0005\u00cf\u0c8b", + "\n\u00cf\u0003\u00d0\u0003\u00d0\u0003\u00d0\u0005\u00d0\u0c90\n\u00d0", "\u0003\u00d0\u0003\u00d0\u0003\u00d1\u0003\u00d1\u0003\u00d1\u0007\u00d1", - "\u0c9a\n\u00d1\f\u00d1\u000e\u00d1\u0c9d\u000b\u00d1\u0003\u00d2\u0003", - "\u00d2\u0003\u00d2\u0003\u00d2\u0005\u00d2\u0ca3\n\u00d2\u0005\u00d2", - "\u0ca5\n\u00d2\u0003\u00d2\u0003\u00d2\u0003\u00d3\u0003\u00d3\u0005", - "\u00d3\u0cab\n\u00d3\u0003\u00d4\u0003\u00d4\u0005\u00d4\u0caf\n\u00d4", - "\u0003\u00d5\u0003\u00d5\u0007\u00d5\u0cb3\n\u00d5\f\u00d5\u000e\u00d5", - "\u0cb6\u000b\u00d5\u0003\u00d6\u0003\u00d6\u0003\u00d6\u0003\u00d6\u0003", + "\u0c97\n\u00d1\f\u00d1\u000e\u00d1\u0c9a\u000b\u00d1\u0003\u00d2\u0003", + "\u00d2\u0003\u00d2\u0003\u00d2\u0005\u00d2\u0ca0\n\u00d2\u0005\u00d2", + "\u0ca2\n\u00d2\u0003\u00d2\u0003\u00d2\u0003\u00d3\u0003\u00d3\u0005", + "\u00d3\u0ca8\n\u00d3\u0003\u00d4\u0003\u00d4\u0005\u00d4\u0cac\n\u00d4", + "\u0003\u00d5\u0003\u00d5\u0007\u00d5\u0cb0\n\u00d5\f\u00d5\u000e\u00d5", + "\u0cb3\u000b\u00d5\u0003\u00d6\u0003\u00d6\u0003\u00d6\u0003\u00d6\u0003", "\u00d6\u0003\u00d6\u0003\u00d6\u0003\u00d6\u0003\u00d6\u0003\u00d6\u0003", - "\u00d6\u0003\u00d6\u0005\u00d6\u0cc4\n\u00d6\u0003\u00d7\u0003\u00d7", - "\u0003\u00d7\u0003\u00d7\u0003\u00d7\u0005\u00d7\u0ccb\n\u00d7\u0003", - "\u00d8\u0007\u00d8\u0cce\n\u00d8\f\u00d8\u000e\u00d8\u0cd1\u000b\u00d8", + "\u00d6\u0003\u00d6\u0005\u00d6\u0cc1\n\u00d6\u0003\u00d7\u0003\u00d7", + "\u0003\u00d7\u0003\u00d7\u0003\u00d7\u0005\u00d7\u0cc8\n\u00d7\u0003", + "\u00d8\u0007\u00d8\u0ccb\n\u00d8\f\u00d8\u000e\u00d8\u0cce\u000b\u00d8", "\u0003\u00d9\u0003\u00d9\u0003\u00d9\u0003\u00da\u0003\u00da\u0003\u00da", - "\u0003\u00da\u0005\u00da\u0cda\n\u00da\u0003\u00da\u0003\u00da\u0003", - "\u00da\u0007\u00da\u0cdf\n\u00da\f\u00da\u000e\u00da\u0ce2\u000b\u00da", - "\u0005\u00da\u0ce4\n\u00da\u0003\u00db\u0003\u00db\u0003\u00db\u0003", - "\u00dc\u0003\u00dc\u0003\u00dc\u0003\u00dd\u0005\u00dd\u0ced\n\u00dd", - "\u0003\u00dd\u0003\u00dd\u0005\u00dd\u0cf1\n\u00dd\u0003\u00dd\u0003", - "\u00dd\u0003\u00dd\u0005\u00dd\u0cf6\n\u00dd\u0007\u00dd\u0cf8\n\u00dd", - "\f\u00dd\u000e\u00dd\u0cfb\u000b\u00dd\u0003\u00de\u0003\u00de\u0005", - "\u00de\u0cff\n\u00de\u0003\u00df\u0005\u00df\u0d02\n\u00df\u0003\u00df", - "\u0003\u00df\u0003\u00e0\u0005\u00e0\u0d07\n\u00e0\u0003\u00e0\u0003", - "\u00e0\u0003\u00e1\u0003\u00e1\u0003\u00e2\u0003\u00e2\u0003\u00e3\u0003", - "\u00e3\u0003\u00e3\u0003\u0ccf\u0004\u0170\u0180\u00e4\u0002\u0004\u0006", - "\b\n\f\u000e\u0010\u0012\u0014\u0016\u0018\u001a\u001c\u001e \"$&(*", - ",.02468:<>@BDFHJLNPRTVXZ\\^`bdfhjlnprtvxz|~\u0080\u0082\u0084\u0086", - "\u0088\u008a\u008c\u008e\u0090\u0092\u0094\u0096\u0098\u009a\u009c\u009e", - "\u00a0\u00a2\u00a4\u00a6\u00a8\u00aa\u00ac\u00ae\u00b0\u00b2\u00b4\u00b6", - "\u00b8\u00ba\u00bc\u00be\u00c0\u00c2\u00c4\u00c6\u00c8\u00ca\u00cc\u00ce", - "\u00d0\u00d2\u00d4\u00d6\u00d8\u00da\u00dc\u00de\u00e0\u00e2\u00e4\u00e6", - "\u00e8\u00ea\u00ec\u00ee\u00f0\u00f2\u00f4\u00f6\u00f8\u00fa\u00fc\u00fe", - "\u0100\u0102\u0104\u0106\u0108\u010a\u010c\u010e\u0110\u0112\u0114\u0116", - "\u0118\u011a\u011c\u011e\u0120\u0122\u0124\u0126\u0128\u012a\u012c\u012e", - "\u0130\u0132\u0134\u0136\u0138\u013a\u013c\u013e\u0140\u0142\u0144\u0146", - "\u0148\u014a\u014c\u014e\u0150\u0152\u0154\u0156\u0158\u015a\u015c\u015e", - "\u0160\u0162\u0164\u0166\u0168\u016a\u016c\u016e\u0170\u0172\u0174\u0176", - "\u0178\u017a\u017c\u017e\u0180\u0182\u0184\u0186\u0188\u018a\u018c\u018e", - "\u0190\u0192\u0194\u0196\u0198\u019a\u019c\u019e\u01a0\u01a2\u01a4\u01a6", - "\u01a8\u01aa\u01ac\u01ae\u01b0\u01b2\u01b4\u01b6\u01b8\u01ba\u01bc\u01be", - "\u01c0\u01c2\u01c4\u00023\u0004\u0002\u0003\u0005\u000f\u000f\u0004", - "\u0002\u0010\u0010\u0012\u0012\u0003\u0002\"#\u0005\u0002\u001e\u001e", - ")),,\u0003\u000201\u0003\u000234\u0004\u0002\u0016\u0016AA\u0003\u0002", - "NO\u0003\u0002RS\u0003\u0002YZ\u0004\u0002SS\\\\\u0003\u0002`a\u0003", - "\u0002be\u0003\u0002gh\u0004\u0002TTss\u0003\u0002\u00b1\u00b2\u0004", - "\u0002JJ\u00b3\u00b3\u0004\u0002\u008b\u008b\u00b4\u00b4\u0003\u0002", - "\u00b5\u00b6\u0003\u0002\u00b7\u00b8\u0004\u0002)),,\u0004\u0002--\u00bc", - "\u00bc\u0004\u0002 \u00be\u00be\u0003\u0002\u00c5\u00c8\u0003\u0002", - "\u00cb\u00cc\u0003\u0002\u00cf\u00d0\u0003\u0002\u00e3\u00e4\u0004\u0002", - "\u00d9\u00d9\u00e8\u00e8\u0005\u0002SS\u00d3\u00d3\u00ee\u00ee\u0003", - "\u0002\u00f9\u00fd\u0004\u0002QQ\u00fe\u00fe\u0004\u0002%%\u0101\u0101", - "\u0005\u0002\u000e\u000e\u0014\u0014\u0109\u010a\u0004\u0002\u0108\u0108", - "\u010a\u010a\u0004\u0002oo\u010d\u010d\u0003\u0002\u0116\u0117\u0004", - "\u0002\u0113\u0113\u0118\u0118\u0003\u0002\u011d\u011f\u0004\u0002\u00b6", - "\u00b6\u0126\u0128\u0004\u0002RR\u012b\u012c\u0004\u0002OO\u0130\u0130", - "\u0004\u0002\u00ba\u00ba\u0129\u0129\u0004\u0002CC\u0137\u0138\u0003", - "\u0002\u013e\u0143\u0003\u0002\u0144\u0145\u0004\u000299\u0147\u0148", - "\u0003\u0002\u000b\f\u0003\u0002\u0170\u0171\u0018\u0002\r\u000e\u0011", - "\u0011\u0014\u0014\u0016\u0016\u001cIK\u008e\u0090\u00a0\u00a2\u00a6", - "\u00a8\u00ac\u00ae\u00b0\u00b3\u00cd\u00d1\u010b\u010d\u010d\u0111\u0111", - "\u0113\u0119\u011b\u0120\u0122\u0131\u0137\u0138\u013d\u0143\u0145\u015f", - "\u0166\u016c\u0170\u0178\u0002\u0ebc\u0002\u01c6\u0003\u0002\u0002\u0002", - "\u0004\u01d0\u0003\u0002\u0002\u0002\u0006\u01d5\u0003\u0002\u0002\u0002", - "\b\u01e9\u0003\u0002\u0002\u0002\n\u01eb\u0003\u0002\u0002\u0002\f\u01f7", + "\u0003\u00da\u0005\u00da\u0cd7\n\u00da\u0003\u00da\u0003\u00da\u0003", + "\u00da\u0007\u00da\u0cdc\n\u00da\f\u00da\u000e\u00da\u0cdf\u000b\u00da", + "\u0005\u00da\u0ce1\n\u00da\u0003\u00db\u0003\u00db\u0003\u00db\u0003", + "\u00dc\u0003\u00dc\u0003\u00dc\u0003\u00dd\u0003\u00dd\u0005\u00dd\u0ceb", + "\n\u00dd\u0003\u00dd\u0003\u00dd\u0003\u00dd\u0005\u00dd\u0cf0\n\u00dd", + "\u0007\u00dd\u0cf2\n\u00dd\f\u00dd\u000e\u00dd\u0cf5\u000b\u00dd\u0003", + "\u00de\u0003\u00de\u0005\u00de\u0cf9\n\u00de\u0003\u00df\u0005\u00df", + "\u0cfc\n\u00df\u0003\u00df\u0003\u00df\u0003\u00e0\u0005\u00e0\u0d01", + "\n\u00e0\u0003\u00e0\u0003\u00e0\u0003\u00e1\u0003\u00e1\u0003\u00e2", + "\u0003\u00e2\u0003\u00e3\u0003\u00e3\u0003\u00e3\u0003\u0ccc\u0004\u0170", + "\u0180\u00e4\u0002\u0004\u0006\b\n\f\u000e\u0010\u0012\u0014\u0016\u0018", + "\u001a\u001c\u001e \"$&(*,.02468:<>@BDFHJLNPRTVXZ\\^`bdfhjlnprtvxz|", + "~\u0080\u0082\u0084\u0086\u0088\u008a\u008c\u008e\u0090\u0092\u0094", + "\u0096\u0098\u009a\u009c\u009e\u00a0\u00a2\u00a4\u00a6\u00a8\u00aa\u00ac", + "\u00ae\u00b0\u00b2\u00b4\u00b6\u00b8\u00ba\u00bc\u00be\u00c0\u00c2\u00c4", + "\u00c6\u00c8\u00ca\u00cc\u00ce\u00d0\u00d2\u00d4\u00d6\u00d8\u00da\u00dc", + "\u00de\u00e0\u00e2\u00e4\u00e6\u00e8\u00ea\u00ec\u00ee\u00f0\u00f2\u00f4", + "\u00f6\u00f8\u00fa\u00fc\u00fe\u0100\u0102\u0104\u0106\u0108\u010a\u010c", + "\u010e\u0110\u0112\u0114\u0116\u0118\u011a\u011c\u011e\u0120\u0122\u0124", + "\u0126\u0128\u012a\u012c\u012e\u0130\u0132\u0134\u0136\u0138\u013a\u013c", + "\u013e\u0140\u0142\u0144\u0146\u0148\u014a\u014c\u014e\u0150\u0152\u0154", + "\u0156\u0158\u015a\u015c\u015e\u0160\u0162\u0164\u0166\u0168\u016a\u016c", + "\u016e\u0170\u0172\u0174\u0176\u0178\u017a\u017c\u017e\u0180\u0182\u0184", + "\u0186\u0188\u018a\u018c\u018e\u0190\u0192\u0194\u0196\u0198\u019a\u019c", + "\u019e\u01a0\u01a2\u01a4\u01a6\u01a8\u01aa\u01ac\u01ae\u01b0\u01b2\u01b4", + "\u01b6\u01b8\u01ba\u01bc\u01be\u01c0\u01c2\u01c4\u00023\u0006\u0002", + "\u0159\u0159\u015e\u015e\u0168\u0168\u016f\u016f\u0004\u0002__\u0134", + "\u0134\u0003\u0002\u00a5\u00a6\u0005\u0002\u000b\u000bpp\u0096\u0096", + "\u0004\u0002\u001e\u001e&&\u0004\u000244hh\u0004\u0002\u00b5\u00b5\u00fd", + "\u00fd\u0004\u0002\f\fPP\u0004\u0002MM\u0129\u0129\u0004\u0002ii\u00a8", + "\u00a8\u0004\u0002MM\u00d5\u00d5\u0004\u0002II\u0085\u0085\u0005\u0002", + "\u0089\u0089\u00af\u00af\u00d1\u00d2\u0004\u0002\u00aa\u00aa\u00bc\u00bc", + "\u0004\u0002\u00b9\u00b9\u013c\u013c\u0004\u0002\u00f0\u00f0\u0126\u0126", + "\u0004\u0002\u00ae\u00ae\u0174\u0174\u0004\u0002\u001c\u001c##\u0004", + "\u0002!!;;\u0004\u0002??\u00f6\u00f6\u0004\u0002\u000b\u000b\u0096\u0096", + "\u0003\u0002\u00e7\u00e8\u0003\u0002\u00d8\u00d9\u0006\u0002::KK\u0095", + "\u0095\u00ce\u00ce\u0003\u0002cd\u0003\u0002\\]\u0003\u0002\u010d\u010e", + "\u0004\u0002\u00f1\u00f1\u0115\u0115\u0005\u0002MM\u0084\u0084\u00cd", + "\u00cd\u0006\u0002\t\n\u00ba\u00ba\u00dd\u00dd\u013a\u013a\u0003\u0002", + "\u00c4\u00c5\u0004\u0002\u00fe\u00fe\u0123\u0123\u0006\u0002\u0012\u0012", + "WW\u00ab\u00ab\u011d\u011d\u0004\u0002\u00ab\u00ab\u0136\u0136\u0004", + "\u0002\u001b\u001b\u010f\u010f\u0003\u0002\u00fb\u00fc\u0004\u0002\u0005", + "\u0005UU\u0005\u0002uu\u009f\u009f\u00ea\u00ea\u0005\u0002;;\u00f2\u00f3", + "\u012a\u012a\u0005\u0002ff\u0101\u0101\u0129\u0129\u0003\u0002PQ\u0004", + "\u0002\b\b\u00c8\u00c8\u0005\u0002\u00a0\u00a0\u00e1\u00e1\u00eb\u00eb", + "\u0005\u0002CD\u00b2\u00b3\u00f7\u00f8\u0004\u000211\u0158\u0158\u0005", + "\u0002ss\u0097\u0097\u00bf\u00bf\u0004\u0002\u0155\u0155\u0170\u0170", + "\u0004\u0002jj\u0124\u0124\u000e\u0002\u0003\u0016\u0018Z^^`\u00bf\u00c1", + "\u00d2\u00d4\u00ef\u00f1\u0104\u0106\u011e\u0120\u0125\u0128\u0133\u0136", + "\u0146\u014d\u0154\u0002\u0eb3\u0002\u01c6\u0003\u0002\u0002\u0002\u0004", + "\u01d0\u0003\u0002\u0002\u0002\u0006\u01d5\u0003\u0002\u0002\u0002\b", + "\u01e9\u0003\u0002\u0002\u0002\n\u01eb\u0003\u0002\u0002\u0002\f\u01f7", "\u0003\u0002\u0002\u0002\u000e\u0236\u0003\u0002\u0002\u0002\u0010\u0238", "\u0003\u0002\u0002\u0002\u0012\u023a\u0003\u0002\u0002\u0002\u0014\u0240", "\u0003\u0002\u0002\u0002\u0016\u0246\u0003\u0002\u0002\u0002\u0018\u0248", @@ -535,129 +536,129 @@ var serializedATN = ["\u0003\u608b\ua72a\u8133\ub9ed\u417c\u3be7\u7786\u5964", "\u0002\u0002\u0002<\u032b\u0003\u0002\u0002\u0002>\u0334\u0003\u0002", "\u0002\u0002@\u0337\u0003\u0002\u0002\u0002B\u0344\u0003\u0002\u0002", "\u0002D\u034e\u0003\u0002\u0002\u0002F\u035b\u0003\u0002\u0002\u0002", - "H\u037c\u0003\u0002\u0002\u0002J\u0381\u0003\u0002\u0002\u0002L\u039f", - "\u0003\u0002\u0002\u0002N\u03a1\u0003\u0002\u0002\u0002P\u03c3\u0003", - "\u0002\u0002\u0002R\u03fe\u0003\u0002\u0002\u0002T\u0400\u0003\u0002", - "\u0002\u0002V\u040d\u0003\u0002\u0002\u0002X\u0414\u0003\u0002\u0002", - "\u0002Z\u0417\u0003\u0002\u0002\u0002\\\u041c\u0003\u0002\u0002\u0002", - "^\u042a\u0003\u0002\u0002\u0002`\u043e\u0003\u0002\u0002\u0002b\u0461", - "\u0003\u0002\u0002\u0002d\u0475\u0003\u0002\u0002\u0002f\u047b\u0003", - "\u0002\u0002\u0002h\u047d\u0003\u0002\u0002\u0002j\u04a1\u0003\u0002", - "\u0002\u0002l\u04a7\u0003\u0002\u0002\u0002n\u04c4\u0003\u0002\u0002", - "\u0002p\u04c6\u0003\u0002\u0002\u0002r\u04cb\u0003\u0002\u0002\u0002", - "t\u04cd\u0003\u0002\u0002\u0002v\u0512\u0003\u0002\u0002\u0002x\u0542", - "\u0003\u0002\u0002\u0002z\u0544\u0003\u0002\u0002\u0002|\u055a\u0003", - "\u0002\u0002\u0002~\u0568\u0003\u0002\u0002\u0002\u0080\u056a\u0003", - "\u0002\u0002\u0002\u0082\u057c\u0003\u0002\u0002\u0002\u0084\u0585\u0003", - "\u0002\u0002\u0002\u0086\u0595\u0003\u0002\u0002\u0002\u0088\u05a1\u0003", - "\u0002\u0002\u0002\u008a\u05ad\u0003\u0002\u0002\u0002\u008c\u05c4\u0003", - "\u0002\u0002\u0002\u008e\u05cd\u0003\u0002\u0002\u0002\u0090\u05da\u0003", - "\u0002\u0002\u0002\u0092\u05e7\u0003\u0002\u0002\u0002\u0094\u05f0\u0003", - "\u0002\u0002\u0002\u0096\u061f\u0003\u0002\u0002\u0002\u0098\u064b\u0003", - "\u0002\u0002\u0002\u009a\u064e\u0003\u0002\u0002\u0002\u009c\u065d\u0003", - "\u0002\u0002\u0002\u009e\u066d\u0003\u0002\u0002\u0002\u00a0\u066f\u0003", - "\u0002\u0002\u0002\u00a2\u0672\u0003\u0002\u0002\u0002\u00a4\u068f\u0003", - "\u0002\u0002\u0002\u00a6\u0691\u0003\u0002\u0002\u0002\u00a8\u06a1\u0003", - "\u0002\u0002\u0002\u00aa\u06a8\u0003\u0002\u0002\u0002\u00ac\u06ae\u0003", - "\u0002\u0002\u0002\u00ae\u06b3\u0003\u0002\u0002\u0002\u00b0\u06b6\u0003", - "\u0002\u0002\u0002\u00b2\u06bb\u0003\u0002\u0002\u0002\u00b4\u06cc\u0003", - "\u0002\u0002\u0002\u00b6\u06d7\u0003\u0002\u0002\u0002\u00b8\u06e0\u0003", - "\u0002\u0002\u0002\u00ba\u06eb\u0003\u0002\u0002\u0002\u00bc\u06f4\u0003", - "\u0002\u0002\u0002\u00be\u06fc\u0003\u0002\u0002\u0002\u00c0\u0702\u0003", - "\u0002\u0002\u0002\u00c2\u0704\u0003\u0002\u0002\u0002\u00c4\u070a\u0003", - "\u0002\u0002\u0002\u00c6\u070e\u0003\u0002\u0002\u0002\u00c8\u071b\u0003", - "\u0002\u0002\u0002\u00ca\u0720\u0003\u0002\u0002\u0002\u00cc\u0724\u0003", - "\u0002\u0002\u0002\u00ce\u072f\u0003\u0002\u0002\u0002\u00d0\u0738\u0003", - "\u0002\u0002\u0002\u00d2\u0746\u0003\u0002\u0002\u0002\u00d4\u074d\u0003", - "\u0002\u0002\u0002\u00d6\u0759\u0003\u0002\u0002\u0002\u00d8\u075c\u0003", - "\u0002\u0002\u0002\u00da\u076a\u0003\u0002\u0002\u0002\u00dc\u0770\u0003", - "\u0002\u0002\u0002\u00de\u0783\u0003\u0002\u0002\u0002\u00e0\u0798\u0003", - "\u0002\u0002\u0002\u00e2\u079c\u0003\u0002\u0002\u0002\u00e4\u07a6\u0003", - "\u0002\u0002\u0002\u00e6\u07a8\u0003\u0002\u0002\u0002\u00e8\u07aa\u0003", - "\u0002\u0002\u0002\u00ea\u07ae\u0003\u0002\u0002\u0002\u00ec\u07c1\u0003", - "\u0002\u0002\u0002\u00ee\u07c5\u0003\u0002\u0002\u0002\u00f0\u07c7\u0003", - "\u0002\u0002\u0002\u00f2\u07e4\u0003\u0002\u0002\u0002\u00f4\u07e7\u0003", - "\u0002\u0002\u0002\u00f6\u07ed\u0003\u0002\u0002\u0002\u00f8\u07ef\u0003", - "\u0002\u0002\u0002\u00fa\u07fd\u0003\u0002\u0002\u0002\u00fc\u0801\u0003", - "\u0002\u0002\u0002\u00fe\u0808\u0003\u0002\u0002\u0002\u0100\u080f\u0003", - "\u0002\u0002\u0002\u0102\u0816\u0003\u0002\u0002\u0002\u0104\u0819\u0003", - "\u0002\u0002\u0002\u0106\u0825\u0003\u0002\u0002\u0002\u0108\u0828\u0003", - "\u0002\u0002\u0002\u010a\u0839\u0003\u0002\u0002\u0002\u010c\u083f\u0003", - "\u0002\u0002\u0002\u010e\u0842\u0003\u0002\u0002\u0002\u0110\u0860\u0003", - "\u0002\u0002\u0002\u0112\u0868\u0003\u0002\u0002\u0002\u0114\u0877\u0003", - "\u0002\u0002\u0002\u0116\u088f\u0003\u0002\u0002\u0002\u0118\u0891\u0003", - "\u0002\u0002\u0002\u011a\u089b\u0003\u0002\u0002\u0002\u011c\u089f\u0003", - "\u0002\u0002\u0002\u011e\u08a8\u0003\u0002\u0002\u0002\u0120\u08b1\u0003", - "\u0002\u0002\u0002\u0122\u08bc\u0003\u0002\u0002\u0002\u0124\u08ca\u0003", - "\u0002\u0002\u0002\u0126\u08d8\u0003\u0002\u0002\u0002\u0128\u08da\u0003", - "\u0002\u0002\u0002\u012a\u08f3\u0003\u0002\u0002\u0002\u012c\u0900\u0003", - "\u0002\u0002\u0002\u012e\u0902\u0003\u0002\u0002\u0002\u0130\u090f\u0003", - "\u0002\u0002\u0002\u0132\u091a\u0003\u0002\u0002\u0002\u0134\u091e\u0003", - "\u0002\u0002\u0002\u0136\u0922\u0003\u0002\u0002\u0002\u0138\u092b\u0003", - "\u0002\u0002\u0002\u013a\u0936\u0003\u0002\u0002\u0002\u013c\u0938\u0003", - "\u0002\u0002\u0002\u013e\u093c\u0003\u0002\u0002\u0002\u0140\u0949\u0003", - "\u0002\u0002\u0002\u0142\u0954\u0003\u0002\u0002\u0002\u0144\u0956\u0003", - "\u0002\u0002\u0002\u0146\u0971\u0003\u0002\u0002\u0002\u0148\u0973\u0003", - "\u0002\u0002\u0002\u014a\u0984\u0003\u0002\u0002\u0002\u014c\u0986\u0003", - "\u0002\u0002\u0002\u014e\u0989\u0003\u0002\u0002\u0002\u0150\u0993\u0003", - "\u0002\u0002\u0002\u0152\u0996\u0003\u0002\u0002\u0002\u0154\u0999\u0003", - "\u0002\u0002\u0002\u0156\u09aa\u0003\u0002\u0002\u0002\u0158\u09b9\u0003", - "\u0002\u0002\u0002\u015a\u09bb\u0003\u0002\u0002\u0002\u015c\u09c5\u0003", - "\u0002\u0002\u0002\u015e\u09d5\u0003\u0002\u0002\u0002\u0160\u09dd\u0003", - "\u0002\u0002\u0002\u0162\u09e0\u0003\u0002\u0002\u0002\u0164\u09f1\u0003", - "\u0002\u0002\u0002\u0166\u0a06\u0003\u0002\u0002\u0002\u0168\u0a1c\u0003", - "\u0002\u0002\u0002\u016a\u0a1e\u0003\u0002\u0002\u0002\u016c\u0a2a\u0003", - "\u0002\u0002\u0002\u016e\u0a30\u0003\u0002\u0002\u0002\u0170\u0a3f\u0003", - "\u0002\u0002\u0002\u0172\u0a4d\u0003\u0002\u0002\u0002\u0174\u0a66\u0003", - "\u0002\u0002\u0002\u0176\u0a68\u0003\u0002\u0002\u0002\u0178\u0a7b\u0003", - "\u0002\u0002\u0002\u017a\u0a8d\u0003\u0002\u0002\u0002\u017c\u0a91\u0003", - "\u0002\u0002\u0002\u017e\u0a9f\u0003\u0002\u0002\u0002\u0180\u0ab2\u0003", - "\u0002\u0002\u0002\u0182\u0acf\u0003\u0002\u0002\u0002\u0184\u0ad1\u0003", - "\u0002\u0002\u0002\u0186\u0ad5\u0003\u0002\u0002\u0002\u0188\u0ad7\u0003", - "\u0002\u0002\u0002\u018a\u0aea\u0003\u0002\u0002\u0002\u018c\u0aee\u0003", - "\u0002\u0002\u0002\u018e\u0af0\u0003\u0002\u0002\u0002\u0190\u0b01\u0003", - "\u0002\u0002\u0002\u0192\u0b11\u0003\u0002\u0002\u0002\u0194\u0bad\u0003", - "\u0002\u0002\u0002\u0196\u0baf\u0003\u0002\u0002\u0002\u0198\u0bb1\u0003", - "\u0002\u0002\u0002\u019a\u0bbb\u0003\u0002\u0002\u0002\u019c\u0c8d\u0003", - "\u0002\u0002\u0002\u019e\u0c8f\u0003\u0002\u0002\u0002\u01a0\u0c96\u0003", - "\u0002\u0002\u0002\u01a2\u0c9e\u0003\u0002\u0002\u0002\u01a4\u0caa\u0003", - "\u0002\u0002\u0002\u01a6\u0cae\u0003\u0002\u0002\u0002\u01a8\u0cb0\u0003", - "\u0002\u0002\u0002\u01aa\u0cc3\u0003\u0002\u0002\u0002\u01ac\u0cca\u0003", - "\u0002\u0002\u0002\u01ae\u0ccf\u0003\u0002\u0002\u0002\u01b0\u0cd2\u0003", - "\u0002\u0002\u0002\u01b2\u0ce3\u0003\u0002\u0002\u0002\u01b4\u0ce5\u0003", - "\u0002\u0002\u0002\u01b6\u0ce8\u0003\u0002\u0002\u0002\u01b8\u0cec\u0003", - "\u0002\u0002\u0002\u01ba\u0cfe\u0003\u0002\u0002\u0002\u01bc\u0d01\u0003", - "\u0002\u0002\u0002\u01be\u0d06\u0003\u0002\u0002\u0002\u01c0\u0d0a\u0003", - "\u0002\u0002\u0002\u01c2\u0d0c\u0003\u0002\u0002\u0002\u01c4\u0d0e\u0003", + "H\u037a\u0003\u0002\u0002\u0002J\u037f\u0003\u0002\u0002\u0002L\u039d", + "\u0003\u0002\u0002\u0002N\u039f\u0003\u0002\u0002\u0002P\u03c1\u0003", + "\u0002\u0002\u0002R\u03fc\u0003\u0002\u0002\u0002T\u03fe\u0003\u0002", + "\u0002\u0002V\u040b\u0003\u0002\u0002\u0002X\u0412\u0003\u0002\u0002", + "\u0002Z\u0415\u0003\u0002\u0002\u0002\\\u041a\u0003\u0002\u0002\u0002", + "^\u0428\u0003\u0002\u0002\u0002`\u043c\u0003\u0002\u0002\u0002b\u045f", + "\u0003\u0002\u0002\u0002d\u0473\u0003\u0002\u0002\u0002f\u0479\u0003", + "\u0002\u0002\u0002h\u047b\u0003\u0002\u0002\u0002j\u049f\u0003\u0002", + "\u0002\u0002l\u04a5\u0003\u0002\u0002\u0002n\u04c2\u0003\u0002\u0002", + "\u0002p\u04c4\u0003\u0002\u0002\u0002r\u04c9\u0003\u0002\u0002\u0002", + "t\u04cb\u0003\u0002\u0002\u0002v\u0510\u0003\u0002\u0002\u0002x\u053f", + "\u0003\u0002\u0002\u0002z\u0541\u0003\u0002\u0002\u0002|\u0557\u0003", + "\u0002\u0002\u0002~\u0565\u0003\u0002\u0002\u0002\u0080\u0567\u0003", + "\u0002\u0002\u0002\u0082\u0579\u0003\u0002\u0002\u0002\u0084\u0582\u0003", + "\u0002\u0002\u0002\u0086\u0592\u0003\u0002\u0002\u0002\u0088\u059e\u0003", + "\u0002\u0002\u0002\u008a\u05aa\u0003\u0002\u0002\u0002\u008c\u05c1\u0003", + "\u0002\u0002\u0002\u008e\u05ca\u0003\u0002\u0002\u0002\u0090\u05d7\u0003", + "\u0002\u0002\u0002\u0092\u05e4\u0003\u0002\u0002\u0002\u0094\u05ed\u0003", + "\u0002\u0002\u0002\u0096\u061c\u0003\u0002\u0002\u0002\u0098\u0648\u0003", + "\u0002\u0002\u0002\u009a\u064b\u0003\u0002\u0002\u0002\u009c\u065a\u0003", + "\u0002\u0002\u0002\u009e\u066a\u0003\u0002\u0002\u0002\u00a0\u066c\u0003", + "\u0002\u0002\u0002\u00a2\u066f\u0003\u0002\u0002\u0002\u00a4\u068c\u0003", + "\u0002\u0002\u0002\u00a6\u068e\u0003\u0002\u0002\u0002\u00a8\u069e\u0003", + "\u0002\u0002\u0002\u00aa\u06a5\u0003\u0002\u0002\u0002\u00ac\u06ab\u0003", + "\u0002\u0002\u0002\u00ae\u06b0\u0003\u0002\u0002\u0002\u00b0\u06b3\u0003", + "\u0002\u0002\u0002\u00b2\u06b8\u0003\u0002\u0002\u0002\u00b4\u06c9\u0003", + "\u0002\u0002\u0002\u00b6\u06d4\u0003\u0002\u0002\u0002\u00b8\u06dd\u0003", + "\u0002\u0002\u0002\u00ba\u06e8\u0003\u0002\u0002\u0002\u00bc\u06f1\u0003", + "\u0002\u0002\u0002\u00be\u06f9\u0003\u0002\u0002\u0002\u00c0\u06ff\u0003", + "\u0002\u0002\u0002\u00c2\u0701\u0003\u0002\u0002\u0002\u00c4\u0707\u0003", + "\u0002\u0002\u0002\u00c6\u070b\u0003\u0002\u0002\u0002\u00c8\u0718\u0003", + "\u0002\u0002\u0002\u00ca\u071d\u0003\u0002\u0002\u0002\u00cc\u0721\u0003", + "\u0002\u0002\u0002\u00ce\u072c\u0003\u0002\u0002\u0002\u00d0\u0735\u0003", + "\u0002\u0002\u0002\u00d2\u0743\u0003\u0002\u0002\u0002\u00d4\u074a\u0003", + "\u0002\u0002\u0002\u00d6\u0756\u0003\u0002\u0002\u0002\u00d8\u0759\u0003", + "\u0002\u0002\u0002\u00da\u0767\u0003\u0002\u0002\u0002\u00dc\u076d\u0003", + "\u0002\u0002\u0002\u00de\u0780\u0003\u0002\u0002\u0002\u00e0\u0795\u0003", + "\u0002\u0002\u0002\u00e2\u0799\u0003\u0002\u0002\u0002\u00e4\u07a3\u0003", + "\u0002\u0002\u0002\u00e6\u07a5\u0003\u0002\u0002\u0002\u00e8\u07a7\u0003", + "\u0002\u0002\u0002\u00ea\u07ab\u0003\u0002\u0002\u0002\u00ec\u07be\u0003", + "\u0002\u0002\u0002\u00ee\u07c2\u0003\u0002\u0002\u0002\u00f0\u07c4\u0003", + "\u0002\u0002\u0002\u00f2\u07e1\u0003\u0002\u0002\u0002\u00f4\u07e4\u0003", + "\u0002\u0002\u0002\u00f6\u07ea\u0003\u0002\u0002\u0002\u00f8\u07ec\u0003", + "\u0002\u0002\u0002\u00fa\u07fa\u0003\u0002\u0002\u0002\u00fc\u07fe\u0003", + "\u0002\u0002\u0002\u00fe\u0805\u0003\u0002\u0002\u0002\u0100\u080c\u0003", + "\u0002\u0002\u0002\u0102\u0813\u0003\u0002\u0002\u0002\u0104\u0816\u0003", + "\u0002\u0002\u0002\u0106\u0822\u0003\u0002\u0002\u0002\u0108\u0825\u0003", + "\u0002\u0002\u0002\u010a\u0836\u0003\u0002\u0002\u0002\u010c\u083c\u0003", + "\u0002\u0002\u0002\u010e\u083f\u0003\u0002\u0002\u0002\u0110\u085d\u0003", + "\u0002\u0002\u0002\u0112\u0865\u0003\u0002\u0002\u0002\u0114\u0874\u0003", + "\u0002\u0002\u0002\u0116\u088c\u0003\u0002\u0002\u0002\u0118\u088e\u0003", + "\u0002\u0002\u0002\u011a\u0898\u0003\u0002\u0002\u0002\u011c\u089c\u0003", + "\u0002\u0002\u0002\u011e\u08a5\u0003\u0002\u0002\u0002\u0120\u08ae\u0003", + "\u0002\u0002\u0002\u0122\u08b9\u0003\u0002\u0002\u0002\u0124\u08c7\u0003", + "\u0002\u0002\u0002\u0126\u08d5\u0003\u0002\u0002\u0002\u0128\u08d7\u0003", + "\u0002\u0002\u0002\u012a\u08f0\u0003\u0002\u0002\u0002\u012c\u08fd\u0003", + "\u0002\u0002\u0002\u012e\u08ff\u0003\u0002\u0002\u0002\u0130\u090c\u0003", + "\u0002\u0002\u0002\u0132\u0917\u0003\u0002\u0002\u0002\u0134\u091b\u0003", + "\u0002\u0002\u0002\u0136\u091f\u0003\u0002\u0002\u0002\u0138\u0928\u0003", + "\u0002\u0002\u0002\u013a\u0933\u0003\u0002\u0002\u0002\u013c\u0935\u0003", + "\u0002\u0002\u0002\u013e\u0939\u0003\u0002\u0002\u0002\u0140\u0946\u0003", + "\u0002\u0002\u0002\u0142\u0951\u0003\u0002\u0002\u0002\u0144\u0953\u0003", + "\u0002\u0002\u0002\u0146\u096e\u0003\u0002\u0002\u0002\u0148\u0970\u0003", + "\u0002\u0002\u0002\u014a\u0981\u0003\u0002\u0002\u0002\u014c\u0983\u0003", + "\u0002\u0002\u0002\u014e\u0986\u0003\u0002\u0002\u0002\u0150\u0990\u0003", + "\u0002\u0002\u0002\u0152\u0993\u0003\u0002\u0002\u0002\u0154\u0996\u0003", + "\u0002\u0002\u0002\u0156\u09a7\u0003\u0002\u0002\u0002\u0158\u09b6\u0003", + "\u0002\u0002\u0002\u015a\u09b8\u0003\u0002\u0002\u0002\u015c\u09c2\u0003", + "\u0002\u0002\u0002\u015e\u09d2\u0003\u0002\u0002\u0002\u0160\u09da\u0003", + "\u0002\u0002\u0002\u0162\u09dd\u0003\u0002\u0002\u0002\u0164\u09ee\u0003", + "\u0002\u0002\u0002\u0166\u0a03\u0003\u0002\u0002\u0002\u0168\u0a19\u0003", + "\u0002\u0002\u0002\u016a\u0a1b\u0003\u0002\u0002\u0002\u016c\u0a27\u0003", + "\u0002\u0002\u0002\u016e\u0a2d\u0003\u0002\u0002\u0002\u0170\u0a3c\u0003", + "\u0002\u0002\u0002\u0172\u0a4a\u0003\u0002\u0002\u0002\u0174\u0a63\u0003", + "\u0002\u0002\u0002\u0176\u0a65\u0003\u0002\u0002\u0002\u0178\u0a78\u0003", + "\u0002\u0002\u0002\u017a\u0a8a\u0003\u0002\u0002\u0002\u017c\u0a8e\u0003", + "\u0002\u0002\u0002\u017e\u0a9c\u0003\u0002\u0002\u0002\u0180\u0aaf\u0003", + "\u0002\u0002\u0002\u0182\u0acc\u0003\u0002\u0002\u0002\u0184\u0ace\u0003", + "\u0002\u0002\u0002\u0186\u0ad2\u0003\u0002\u0002\u0002\u0188\u0ad4\u0003", + "\u0002\u0002\u0002\u018a\u0ae7\u0003\u0002\u0002\u0002\u018c\u0aeb\u0003", + "\u0002\u0002\u0002\u018e\u0aed\u0003\u0002\u0002\u0002\u0190\u0afe\u0003", + "\u0002\u0002\u0002\u0192\u0b0e\u0003\u0002\u0002\u0002\u0194\u0baa\u0003", + "\u0002\u0002\u0002\u0196\u0bac\u0003\u0002\u0002\u0002\u0198\u0bae\u0003", + "\u0002\u0002\u0002\u019a\u0bb8\u0003\u0002\u0002\u0002\u019c\u0c8a\u0003", + "\u0002\u0002\u0002\u019e\u0c8c\u0003\u0002\u0002\u0002\u01a0\u0c93\u0003", + "\u0002\u0002\u0002\u01a2\u0c9b\u0003\u0002\u0002\u0002\u01a4\u0ca7\u0003", + "\u0002\u0002\u0002\u01a6\u0cab\u0003\u0002\u0002\u0002\u01a8\u0cad\u0003", + "\u0002\u0002\u0002\u01aa\u0cc0\u0003\u0002\u0002\u0002\u01ac\u0cc7\u0003", + "\u0002\u0002\u0002\u01ae\u0ccc\u0003\u0002\u0002\u0002\u01b0\u0ccf\u0003", + "\u0002\u0002\u0002\u01b2\u0ce0\u0003\u0002\u0002\u0002\u01b4\u0ce2\u0003", + "\u0002\u0002\u0002\u01b6\u0ce5\u0003\u0002\u0002\u0002\u01b8\u0cea\u0003", + "\u0002\u0002\u0002\u01ba\u0cf8\u0003\u0002\u0002\u0002\u01bc\u0cfb\u0003", + "\u0002\u0002\u0002\u01be\u0d00\u0003\u0002\u0002\u0002\u01c0\u0d04\u0003", + "\u0002\u0002\u0002\u01c2\u0d06\u0003\u0002\u0002\u0002\u01c4\u0d08\u0003", "\u0002\u0002\u0002\u01c6\u01c7\u0005\u0004\u0003\u0002\u01c7\u01c8\u0007", "\u0002\u0002\u0003\u01c8\u0003\u0003\u0002\u0002\u0002\u01c9\u01cc\u0005", "\u0006\u0004\u0002\u01ca\u01cc\u0005\u000e\b\u0002\u01cb\u01c9\u0003", "\u0002\u0002\u0002\u01cb\u01ca\u0003\u0002\u0002\u0002\u01cc\u01ce\u0003", - "\u0002\u0002\u0002\u01cd\u01cf\u0007\r\u0002\u0002\u01ce\u01cd\u0003", + "\u0002\u0002\u0002\u01cd\u01cf\u0007y\u0002\u0002\u01ce\u01cd\u0003", "\u0002\u0002\u0002\u01ce\u01cf\u0003\u0002\u0002\u0002\u01cf\u01d1\u0003", "\u0002\u0002\u0002\u01d0\u01cb\u0003\u0002\u0002\u0002\u01d1\u01d2\u0003", "\u0002\u0002\u0002\u01d2\u01d0\u0003\u0002\u0002\u0002\u01d2\u01d3\u0003", "\u0002\u0002\u0002\u01d3\u0005\u0003\u0002\u0002\u0002\u01d4\u01d6\u0005", "0\u0019\u0002\u01d5\u01d4\u0003\u0002\u0002\u0002\u01d5\u01d6\u0003", "\u0002\u0002\u0002\u01d6\u01d7\u0003\u0002\u0002\u0002\u01d7\u01d8\u0007", - "\u000e\u0002\u0002\u01d8\u01da\u0005\u0004\u0003\u0002\u01d9\u01db\u0005", + "\u0012\u0002\u0002\u01d8\u01da\u0005\u0004\u0003\u0002\u01d9\u01db\u0005", "\u0012\n\u0002\u01da\u01d9\u0003\u0002\u0002\u0002\u01da\u01db\u0003", "\u0002\u0002\u0002\u01db\u01dc\u0003\u0002\u0002\u0002\u01dc\u01dd\u0005", "\n\u0006\u0002\u01dd\u0007\u0003\u0002\u0002\u0002\u01de\u01df\u0007", - "\u000e\u0002\u0002\u01df\u01e1\u0005\u0004\u0003\u0002\u01e0\u01e2\u0005", + "\u0012\u0002\u0002\u01df\u01e1\u0005\u0004\u0003\u0002\u01e0\u01e2\u0005", "\u0012\n\u0002\u01e1\u01e0\u0003\u0002\u0002\u0002\u01e1\u01e2\u0003", "\u0002\u0002\u0002\u01e2\u01e3\u0003\u0002\u0002\u0002\u01e3\u01e4\u0005", "\n\u0006\u0002\u01e4\u01ea\u0003\u0002\u0002\u0002\u01e5\u01e7\u0005", - "\u000e\b\u0002\u01e6\u01e8\u0007\u000f\u0002\u0002\u01e7\u01e6\u0003", + "\u000e\b\u0002\u01e6\u01e8\u0007\u016f\u0002\u0002\u01e7\u01e6\u0003", "\u0002\u0002\u0002\u01e7\u01e8\u0003\u0002\u0002\u0002\u01e8\u01ea\u0003", "\u0002\u0002\u0002\u01e9\u01de\u0003\u0002\u0002\u0002\u01e9\u01e5\u0003", "\u0002\u0002\u0002\u01ea\t\u0003\u0002\u0002\u0002\u01eb\u01ec\u0006", - "\u0006\u0002\u0002\u01ec\u01ed\u0007\u0010\u0002\u0002\u01ed\u000b\u0003", + "\u0006\u0002\u0002\u01ec\u01ed\u0007_\u0002\u0002\u01ed\u000b\u0003", "\u0002\u0002\u0002\u01ee\u01f8\u0005\u0006\u0004\u0002\u01ef\u01f1\u0005", "\u000e\b\u0002\u01f0\u01ef\u0003\u0002\u0002\u0002\u01f1\u01f2\u0003", "\u0002\u0002\u0002\u01f2\u01f0\u0003\u0002\u0002\u0002\u01f2\u01f3\u0003", "\u0002\u0002\u0002\u01f3\u01f5\u0003\u0002\u0002\u0002\u01f4\u01f6\u0007", - "\r\u0002\u0002\u01f5\u01f4\u0003\u0002\u0002\u0002\u01f5\u01f6\u0003", + "y\u0002\u0002\u01f5\u01f4\u0003\u0002\u0002\u0002\u01f5\u01f6\u0003", "\u0002\u0002\u0002\u01f6\u01f8\u0003\u0002\u0002\u0002\u01f7\u01ee\u0003", "\u0002\u0002\u0002\u01f7\u01f0\u0003\u0002\u0002\u0002\u01f8\r\u0003", "\u0002\u0002\u0002\u01f9\u0237\u0005\u001a\u000e\u0002\u01fa\u0237\u0005", @@ -721,19 +722,19 @@ var serializedATN = ["\u0003\u608b\ua72a\u8133\ub9ed\u417c\u3be7\u7786\u5964", "\u0002\u0002\u0002\u0236\u0234\u0003\u0002\u0002\u0002\u0236\u0235\u0003", "\u0002\u0002\u0002\u0237\u000f\u0003\u0002\u0002\u0002\u0238\u0239\t", "\u0002\u0002\u0002\u0239\u0011\u0003\u0002\u0002\u0002\u023a\u023c\u0007", - "\u0011\u0002\u0002\u023b\u023d\u0005\u0014\u000b\u0002\u023c\u023b\u0003", + "e\u0002\u0002\u023b\u023d\u0005\u0014\u000b\u0002\u023c\u023b\u0003", "\u0002\u0002\u0002\u023d\u023e\u0003\u0002\u0002\u0002\u023e\u023c\u0003", "\u0002\u0002\u0002\u023e\u023f\u0003\u0002\u0002\u0002\u023f\u0013\u0003", - "\u0002\u0002\u0002\u0240\u0241\u0007\u0012\u0002\u0002\u0241\u0242\u0007", - "\u0013\u0002\u0002\u0242\u0243\u0007\u0014\u0002\u0002\u0243\u0244\u0005", + "\u0002\u0002\u0002\u0240\u0241\u0007\u0134\u0002\u0002\u0241\u0242\u0007", + "\u0171\u0002\u0002\u0242\u0243\u0007\u011d\u0002\u0002\u0243\u0244\u0005", "\u0004\u0003\u0002\u0244\u0245\n\u0003\u0002\u0002\u0245\u0015\u0003", - "\u0002\u0002\u0002\u0246\u0247\u0007\u0015\u0002\u0002\u0247\u0017\u0003", + "\u0002\u0002\u0002\u0246\u0247\u0007\u00c0\u0002\u0002\u0247\u0017\u0003", "\u0002\u0002\u0002\u0248\u0249\u0006\r\u0003\u0002\u0249\u024a\u0005", "\u0180\u00c1\u0002\u024a\u0019\u0003\u0002\u0002\u0002\u024b\u024c\u0007", - "\u0016\u0002\u0002\u024c\u0259\u0005\u00fe\u0080\u0002\u024d\u024f\u0007", - "\u0016\u0002\u0002\u024e\u024d\u0003\u0002\u0002\u0002\u024e\u024f\u0003", + "\u00fd\u0002\u0002\u024c\u0259\u0005\u00fe\u0080\u0002\u024d\u024f\u0007", + "\u00fd\u0002\u0002\u024e\u024d\u0003\u0002\u0002\u0002\u024e\u024f\u0003", "\u0002\u0002\u0002\u024f\u0250\u0003\u0002\u0002\u0002\u0250\u0255\u0005", - "\u001c\u000f\u0002\u0251\u0252\u0007\u0017\u0002\u0002\u0252\u0254\u0005", + "\u001c\u000f\u0002\u0251\u0252\u0007\u0157\u0002\u0002\u0252\u0254\u0005", "\u001c\u000f\u0002\u0253\u0251\u0003\u0002\u0002\u0002\u0254\u0257\u0003", "\u0002\u0002\u0002\u0255\u0253\u0003\u0002\u0002\u0002\u0255\u0256\u0003", "\u0002\u0002\u0002\u0256\u0259\u0003\u0002\u0002\u0002\u0257\u0255\u0003", @@ -743,1683 +744,1682 @@ var serializedATN = ["\u0003\u608b\ua72a\u8133\ub9ed\u417c\u3be7\u7786\u5964", "\"\u0012\u0002\u025d\u025a\u0003\u0002\u0002\u0002\u025d\u025b\u0003", "\u0002\u0002\u0002\u025d\u025c\u0003\u0002\u0002\u0002\u025e\u001d\u0003", "\u0002\u0002\u0002\u025f\u0261\u0005\u01b8\u00dd\u0002\u0260\u0262\u0007", - "\u0018\u0002\u0002\u0261\u0260\u0003\u0002\u0002\u0002\u0261\u0262\u0003", + "\u0156\u0002\u0002\u0261\u0260\u0003\u0002\u0002\u0002\u0261\u0262\u0003", "\u0002\u0002\u0002\u0262\u0263\u0003\u0002\u0002\u0002\u0263\u0264\u0007", - "\u0019\u0002\u0002\u0264\u0265\u0005\u0180\u00c1\u0002\u0265\u0270\u0003", - "\u0002\u0002\u0002\u0266\u0267\u0007\u001a\u0002\u0002\u0267\u0268\u0005", - "\u01b8\u00dd\u0002\u0268\u026a\u0007\u001b\u0002\u0002\u0269\u026b\u0007", - "\u0018\u0002\u0002\u026a\u0269\u0003\u0002\u0002\u0002\u026a\u026b\u0003", + "\u015c\u0002\u0002\u0264\u0265\u0005\u0180\u00c1\u0002\u0265\u0270\u0003", + "\u0002\u0002\u0002\u0266\u0267\u0007\u016a\u0002\u0002\u0267\u0268\u0005", + "\u01b8\u00dd\u0002\u0268\u026a\u0007\u016d\u0002\u0002\u0269\u026b\u0007", + "\u0156\u0002\u0002\u026a\u0269\u0003\u0002\u0002\u0002\u026a\u026b\u0003", "\u0002\u0002\u0002\u026b\u026c\u0003\u0002\u0002\u0002\u026c\u026d\u0007", - "\u0019\u0002\u0002\u026d\u026e\u0005\u0180\u00c1\u0002\u026e\u0270\u0003", + "\u015c\u0002\u0002\u026d\u026e\u0005\u0180\u00c1\u0002\u026e\u0270\u0003", "\u0002\u0002\u0002\u026f\u025f\u0003\u0002\u0002\u0002\u026f\u0266\u0003", "\u0002\u0002\u0002\u0270\u001f\u0003\u0002\u0002\u0002\u0271\u0272\u0007", - "\u001a\u0002\u0002\u0272\u0277\u0005\u01b8\u00dd\u0002\u0273\u0274\u0007", - "\u0017\u0002\u0002\u0274\u0276\u0005\u01b8\u00dd\u0002\u0275\u0273\u0003", + "\u016a\u0002\u0002\u0272\u0277\u0005\u01b8\u00dd\u0002\u0273\u0274\u0007", + "\u0157\u0002\u0002\u0274\u0276\u0005\u01b8\u00dd\u0002\u0275\u0273\u0003", "\u0002\u0002\u0002\u0276\u0279\u0003\u0002\u0002\u0002\u0277\u0275\u0003", "\u0002\u0002\u0002\u0277\u0278\u0003\u0002\u0002\u0002\u0278\u027a\u0003", "\u0002\u0002\u0002\u0279\u0277\u0003\u0002\u0002\u0002\u027a\u027c\u0007", - "\u001b\u0002\u0002\u027b\u027d\u0007\u0018\u0002\u0002\u027c\u027b\u0003", + "\u016d\u0002\u0002\u027b\u027d\u0007\u0156\u0002\u0002\u027c\u027b\u0003", "\u0002\u0002\u0002\u027c\u027d\u0003\u0002\u0002\u0002\u027d\u027e\u0003", - "\u0002\u0002\u0002\u027e\u027f\u0007\u0019\u0002\u0002\u027f\u0280\u0007", - "\u001a\u0002\u0002\u0280\u0285\u0005\u0180\u00c1\u0002\u0281\u0282\u0007", - "\u0017\u0002\u0002\u0282\u0284\u0005\u0180\u00c1\u0002\u0283\u0281\u0003", + "\u0002\u0002\u0002\u027e\u027f\u0007\u015c\u0002\u0002\u027f\u0280\u0007", + "\u016a\u0002\u0002\u0280\u0285\u0005\u0180\u00c1\u0002\u0281\u0282\u0007", + "\u0157\u0002\u0002\u0282\u0284\u0005\u0180\u00c1\u0002\u0283\u0281\u0003", "\u0002\u0002\u0002\u0284\u0287\u0003\u0002\u0002\u0002\u0285\u0283\u0003", "\u0002\u0002\u0002\u0285\u0286\u0003\u0002\u0002\u0002\u0286\u0288\u0003", "\u0002\u0002\u0002\u0287\u0285\u0003\u0002\u0002\u0002\u0288\u0289\u0007", - "\u001b\u0002\u0002\u0289!\u0003\u0002\u0002\u0002\u028a\u0297\u0005", - "\u01b8\u00dd\u0002\u028b\u028c\u0007\u001a\u0002\u0002\u028c\u0291\u0005", - "\u01b8\u00dd\u0002\u028d\u028e\u0007\u0017\u0002\u0002\u028e\u0290\u0005", + "\u016d\u0002\u0002\u0289!\u0003\u0002\u0002\u0002\u028a\u0297\u0005", + "\u01b8\u00dd\u0002\u028b\u028c\u0007\u016a\u0002\u0002\u028c\u0291\u0005", + "\u01b8\u00dd\u0002\u028d\u028e\u0007\u0157\u0002\u0002\u028e\u0290\u0005", "\u01b8\u00dd\u0002\u028f\u028d\u0003\u0002\u0002\u0002\u0290\u0293\u0003", "\u0002\u0002\u0002\u0291\u028f\u0003\u0002\u0002\u0002\u0291\u0292\u0003", "\u0002\u0002\u0002\u0292\u0294\u0003\u0002\u0002\u0002\u0293\u0291\u0003", - "\u0002\u0002\u0002\u0294\u0295\u0007\u001b\u0002\u0002\u0295\u0297\u0003", + "\u0002\u0002\u0002\u0294\u0295\u0007\u016d\u0002\u0002\u0295\u0297\u0003", "\u0002\u0002\u0002\u0296\u028a\u0003\u0002\u0002\u0002\u0296\u028b\u0003", "\u0002\u0002\u0002\u0297\u0299\u0003\u0002\u0002\u0002\u0298\u029a\u0007", - "\u0018\u0002\u0002\u0299\u0298\u0003\u0002\u0002\u0002\u0299\u029a\u0003", + "\u0156\u0002\u0002\u0299\u0298\u0003\u0002\u0002\u0002\u0299\u029a\u0003", "\u0002\u0002\u0002\u029a\u029b\u0003\u0002\u0002\u0002\u029b\u029c\u0007", - "\u0019\u0002\u0002\u029c\u029d\u0007\u001a\u0002\u0002\u029d\u029e\u0005", - "\u011a\u008e\u0002\u029e\u029f\u0007\u001b\u0002\u0002\u029f#\u0003", - "\u0002\u0002\u0002\u02a0\u02a1\u0007\u001c\u0002\u0002\u02a1\u02a2\u0005", - "\u01b8\u00dd\u0002\u02a2\u02a3\u0007\u001d\u0002\u0002\u02a3\u02a7\u0007", - "\u001e\u0002\u0002\u02a4\u02a5\u0007\u001f\u0002\u0002\u02a5\u02a8\u0007", - "\u0016\u0002\u0002\u02a6\u02a8\u0007 \u0002\u0002\u02a7\u02a4\u0003", + "\u015c\u0002\u0002\u029c\u029d\u0007\u016a\u0002\u0002\u029d\u029e\u0005", + "\u011a\u008e\u0002\u029e\u029f\u0007\u016d\u0002\u0002\u029f#\u0003", + "\u0002\u0002\u0002\u02a0\u02a1\u0007\u0006\u0002\u0002\u02a1\u02a2\u0005", + "\u01b8\u00dd\u0002\u02a2\u02a3\u0007>\u0002\u0002\u02a3\u02a7\u0007", + "p\u0002\u0002\u02a4\u02a5\u0007\u00e5\u0002\u0002\u02a5\u02a8\u0007", + "\u00fd\u0002\u0002\u02a6\u02a8\u0007\u00d9\u0002\u0002\u02a7\u02a4\u0003", "\u0002\u0002\u0002\u02a7\u02a6\u0003\u0002\u0002\u0002\u02a8\u02a9\u0003", "\u0002\u0002\u0002\u02a9\u02aa\u0005\u01b8\u00dd\u0002\u02aa%\u0003", - "\u0002\u0002\u0002\u02ab\u02ae\u0007!\u0002\u0002\u02ac\u02ad\u0007", - "\u001f\u0002\u0002\u02ad\u02af\u0007\u0016\u0002\u0002\u02ae\u02ac\u0003", + "\u0002\u0002\u0002\u02ab\u02ae\u0007\r\u0002\u0002\u02ac\u02ad\u0007", + "\u00e5\u0002\u0002\u02ad\u02af\u0007\u00fd\u0002\u0002\u02ae\u02ac\u0003", "\u0002\u0002\u0002\u02ae\u02af\u0003\u0002\u0002\u0002\u02af\u02b0\u0003", "\u0002\u0002\u0002\u02b0\u02b1\t\u0004\u0002\u0002\u02b1\u02b2\u0007", - "\u001a\u0002\u0002\u02b2\u02b7\u0005\u01b8\u00dd\u0002\u02b3\u02b4\u0007", - "\u0017\u0002\u0002\u02b4\u02b6\u0005\u01b8\u00dd\u0002\u02b5\u02b3\u0003", + "\u016a\u0002\u0002\u02b2\u02b7\u0005\u01b8\u00dd\u0002\u02b3\u02b4\u0007", + "\u0157\u0002\u0002\u02b4\u02b6\u0005\u01b8\u00dd\u0002\u02b5\u02b3\u0003", "\u0002\u0002\u0002\u02b6\u02b9\u0003\u0002\u0002\u0002\u02b7\u02b5\u0003", "\u0002\u0002\u0002\u02b7\u02b8\u0003\u0002\u0002\u0002\u02b8\u02ba\u0003", "\u0002\u0002\u0002\u02b9\u02b7\u0003\u0002\u0002\u0002\u02ba\u02bb\u0007", - "\u001b\u0002\u0002\u02bb\u02bc\u0007$\u0002\u0002\u02bc\u02bd\u0007", - " \u0002\u0002\u02bd\u02be\u0005\u01b8\u00dd\u0002\u02be\'\u0003\u0002", - "\u0002\u0002\u02bf\u02c0\u0007\u000e\u0002\u0002\u02c0\u02c1\u0007%", - "\u0002\u0002\u02c1)\u0003\u0002\u0002\u0002\u02c2\u02c3\u0007&\u0002", - "\u0002\u02c3+\u0003\u0002\u0002\u0002\u02c4\u02c5\u0007\'\u0002\u0002", - "\u02c5\u02cc\u0005\u01b8\u00dd\u0002\u02c6\u02c8\u0007\u001a\u0002\u0002", - "\u02c7\u02c9\u0005\u01a0\u00d1\u0002\u02c8\u02c7\u0003\u0002\u0002\u0002", - "\u02c8\u02c9\u0003\u0002\u0002\u0002\u02c9\u02ca\u0003\u0002\u0002\u0002", - "\u02ca\u02cd\u0007\u001b\u0002\u0002\u02cb\u02cd\u0005\u01a0\u00d1\u0002", - "\u02cc\u02c6\u0003\u0002\u0002\u0002\u02cc\u02cb\u0003\u0002\u0002\u0002", - "\u02cc\u02cd\u0003\u0002\u0002\u0002\u02cd-\u0003\u0002\u0002\u0002", - "\u02ce\u02cf\u0007(\u0002\u0002\u02cf\u02d4\u00054\u001b\u0002\u02d0", - "\u02d1\u0007\u0017\u0002\u0002\u02d1\u02d3\u00054\u001b\u0002\u02d2", - "\u02d0\u0003\u0002\u0002\u0002\u02d3\u02d6\u0003\u0002\u0002\u0002\u02d4", - "\u02d2\u0003\u0002\u0002\u0002\u02d4\u02d5\u0003\u0002\u0002\u0002\u02d5", - "/\u0003\u0002\u0002\u0002\u02d6\u02d4\u0003\u0002\u0002\u0002\u02d7", - "\u02d8\u0007(\u0002\u0002\u02d8\u02d9\u00054\u001b\u0002\u02d9\u02df", - "\u0007\u000f\u0002\u0002\u02da\u02db\u00054\u001b\u0002\u02db\u02dc", - "\u0007\u000f\u0002\u0002\u02dc\u02de\u0003\u0002\u0002\u0002\u02dd\u02da", - "\u0003\u0002\u0002\u0002\u02de\u02e1\u0003\u0002\u0002\u0002\u02df\u02dd", - "\u0003\u0002\u0002\u0002\u02df\u02e0\u0003\u0002\u0002\u0002\u02e01", - "\u0003\u0002\u0002\u0002\u02e1\u02df\u0003\u0002\u0002\u0002\u02e2\u02e3", - "\u00054\u001b\u0002\u02e3\u02e9\u0007\u000f\u0002\u0002\u02e4\u02e5", - "\u00054\u001b\u0002\u02e5\u02e6\u0007\u000f\u0002\u0002\u02e6\u02e8", - "\u0003\u0002\u0002\u0002\u02e7\u02e4\u0003\u0002\u0002\u0002\u02e8\u02eb", - "\u0003\u0002\u0002\u0002\u02e9\u02e7\u0003\u0002\u0002\u0002\u02e9\u02ea", - "\u0003\u0002\u0002\u0002\u02ea3\u0003\u0002\u0002\u0002\u02eb\u02e9", - "\u0003\u0002\u0002\u0002\u02ec\u02f2\u0005:\u001e\u0002\u02ed\u02f2", - "\u00058\u001d\u0002\u02ee\u02f2\u0005@!\u0002\u02ef\u02f2\u00056\u001c", - "\u0002\u02f0\u02f2\u0005B\"\u0002\u02f1\u02ec\u0003\u0002\u0002\u0002", - "\u02f1\u02ed\u0003\u0002\u0002\u0002\u02f1\u02ee\u0003\u0002\u0002\u0002", - "\u02f1\u02ef\u0003\u0002\u0002\u0002\u02f1\u02f0\u0003\u0002\u0002\u0002", - "\u02f25\u0003\u0002\u0002\u0002\u02f3\u02f8\u0005\u01b8\u00dd\u0002", - "\u02f4\u02f5\u0007\u0017\u0002\u0002\u02f5\u02f7\u0005\u01b8\u00dd\u0002", - "\u02f6\u02f4\u0003\u0002\u0002\u0002\u02f7\u02fa\u0003\u0002\u0002\u0002", - "\u02f8\u02f6\u0003\u0002\u0002\u0002\u02f8\u02f9\u0003\u0002\u0002\u0002", - "\u02f9\u02fc\u0003\u0002\u0002\u0002\u02fa\u02f8\u0003\u0002\u0002\u0002", - "\u02fb\u02fd\u0007)\u0002\u0002\u02fc\u02fb\u0003\u0002\u0002\u0002", - "\u02fc\u02fd\u0003\u0002\u0002\u0002\u02fd\u02fe\u0003\u0002\u0002\u0002", - "\u02fe\u0300\u0005x=\u0002\u02ff\u0301\u0005z>\u0002\u0300\u02ff\u0003", - "\u0002\u0002\u0002\u0300\u0301\u0003\u0002\u0002\u0002\u0301\u0305\u0003", - "\u0002\u0002\u0002\u0302\u0304\u0005|?\u0002\u0303\u0302\u0003\u0002", - "\u0002\u0002\u0304\u0307\u0003\u0002\u0002\u0002\u0305\u0303\u0003\u0002", - "\u0002\u0002\u0305\u0306\u0003\u0002\u0002\u0002\u0306\u0309\u0003\u0002", - "\u0002\u0002\u0307\u0305\u0003\u0002\u0002\u0002\u0308\u030a\u0005~", - "@\u0002\u0309\u0308\u0003\u0002\u0002\u0002\u0309\u030a\u0003\u0002", - "\u0002\u0002\u030a\u0317\u0003\u0002\u0002\u0002\u030b\u030c\u0005\u01b8", - "\u00dd\u0002\u030c\u030e\u0007*\u0002\u0002\u030d\u030f\u0007)\u0002", - "\u0002\u030e\u030d\u0003\u0002\u0002\u0002\u030e\u030f\u0003\u0002\u0002", - "\u0002\u030f\u0310\u0003\u0002\u0002\u0002\u0310\u0312\u0005x=\u0002", - "\u0311\u0313\u0005z>\u0002\u0312\u0311\u0003\u0002\u0002\u0002\u0312", - "\u0313\u0003\u0002\u0002\u0002\u0313\u0314\u0003\u0002\u0002\u0002\u0314", - "\u0315\u0005~@\u0002\u0315\u0317\u0003\u0002\u0002\u0002\u0316\u02f3", - "\u0003\u0002\u0002\u0002\u0316\u030b\u0003\u0002\u0002\u0002\u03177", - "\u0003\u0002\u0002\u0002\u0318\u0319\u0005\u01b8\u00dd\u0002\u0319\u031a", - "\u0007+\u0002\u0002\u031a9\u0003\u0002\u0002\u0002\u031b\u031c\u0007", - "\u001d\u0002\u0002\u031c\u0321\u0005\u01b8\u00dd\u0002\u031d\u031e\u0005", - "\u01b8\u00dd\u0002\u031e\u031f\u0007\u001d\u0002\u0002\u031f\u0321\u0003", - "\u0002\u0002\u0002\u0320\u031b\u0003\u0002\u0002\u0002\u0320\u031d\u0003", - "\u0002\u0002\u0002\u0321\u0324\u0003\u0002\u0002\u0002\u0322\u0325\u0005", - "<\u001f\u0002\u0323\u0325\u0005> \u0002\u0324\u0322\u0003\u0002\u0002", - "\u0002\u0324\u0323\u0003\u0002\u0002\u0002\u0324\u0325\u0003\u0002\u0002", - "\u0002\u0325\u0326\u0003\u0002\u0002\u0002\u0326\u0329\t\u0005\u0002", - "\u0002\u0327\u032a\u0005\u011a\u008e\u0002\u0328\u032a\u0005\u0180\u00c1", - "\u0002\u0329\u0327\u0003\u0002\u0002\u0002\u0329\u0328\u0003\u0002\u0002", - "\u0002\u032a;\u0003\u0002\u0002\u0002\u032b\u032c\u0007$\u0002\u0002", - "\u032c\u032e\u0007-\u0002\u0002\u032d\u032f\u0007.\u0002\u0002\u032e", - "\u032d\u0003\u0002\u0002\u0002\u032e\u032f\u0003\u0002\u0002\u0002\u032f", - "\u0332\u0003\u0002\u0002\u0002\u0330\u0331\u0007/\u0002\u0002\u0331", - "\u0333\t\u0006\u0002\u0002\u0332\u0330\u0003\u0002\u0002\u0002\u0332", - "\u0333\u0003\u0002\u0002\u0002\u0333=\u0003\u0002\u0002\u0002\u0334", - "\u0335\u00072\u0002\u0002\u0335\u0336\u0007-\u0002\u0002\u0336?\u0003", - "\u0002\u0002\u0002\u0337\u0338\t\u0007\u0002\u0002\u0338\u0339\u0007", - "5\u0002\u0002\u0339\u033f\u0007\u001e\u0002\u0002\u033a\u0340\u0007", - "6\u0002\u0002\u033b\u0340\u00077\u0002\u0002\u033c\u033d\u00078\u0002", - "\u0002\u033d\u0340\u00079\u0002\u0002\u033e\u0340\u0005\u01b8\u00dd", - "\u0002\u033f\u033a\u0003\u0002\u0002\u0002\u033f\u033b\u0003\u0002\u0002", - "\u0002\u033f\u033c\u0003\u0002\u0002\u0002\u033f\u033e\u0003\u0002\u0002", - "\u0002\u0340\u0341\u0003\u0002\u0002\u0002\u0341\u0342\u0005\b\u0005", - "\u0002\u0342A\u0003\u0002\u0002\u0002\u0343\u0345\u0007:\u0002\u0002", - "\u0344\u0343\u0003\u0002\u0002\u0002\u0344\u0345\u0003\u0002\u0002\u0002", - "\u0345\u0346\u0003\u0002\u0002\u0002\u0346\u0347\u0007;\u0002\u0002", - "\u0347\u0348\u0007<\u0002\u0002\u0348\u034a\u0005\u01b8\u00dd\u0002", - "\u0349\u034b\u0005V,\u0002\u034a\u0349\u0003\u0002\u0002\u0002\u034a", - "\u034b\u0003\u0002\u0002\u0002\u034b\u034c\u0003\u0002\u0002\u0002\u034c", - "\u034d\u0005H%\u0002\u034dC\u0003\u0002\u0002\u0002\u034e\u034f\u0007", - "=\u0002\u0002\u034f\u0353\u0007<\u0002\u0002\u0350\u0351\u0007>\u0002", - "\u0002\u0351\u0352\u00078\u0002\u0002\u0352\u0354\u0007?\u0002\u0002", + "\u016d\u0002\u0002\u02bb\u02bc\u0007\u0137\u0002\u0002\u02bc\u02bd\u0007", + "\u00d9\u0002\u0002\u02bd\u02be\u0005\u01b8\u00dd\u0002\u02be\'\u0003", + "\u0002\u0002\u0002\u02bf\u02c0\u0007\u0012\u0002\u0002\u02c0\u02c1\u0007", + "\u0123\u0002\u0002\u02c1)\u0003\u0002\u0002\u0002\u02c2\u02c3\u0007", + "\u001a\u0002\u0002\u02c3+\u0003\u0002\u0002\u0002\u02c4\u02c5\u0007", + "\u001d\u0002\u0002\u02c5\u02cc\u0005\u01b8\u00dd\u0002\u02c6\u02c8\u0007", + "\u016a\u0002\u0002\u02c7\u02c9\u0005\u01a0\u00d1\u0002\u02c8\u02c7\u0003", + "\u0002\u0002\u0002\u02c8\u02c9\u0003\u0002\u0002\u0002\u02c9\u02ca\u0003", + "\u0002\u0002\u0002\u02ca\u02cd\u0007\u016d\u0002\u0002\u02cb\u02cd\u0005", + "\u01a0\u00d1\u0002\u02cc\u02c6\u0003\u0002\u0002\u0002\u02cc\u02cb\u0003", + "\u0002\u0002\u0002\u02cc\u02cd\u0003\u0002\u0002\u0002\u02cd-\u0003", + "\u0002\u0002\u0002\u02ce\u02cf\u0007G\u0002\u0002\u02cf\u02d4\u0005", + "4\u001b\u0002\u02d0\u02d1\u0007\u0157\u0002\u0002\u02d1\u02d3\u0005", + "4\u001b\u0002\u02d2\u02d0\u0003\u0002\u0002\u0002\u02d3\u02d6\u0003", + "\u0002\u0002\u0002\u02d4\u02d2\u0003\u0002\u0002\u0002\u02d4\u02d5\u0003", + "\u0002\u0002\u0002\u02d5/\u0003\u0002\u0002\u0002\u02d6\u02d4\u0003", + "\u0002\u0002\u0002\u02d7\u02d8\u0007G\u0002\u0002\u02d8\u02d9\u0005", + "4\u001b\u0002\u02d9\u02df\u0007\u016f\u0002\u0002\u02da\u02db\u0005", + "4\u001b\u0002\u02db\u02dc\u0007\u016f\u0002\u0002\u02dc\u02de\u0003", + "\u0002\u0002\u0002\u02dd\u02da\u0003\u0002\u0002\u0002\u02de\u02e1\u0003", + "\u0002\u0002\u0002\u02df\u02dd\u0003\u0002\u0002\u0002\u02df\u02e0\u0003", + "\u0002\u0002\u0002\u02e01\u0003\u0002\u0002\u0002\u02e1\u02df\u0003", + "\u0002\u0002\u0002\u02e2\u02e3\u00054\u001b\u0002\u02e3\u02e9\u0007", + "\u016f\u0002\u0002\u02e4\u02e5\u00054\u001b\u0002\u02e5\u02e6\u0007", + "\u016f\u0002\u0002\u02e6\u02e8\u0003\u0002\u0002\u0002\u02e7\u02e4\u0003", + "\u0002\u0002\u0002\u02e8\u02eb\u0003\u0002\u0002\u0002\u02e9\u02e7\u0003", + "\u0002\u0002\u0002\u02e9\u02ea\u0003\u0002\u0002\u0002\u02ea3\u0003", + "\u0002\u0002\u0002\u02eb\u02e9\u0003\u0002\u0002\u0002\u02ec\u02f2\u0005", + ":\u001e\u0002\u02ed\u02f2\u00058\u001d\u0002\u02ee\u02f2\u0005@!\u0002", + "\u02ef\u02f2\u00056\u001c\u0002\u02f0\u02f2\u0005B\"\u0002\u02f1\u02ec", + "\u0003\u0002\u0002\u0002\u02f1\u02ed\u0003\u0002\u0002\u0002\u02f1\u02ee", + "\u0003\u0002\u0002\u0002\u02f1\u02ef\u0003\u0002\u0002\u0002\u02f1\u02f0", + "\u0003\u0002\u0002\u0002\u02f25\u0003\u0002\u0002\u0002\u02f3\u02f8", + "\u0005\u01b8\u00dd\u0002\u02f4\u02f5\u0007\u0157\u0002\u0002\u02f5\u02f7", + "\u0005\u01b8\u00dd\u0002\u02f6\u02f4\u0003\u0002\u0002\u0002\u02f7\u02fa", + "\u0003\u0002\u0002\u0002\u02f8\u02f6\u0003\u0002\u0002\u0002\u02f8\u02f9", + "\u0003\u0002\u0002\u0002\u02f9\u02fc\u0003\u0002\u0002\u0002\u02fa\u02f8", + "\u0003\u0002\u0002\u0002\u02fb\u02fd\u0007\u000b\u0002\u0002\u02fc\u02fb", + "\u0003\u0002\u0002\u0002\u02fc\u02fd\u0003\u0002\u0002\u0002\u02fd\u02fe", + "\u0003\u0002\u0002\u0002\u02fe\u0300\u0005x=\u0002\u02ff\u0301\u0005", + "z>\u0002\u0300\u02ff\u0003\u0002\u0002\u0002\u0300\u0301\u0003\u0002", + "\u0002\u0002\u0301\u0305\u0003\u0002\u0002\u0002\u0302\u0304\u0005|", + "?\u0002\u0303\u0302\u0003\u0002\u0002\u0002\u0304\u0307\u0003\u0002", + "\u0002\u0002\u0305\u0303\u0003\u0002\u0002\u0002\u0305\u0306\u0003\u0002", + "\u0002\u0002\u0306\u0309\u0003\u0002\u0002\u0002\u0307\u0305\u0003\u0002", + "\u0002\u0002\u0308\u030a\u0005~@\u0002\u0309\u0308\u0003\u0002\u0002", + "\u0002\u0309\u030a\u0003\u0002\u0002\u0002\u030a\u0317\u0003\u0002\u0002", + "\u0002\u030b\u030c\u0005\u01b8\u00dd\u0002\u030c\u030e\u0007.\u0002", + "\u0002\u030d\u030f\u0007\u000b\u0002\u0002\u030e\u030d\u0003\u0002\u0002", + "\u0002\u030e\u030f\u0003\u0002\u0002\u0002\u030f\u0310\u0003\u0002\u0002", + "\u0002\u0310\u0312\u0005x=\u0002\u0311\u0313\u0005z>\u0002\u0312\u0311", + "\u0003\u0002\u0002\u0002\u0312\u0313\u0003\u0002\u0002\u0002\u0313\u0314", + "\u0003\u0002\u0002\u0002\u0314\u0315\u0005~@\u0002\u0315\u0317\u0003", + "\u0002\u0002\u0002\u0316\u02f3\u0003\u0002\u0002\u0002\u0316\u030b\u0003", + "\u0002\u0002\u0002\u03177\u0003\u0002\u0002\u0002\u0318\u0319\u0005", + "\u01b8\u00dd\u0002\u0319\u031a\u00072\u0002\u0002\u031a9\u0003\u0002", + "\u0002\u0002\u031b\u031c\u0007>\u0002\u0002\u031c\u0321\u0005\u01b8", + "\u00dd\u0002\u031d\u031e\u0005\u01b8\u00dd\u0002\u031e\u031f\u0007>", + "\u0002\u0002\u031f\u0321\u0003\u0002\u0002\u0002\u0320\u031b\u0003\u0002", + "\u0002\u0002\u0320\u031d\u0003\u0002\u0002\u0002\u0321\u0324\u0003\u0002", + "\u0002\u0002\u0322\u0325\u0005<\u001f\u0002\u0323\u0325\u0005> \u0002", + "\u0324\u0322\u0003\u0002\u0002\u0002\u0324\u0323\u0003\u0002\u0002\u0002", + "\u0324\u0325\u0003\u0002\u0002\u0002\u0325\u0326\u0003\u0002\u0002\u0002", + "\u0326\u0329\t\u0005\u0002\u0002\u0327\u032a\u0005\u011a\u008e\u0002", + "\u0328\u032a\u0005\u0180\u00c1\u0002\u0329\u0327\u0003\u0002\u0002\u0002", + "\u0329\u0328\u0003\u0002\u0002\u0002\u032a;\u0003\u0002\u0002\u0002", + "\u032b\u032c\u0007\u0137\u0002\u0002\u032c\u032e\u0007\u00e7\u0002\u0002", + "\u032d\u032f\u0007\u00c6\u0002\u0002\u032e\u032d\u0003\u0002\u0002\u0002", + "\u032e\u032f\u0003\u0002\u0002\u0002\u032f\u0332\u0003\u0002\u0002\u0002", + "\u0330\u0331\u0007\u0121\u0002\u0002\u0331\u0333\t\u0006\u0002\u0002", + "\u0332\u0330\u0003\u0002\u0002\u0002\u0332\u0333\u0003\u0002\u0002\u0002", + "\u0333=\u0003\u0002\u0002\u0002\u0334\u0335\u0007\u0138\u0002\u0002", + "\u0335\u0336\u0007\u00e7\u0002\u0002\u0336?\u0003\u0002\u0002\u0002", + "\u0337\u0338\t\u0007\u0002\u0002\u0338\u0339\u0007|\u0002\u0002\u0339", + "\u033f\u0007p\u0002\u0002\u033a\u0340\u0007\u0109\u0002\u0002\u033b", + "\u0340\u0007\u010c\u0002\u0002\u033c\u033d\u0007\u00be\u0002\u0002\u033d", + "\u0340\u0007s\u0002\u0002\u033e\u0340\u0005\u01b8\u00dd\u0002\u033f", + "\u033a\u0003\u0002\u0002\u0002\u033f\u033b\u0003\u0002\u0002\u0002\u033f", + "\u033c\u0003\u0002\u0002\u0002\u033f\u033e\u0003\u0002\u0002\u0002\u0340", + "\u0341\u0003\u0002\u0002\u0002\u0341\u0342\u0005\b\u0005\u0002\u0342", + "A\u0003\u0002\u0002\u0002\u0343\u0345\u0007x\u0002\u0002\u0344\u0343", + "\u0003\u0002\u0002\u0002\u0344\u0345\u0003\u0002\u0002\u0002\u0345\u0346", + "\u0003\u0002\u0002\u0002\u0346\u0347\u0007\u011a\u0002\u0002\u0347\u0348", + "\u0007\u0118\u0002\u0002\u0348\u034a\u0005\u01b8\u00dd\u0002\u0349\u034b", + "\u0005V,\u0002\u034a\u0349\u0003\u0002\u0002\u0002\u034a\u034b\u0003", + "\u0002\u0002\u0002\u034b\u034c\u0003\u0002\u0002\u0002\u034c\u034d\u0005", + "H%\u0002\u034dC\u0003\u0002\u0002\u0002\u034e\u034f\u00078\u0002\u0002", + "\u034f\u0353\u0007\u0118\u0002\u0002\u0350\u0351\u0007\u0083\u0002\u0002", + "\u0351\u0352\u0007\u00be\u0002\u0002\u0352\u0354\u0007g\u0002\u0002", "\u0353\u0350\u0003\u0002\u0002\u0002\u0353\u0354\u0003\u0002\u0002\u0002", "\u0354\u0355\u0003\u0002\u0002\u0002\u0355\u0357\u0005\u014a\u00a6\u0002", "\u0356\u0358\u0005V,\u0002\u0357\u0356\u0003\u0002\u0002\u0002\u0357", "\u0358\u0003\u0002\u0002\u0002\u0358\u0359\u0003\u0002\u0002\u0002\u0359", "\u035a\u0005H%\u0002\u035aE\u0003\u0002\u0002\u0002\u035b\u0362\u0007", - "=\u0002\u0002\u035c\u035d\u0007@\u0002\u0002\u035d\u0363\u0007;\u0002", - "\u0002\u035e\u0360\t\b\u0002\u0002\u035f\u035e\u0003\u0002\u0002\u0002", - "\u035f\u0360\u0003\u0002\u0002\u0002\u0360\u0361\u0003\u0002\u0002\u0002", - "\u0361\u0363\u0007B\u0002\u0002\u0362\u035c\u0003\u0002\u0002\u0002", - "\u0362\u035f\u0003\u0002\u0002\u0002\u0363\u0364\u0003\u0002\u0002\u0002", - "\u0364\u0365\u0007<\u0002\u0002\u0365\u0367\u0005\u01b8\u00dd\u0002", - "\u0366\u0368\u0005V,\u0002\u0367\u0366\u0003\u0002\u0002\u0002\u0367", - "\u0368\u0003\u0002\u0002\u0002\u0368\u0369\u0003\u0002\u0002\u0002\u0369", - "\u036a\u0005H%\u0002\u036aG\u0003\u0002\u0002\u0002\u036b\u036d\u0007", - ")\u0002\u0002\u036c\u036b\u0003\u0002\u0002\u0002\u036c\u036d\u0003", - "\u0002\u0002\u0002\u036d\u036e\u0003\u0002\u0002\u0002\u036e\u036f\u0007", - "\u001a\u0002\u0002\u036f\u0370\u0005\u011a\u008e\u0002\u0370\u0371\u0007", - "\u001b\u0002\u0002\u0371\u037d\u0003\u0002\u0002\u0002\u0372\u0374\u0007", - ")\u0002\u0002\u0373\u0372\u0003\u0002\u0002\u0002\u0373\u0374\u0003", - "\u0002\u0002\u0002\u0374\u0375\u0003\u0002\u0002\u0002\u0375\u037d\u0005", - "\u011a\u008e\u0002\u0376\u0377\u0007\u001a\u0002\u0002\u0377\u0378\u0005", - "J&\u0002\u0378\u0379\u0007\u001b\u0002\u0002\u0379\u037d\u0003\u0002", - "\u0002\u0002\u037a\u037b\u0007C\u0002\u0002\u037b\u037d\u0005\u014a", - "\u00a6\u0002\u037c\u036c\u0003\u0002\u0002\u0002\u037c\u0373\u0003\u0002", - "\u0002\u0002\u037c\u0376\u0003\u0002\u0002\u0002\u037c\u037a\u0003\u0002", - "\u0002\u0002\u037d\u037f\u0003\u0002\u0002\u0002\u037e\u0380\u0005\\", - "/\u0002\u037f\u037e\u0003\u0002\u0002\u0002\u037f\u0380\u0003\u0002", - "\u0002\u0002\u0380I\u0003\u0002\u0002\u0002\u0381\u0386\u0005L\'\u0002", - "\u0382\u0383\u0007\u0017\u0002\u0002\u0383\u0385\u0005L\'\u0002\u0384", - "\u0382\u0003\u0002\u0002\u0002\u0385\u0388\u0003\u0002\u0002\u0002\u0386", - "\u0384\u0003\u0002\u0002\u0002\u0386\u0387\u0003\u0002\u0002\u0002\u0387", - "K\u0003\u0002\u0002\u0002\u0388\u0386\u0003\u0002\u0002\u0002\u0389", - "\u038a\u0005N(\u0002\u038a\u038c\u0005x=\u0002\u038b\u038d\u0005z>\u0002", - "\u038c\u038b\u0003\u0002\u0002\u0002\u038c\u038d\u0003\u0002\u0002\u0002", - "\u038d\u0391\u0003\u0002\u0002\u0002\u038e\u0390\u0005|?\u0002\u038f", - "\u038e\u0003\u0002\u0002\u0002\u0390\u0393\u0003\u0002\u0002\u0002\u0391", - "\u038f\u0003\u0002\u0002\u0002\u0391\u0392\u0003\u0002\u0002\u0002\u0392", - "\u0397\u0003\u0002\u0002\u0002\u0393\u0391\u0003\u0002\u0002\u0002\u0394", - "\u0396\u0005P)\u0002\u0395\u0394\u0003\u0002\u0002\u0002\u0396\u0399", - "\u0003\u0002\u0002\u0002\u0397\u0395\u0003\u0002\u0002\u0002\u0397\u0398", - "\u0003\u0002\u0002\u0002\u0398\u03a0\u0003\u0002\u0002\u0002\u0399\u0397", - "\u0003\u0002\u0002\u0002\u039a\u039b\u0007D\u0002\u0002\u039b\u039d", - "\u0005\u01b8\u00dd\u0002\u039c\u039a\u0003\u0002\u0002\u0002\u039c\u039d", - "\u0003\u0002\u0002\u0002\u039d\u039e\u0003\u0002\u0002\u0002\u039e\u03a0", - "\u0005R*\u0002\u039f\u0389\u0003\u0002\u0002\u0002\u039f\u039c\u0003", - "\u0002\u0002\u0002\u03a0M\u0003\u0002\u0002\u0002\u03a1\u03a2\u0005", - "\u01b8\u00dd\u0002\u03a2O\u0003\u0002\u0002\u0002\u03a3\u03c4\u0005", - "~@\u0002\u03a4\u03a6\u00078\u0002\u0002\u03a5\u03a4\u0003\u0002\u0002", - "\u0002\u03a5\u03a6\u0003\u0002\u0002\u0002\u03a6\u03a7\u0003\u0002\u0002", - "\u0002\u03a7\u03c4\u0007\u0015\u0002\u0002\u03a8\u03a9\u0007E\u0002", - "\u0002\u03a9\u03c4\u0007F\u0002\u0002\u03aa\u03c4\u0007G\u0002\u0002", - "\u03ab\u03ac\u0007H\u0002\u0002\u03ac\u03ad\u0005\u014a\u00a6\u0002", - "\u03ad\u03ae\u0007\u001a\u0002\u0002\u03ae\u03af\u0005\u01b8\u00dd\u0002", - "\u03af\u03b3\u0007\u001b\u0002\u0002\u03b0\u03b2\u0005T+\u0002\u03b1", - "\u03b0\u0003\u0002\u0002\u0002\u03b2\u03b5\u0003\u0002\u0002\u0002\u03b3", - "\u03b1\u0003\u0002\u0002\u0002\u03b3\u03b4\u0003\u0002\u0002\u0002\u03b4", - "\u03c4\u0003\u0002\u0002\u0002\u03b5\u03b3\u0003\u0002\u0002\u0002\u03b6", - "\u03b7\u0007I\u0002\u0002\u03b7\u03b8\u0007\u001a\u0002\u0002\u03b8", - "\u03bd\u0007J\u0002\u0002\u03b9\u03ba\u0007\u0017\u0002\u0002\u03ba", - "\u03bc\u0007J\u0002\u0002\u03bb\u03b9\u0003\u0002\u0002\u0002\u03bc", - "\u03bf\u0003\u0002\u0002\u0002\u03bd\u03bb\u0003\u0002\u0002\u0002\u03bd", - "\u03be\u0003\u0002\u0002\u0002\u03be\u03c0\u0003\u0002\u0002\u0002\u03bf", - "\u03bd\u0003\u0002\u0002\u0002\u03c0\u03c4\u0007\u001b\u0002\u0002\u03c1", - "\u03c4\u0007K\u0002\u0002\u03c2\u03c4\u0007L\u0002\u0002\u03c3\u03a3", - "\u0003\u0002\u0002\u0002\u03c3\u03a5\u0003\u0002\u0002\u0002\u03c3\u03a8", - "\u0003\u0002\u0002\u0002\u03c3\u03aa\u0003\u0002\u0002\u0002\u03c3\u03ab", - "\u0003\u0002\u0002\u0002\u03c3\u03b6\u0003\u0002\u0002\u0002\u03c3\u03c1", - "\u0003\u0002\u0002\u0002\u03c3\u03c2\u0003\u0002\u0002\u0002\u03c4Q", - "\u0003\u0002\u0002\u0002\u03c5\u03c6\u0007E\u0002\u0002\u03c6\u03c8", - "\u0007F\u0002\u0002\u03c7\u03c9\u0007M\u0002\u0002\u03c8\u03c7\u0003", - "\u0002\u0002\u0002\u03c8\u03c9\u0003\u0002\u0002\u0002\u03c9\u03ca\u0003", - "\u0002\u0002\u0002\u03ca\u03cb\u0007\u001a\u0002\u0002\u03cb\u03cd\u0005", - "\u01b8\u00dd\u0002\u03cc\u03ce\t\t\u0002\u0002\u03cd\u03cc\u0003\u0002", - "\u0002\u0002\u03cd\u03ce\u0003\u0002\u0002\u0002\u03ce\u03d6\u0003\u0002", - "\u0002\u0002\u03cf\u03d0\u0007\u0017\u0002\u0002\u03d0\u03d2\u0005\u01b8", - "\u00dd\u0002\u03d1\u03d3\t\t\u0002\u0002\u03d2\u03d1\u0003\u0002\u0002", - "\u0002\u03d2\u03d3\u0003\u0002\u0002\u0002\u03d3\u03d5\u0003\u0002\u0002", - "\u0002\u03d4\u03cf\u0003\u0002\u0002\u0002\u03d5\u03d8\u0003\u0002\u0002", - "\u0002\u03d6\u03d4\u0003\u0002\u0002\u0002\u03d6\u03d7\u0003\u0002\u0002", - "\u0002\u03d7\u03d9\u0003\u0002\u0002\u0002\u03d8\u03d6\u0003\u0002\u0002", - "\u0002\u03d9\u03db\u0007\u001b\u0002\u0002\u03da\u03dc\u0007L\u0002", - "\u0002\u03db\u03da\u0003\u0002\u0002\u0002\u03db\u03dc\u0003\u0002\u0002", - "\u0002\u03dc\u03de\u0003\u0002\u0002\u0002\u03dd\u03df\u0005\u00eex", - "\u0002\u03de\u03dd\u0003\u0002\u0002\u0002\u03de\u03df\u0003\u0002\u0002", - "\u0002\u03df\u03ff\u0003\u0002\u0002\u0002\u03e0\u03e1\u0007P\u0002", - "\u0002\u03e1\u03e2\u0007F\u0002\u0002\u03e2\u03e3\u0007\u001a\u0002", - "\u0002\u03e3\u03e8\u0005\u01b8\u00dd\u0002\u03e4\u03e5\u0007\u0017\u0002", - "\u0002\u03e5\u03e7\u0005\u01b8\u00dd\u0002\u03e6\u03e4\u0003\u0002\u0002", - "\u0002\u03e7\u03ea\u0003\u0002\u0002\u0002\u03e8\u03e6\u0003\u0002\u0002", - "\u0002\u03e8\u03e9\u0003\u0002\u0002\u0002\u03e9\u03eb\u0003\u0002\u0002", - "\u0002\u03ea\u03e8\u0003\u0002\u0002\u0002\u03eb\u03ec\u0007\u001b\u0002", - "\u0002\u03ec\u03ed\u0007H\u0002\u0002\u03ed\u03ee\u0005\u014a\u00a6", - "\u0002\u03ee\u03ef\u0007\u001a\u0002\u0002\u03ef\u03f4\u0005\u01b8\u00dd", - "\u0002\u03f0\u03f1\u0007\u0017\u0002\u0002\u03f1\u03f3\u0005\u01b8\u00dd", - "\u0002\u03f2\u03f0\u0003\u0002\u0002\u0002\u03f3\u03f6\u0003\u0002\u0002", - "\u0002\u03f4\u03f2\u0003\u0002\u0002\u0002\u03f4\u03f5\u0003\u0002\u0002", - "\u0002\u03f5\u03f7\u0003\u0002\u0002\u0002\u03f6\u03f4\u0003\u0002\u0002", - "\u0002\u03f7\u03fb\u0007\u001b\u0002\u0002\u03f8\u03fa\u0005T+\u0002", - "\u03f9\u03f8\u0003\u0002\u0002\u0002\u03fa\u03fd\u0003\u0002\u0002\u0002", - "\u03fb\u03f9\u0003\u0002\u0002\u0002\u03fb\u03fc\u0003\u0002\u0002\u0002", - "\u03fc\u03ff\u0003\u0002\u0002\u0002\u03fd\u03fb\u0003\u0002\u0002\u0002", - "\u03fe\u03c5\u0003\u0002\u0002\u0002\u03fe\u03e0\u0003\u0002\u0002\u0002", - "\u03ffS\u0003\u0002\u0002\u0002\u0400\u0401\u0007Q\u0002\u0002\u0401", - "\u040a\t\n\u0002\u0002\u0402\u0403\u0007T\u0002\u0002\u0403\u040b\u0007", - "U\u0002\u0002\u0404\u040b\u0007V\u0002\u0002\u0405\u0406\u0007\u0016", - "\u0002\u0002\u0406\u040b\u0007\u0015\u0002\u0002\u0407\u0408\u0007\u0016", - "\u0002\u0002\u0408\u040b\u0007W\u0002\u0002\u0409\u040b\u0007X\u0002", - "\u0002\u040a\u0402\u0003\u0002\u0002\u0002\u040a\u0404\u0003\u0002\u0002", - "\u0002\u040a\u0405\u0003\u0002\u0002\u0002\u040a\u0407\u0003\u0002\u0002", - "\u0002\u040a\u0409\u0003\u0002\u0002\u0002\u040bU\u0003\u0002\u0002", - "\u0002\u040c\u040e\u0005X-\u0002\u040d\u040c\u0003\u0002\u0002\u0002", - "\u040e\u040f\u0003\u0002\u0002\u0002\u040f\u040d\u0003\u0002\u0002\u0002", - "\u040f\u0410\u0003\u0002\u0002\u0002\u0410W\u0003\u0002\u0002\u0002", - "\u0411\u0412\u0007\u0017\u0002\u0002\u0412\u0415\u0005Z.\u0002\u0413", - "\u0415\u0005f4\u0002\u0414\u0411\u0003\u0002\u0002\u0002\u0414\u0413", - "\u0003\u0002\u0002\u0002\u0415Y\u0003\u0002\u0002\u0002\u0416\u0418", - "\u0007T\u0002\u0002\u0417\u0416\u0003\u0002\u0002\u0002\u0417\u0418", - "\u0003\u0002\u0002\u0002\u0418\u0419\u0003\u0002\u0002\u0002\u0419\u041a", - "\t\u000b\u0002\u0002\u041a[\u0003\u0002\u0002\u0002\u041b\u041d\u0005", - "^0\u0002\u041c\u041b\u0003\u0002\u0002\u0002\u041d\u041e\u0003\u0002", - "\u0002\u0002\u041e\u041c\u0003\u0002\u0002\u0002\u041e\u041f\u0003\u0002", - "\u0002\u0002\u041f]\u0003\u0002\u0002\u0002\u0420\u0421\u0007Q\u0002", - "\u0002\u0421\u0422\u0007[\u0002\u0002\u0422\u0423\t\f\u0002\u0002\u0423", - "\u042b\u0007]\u0002\u0002\u0424\u042b\u0005`1\u0002\u0425\u042b\u0005", - "b2\u0002\u0426\u042b\u0005d3\u0002\u0427\u042b\u0005f4\u0002\u0428\u042b", - "\u0005l7\u0002\u0429\u042b\u0005n8\u0002\u042a\u0420\u0003\u0002\u0002", - "\u0002\u042a\u0424\u0003\u0002\u0002\u0002\u042a\u0425\u0003\u0002\u0002", - "\u0002\u042a\u0426\u0003\u0002\u0002\u0002\u042a\u0427\u0003\u0002\u0002", - "\u0002\u042a\u0428\u0003\u0002\u0002\u0002\u042a\u0429\u0003\u0002\u0002", - "\u0002\u042b_\u0003\u0002\u0002\u0002\u042c\u042d\u0007^\u0002\u0002", - "\u042d\u042e\u0007_\u0002\u0002\u042e\u043f\t\r\u0002\u0002\u042f\u0430", - "\t\u000e\u0002\u0002\u0430\u043f\u0007J\u0002\u0002\u0431\u043f\u0007", - "f\u0002\u0002\u0432\u043f\t\u000f\u0002\u0002\u0433\u0434\u0007i\u0002", - "\u0002\u0434\u0437\u0007\u001a\u0002\u0002\u0435\u0438\u0005\u01b8\u00dd", - "\u0002\u0436\u0438\u0007J\u0002\u0002\u0437\u0435\u0003\u0002\u0002", - "\u0002\u0437\u0436\u0003\u0002\u0002\u0002\u0438\u0439\u0003\u0002\u0002", - "\u0002\u0439\u0437\u0003\u0002\u0002\u0002\u0439\u043a\u0003\u0002\u0002", - "\u0002\u043a\u043b\u0003\u0002\u0002\u0002\u043b\u043f\u0007\u001b\u0002", - "\u0002\u043c\u043d\u0007j\u0002\u0002\u043d\u043f\u0005\u01b8\u00dd", - "\u0002\u043e\u042c\u0003\u0002\u0002\u0002\u043e\u042f\u0003\u0002\u0002", - "\u0002\u043e\u0431\u0003\u0002\u0002\u0002\u043e\u0432\u0003\u0002\u0002", - "\u0002\u043e\u0433\u0003\u0002\u0002\u0002\u043e\u043c\u0003\u0002\u0002", - "\u0002\u043fa\u0003\u0002\u0002\u0002\u0440\u0442\u0007k\u0002\u0002", - "\u0441\u0440\u0003\u0002\u0002\u0002\u0441\u0442\u0003\u0002\u0002\u0002", - "\u0442\u0443\u0003\u0002\u0002\u0002\u0443\u0444\u0007l\u0002\u0002", - "\u0444\u0462\u0005\u01b8\u00dd\u0002\u0445\u0446\u0007$\u0002\u0002", - "\u0446\u0462\u0007m\u0002\u0002\u0447\u0448\u0007n\u0002\u0002\u0448", - "\u0449\u0007o\u0002\u0002\u0449\u044a\u0007p\u0002\u0002\u044a\u044b", - "\u0007\u001a\u0002\u0002\u044b\u0450\u0005\u01b8\u00dd\u0002\u044c\u044d", - "\u0007\u0017\u0002\u0002\u044d\u044f\u0005\u01b8\u00dd\u0002\u044e\u044c", - "\u0003\u0002\u0002\u0002\u044f\u0452\u0003\u0002\u0002\u0002\u0450\u044e", - "\u0003\u0002\u0002\u0002\u0450\u0451\u0003\u0002\u0002\u0002\u0451\u0453", - "\u0003\u0002\u0002\u0002\u0452\u0450\u0003\u0002\u0002\u0002\u0453\u0454", - "\u0007\u001b\u0002\u0002\u0454\u0462\u0003\u0002\u0002\u0002\u0455\u0457", - "\u00078\u0002\u0002\u0456\u0455\u0003\u0002\u0002\u0002\u0456\u0457", - "\u0003\u0002\u0002\u0002\u0457\u0458\u0003\u0002\u0002\u0002\u0458\u0462", - "\u0007q\u0002\u0002\u0459\u045a\u0007r\u0002\u0002\u045a\u0462\t\u0010", - "\u0002\u0002\u045b\u045c\u0007t\u0002\u0002\u045c\u0462\u0007.\u0002", - "\u0002\u045d\u045e\u0007$\u0002\u0002\u045e\u045f\u0007V\u0002\u0002", - "\u045f\u0460\u0007Q\u0002\u0002\u0460\u0462\u0007u\u0002\u0002\u0461", - "\u0441\u0003\u0002\u0002\u0002\u0461\u0445\u0003\u0002\u0002\u0002\u0461", - "\u0447\u0003\u0002\u0002\u0002\u0461\u0456\u0003\u0002\u0002\u0002\u0461", - "\u0459\u0003\u0002\u0002\u0002\u0461\u045b\u0003\u0002\u0002\u0002\u0461", - "\u045d\u0003\u0002\u0002\u0002\u0462c\u0003\u0002\u0002\u0002\u0463", - "\u0465\u0007G\u0002\u0002\u0464\u0463\u0003\u0002\u0002\u0002\u0464", - "\u0465\u0003\u0002\u0002\u0002\u0465\u0466\u0003\u0002\u0002\u0002\u0466", - "\u0467\u0007E\u0002\u0002\u0467\u0468\u0007k\u0002\u0002\u0468\u0469", - "\u0007\u001a\u0002\u0002\u0469\u046e\u0005\u01b8\u00dd\u0002\u046a\u046b", - "\u0007\u0017\u0002\u0002\u046b\u046d\u0005\u01b8\u00dd\u0002\u046c\u046a", - "\u0003\u0002\u0002\u0002\u046d\u0470\u0003\u0002\u0002\u0002\u046e\u046c", - "\u0003\u0002\u0002\u0002\u046e\u046f\u0003\u0002\u0002\u0002\u046f\u0471", - "\u0003\u0002\u0002\u0002\u0470\u046e\u0003\u0002\u0002\u0002\u0471\u0472", - "\u0007\u001b\u0002\u0002\u0472\u0476\u0003\u0002\u0002\u0002\u0473\u0474", - "\u0007$\u0002\u0002\u0474\u0476\u0007v\u0002\u0002\u0475\u0464\u0003", - "\u0002\u0002\u0002\u0475\u0473\u0003\u0002\u0002\u0002\u0476e\u0003", - "\u0002\u0002\u0002\u0477\u047c\u0005h5\u0002\u0478\u0479\u0007w\u0002", - "\u0002\u0479\u047a\u0007)\u0002\u0002\u047a\u047c\u0005\u01b8\u00dd", - "\u0002\u047b\u0477\u0003\u0002\u0002\u0002\u047b\u0478\u0003\u0002\u0002", - "\u0002\u047cg\u0003\u0002\u0002\u0002\u047d\u047e\u0007x\u0002\u0002", - "\u047e\u047f\u0007y\u0002\u0002\u047f\u0483\u0007z\u0002\u0002\u0480", - "\u0482\u0005j6\u0002\u0481\u0480\u0003\u0002\u0002\u0002\u0482\u0485", - "\u0003\u0002\u0002\u0002\u0483\u0481\u0003\u0002\u0002\u0002\u0483\u0484", - "\u0003\u0002\u0002\u0002\u0484i\u0003\u0002\u0002\u0002\u0485\u0483", - "\u0003\u0002\u0002\u0002\u0486\u0487\u0007{\u0002\u0002\u0487\u0488", - "\u0007|\u0002\u0002\u0488\u0489\u0007o\u0002\u0002\u0489\u048d\u0005", - "\u0180\u00c1\u0002\u048a\u048b\u0007}\u0002\u0002\u048b\u048c\u0007", - "o\u0002\u0002\u048c\u048e\u0005\u0180\u00c1\u0002\u048d\u048a\u0003", - "\u0002\u0002\u0002\u048d\u048e\u0003\u0002\u0002\u0002\u048e\u04a2\u0003", - "\u0002\u0002\u0002\u048f\u0490\u0007~\u0002\u0002\u0490\u0491\u0007", - "\u007f\u0002\u0002\u0491\u0492\u0007|\u0002\u0002\u0492\u0493\u0007", - "o\u0002\u0002\u0493\u04a2\u0005\u0180\u00c1\u0002\u0494\u0495\u0007", - "\u0080\u0002\u0002\u0495\u0496\u0007\u0081\u0002\u0002\u0496\u0497\u0007", - "|\u0002\u0002\u0497\u0498\u0007o\u0002\u0002\u0498\u04a2\u0005\u0180", - "\u00c1\u0002\u0499\u049a\u0007\u0082\u0002\u0002\u049a\u049b\u0007|", - "\u0002\u0002\u049b\u049c\u0007o\u0002\u0002\u049c\u04a2\u0005\u0180", - "\u00c1\u0002\u049d\u049e\u0007\u0015\u0002\u0002\u049e\u049f\u0007\u0083", - "\u0002\u0002\u049f\u04a0\u0007)\u0002\u0002\u04a0\u04a2\u0005\u0180", - "\u00c1\u0002\u04a1\u0486\u0003\u0002\u0002\u0002\u04a1\u048f\u0003\u0002", - "\u0002\u0002\u04a1\u0494\u0003\u0002\u0002\u0002\u04a1\u0499\u0003\u0002", - "\u0002\u0002\u04a1\u049d\u0003\u0002\u0002\u0002\u04a2k\u0003\u0002", - "\u0002\u0002\u04a3\u04a4\u0007Q\u0002\u0002\u04a4\u04a8\u0005\u01b8", - "\u00dd\u0002\u04a5\u04a6\u0007\u0084\u0002\u0002\u04a6\u04a8\u0005\u01b8", - "\u00dd\u0002\u04a7\u04a3\u0003\u0002\u0002\u0002\u04a7\u04a5\u0003\u0002", - "\u0002\u0002\u04a8m\u0003\u0002\u0002\u0002\u04a9\u04ab\u0007K\u0002", - "\u0002\u04aa\u04ac\u0007\u0019\u0002\u0002\u04ab\u04aa\u0003\u0002\u0002", - "\u0002\u04ab\u04ac\u0003\u0002\u0002\u0002\u04ac\u04ad\u0003\u0002\u0002", - "\u0002\u04ad\u04c5\u0005\u0180\u00c1\u0002\u04ae\u04b0\u0007\u0085\u0002", - "\u0002\u04af\u04b1\u0007\u0019\u0002\u0002\u04b0\u04af\u0003\u0002\u0002", - "\u0002\u04b0\u04b1\u0003\u0002\u0002\u0002\u04b1\u04b2\u0003\u0002\u0002", - "\u0002\u04b2\u04c5\u0005\u0180\u00c1\u0002\u04b3\u04b5\u0007W\u0002", - "\u0002\u04b4\u04b3\u0003\u0002\u0002\u0002\u04b4\u04b5\u0003\u0002\u0002", - "\u0002\u04b5\u04b9\u0003\u0002\u0002\u0002\u04b6\u04b7\u0007\u0086\u0002", - "\u0002\u04b7\u04ba\u0007\u0016\u0002\u0002\u04b8\u04ba\u0007\u0087\u0002", - "\u0002\u04b9\u04b6\u0003\u0002\u0002\u0002\u04b9\u04b8\u0003\u0002\u0002", - "\u0002\u04ba\u04bc\u0003\u0002\u0002\u0002\u04bb\u04bd\u0007\u0019\u0002", - "\u0002\u04bc\u04bb\u0003\u0002\u0002\u0002\u04bc\u04bd\u0003\u0002\u0002", - "\u0002\u04bd\u04be\u0003\u0002\u0002\u0002\u04be\u04c5\u0005\u0180\u00c1", - "\u0002\u04bf\u04c1\u0007\u0088\u0002\u0002\u04c0\u04c2\u0007\u0019\u0002", - "\u0002\u04c1\u04c0\u0003\u0002\u0002\u0002\u04c1\u04c2\u0003\u0002\u0002", - "\u0002\u04c2\u04c3\u0003\u0002\u0002\u0002\u04c3\u04c5\u0005\u0180\u00c1", - "\u0002\u04c4\u04a9\u0003\u0002\u0002\u0002\u04c4\u04ae\u0003\u0002\u0002", - "\u0002\u04c4\u04b4\u0003\u0002\u0002\u0002\u04c4\u04bf\u0003\u0002\u0002", - "\u0002\u04c5o\u0003\u0002\u0002\u0002\u04c6\u04c7\u0007\u0089\u0002", - "\u0002\u04c7\u04c8\u0007<\u0002\u0002\u04c8\u04c9\u0005\u014a\u00a6", - "\u0002\u04c9\u04ca\u0005r:\u0002\u04caq\u0003\u0002\u0002\u0002\u04cb", - "\u04cc\u0005t;\u0002\u04ccs\u0003\u0002\u0002\u0002\u04cd\u04d0\u0007", - "\u008a\u0002\u0002\u04ce\u04cf\u0007D\u0002\u0002\u04cf\u04d1\u0005", - "\u01b8\u00dd\u0002\u04d0\u04ce\u0003\u0002\u0002\u0002\u04d0\u04d1\u0003", - "\u0002\u0002\u0002\u04d1\u04d2\u0003\u0002\u0002\u0002\u04d2\u04d3\u0005", - "v<\u0002\u04d3u\u0003\u0002\u0002\u0002\u04d4\u04d5\u0007E\u0002\u0002", - "\u04d5\u04d7\u0007F\u0002\u0002\u04d6\u04d8\u0007M\u0002\u0002\u04d7", - "\u04d6\u0003\u0002\u0002\u0002\u04d7\u04d8\u0003\u0002\u0002\u0002\u04d8", - "\u04d9\u0003\u0002\u0002\u0002\u04d9\u04da\u0007\u001a\u0002\u0002\u04da", - "\u04dc\u0005\u01b8\u00dd\u0002\u04db\u04dd\t\t\u0002\u0002\u04dc\u04db", - "\u0003\u0002\u0002\u0002\u04dc\u04dd\u0003\u0002\u0002\u0002\u04dd\u04e5", - "\u0003\u0002\u0002\u0002\u04de\u04df\u0007\u0017\u0002\u0002\u04df\u04e1", - "\u0005\u01b8\u00dd\u0002\u04e0\u04e2\t\t\u0002\u0002\u04e1\u04e0\u0003", - "\u0002\u0002\u0002\u04e1\u04e2\u0003\u0002\u0002\u0002\u04e2\u04e4\u0003", - "\u0002\u0002\u0002\u04e3\u04de\u0003\u0002\u0002\u0002\u04e4\u04e7\u0003", - "\u0002\u0002\u0002\u04e5\u04e3\u0003\u0002\u0002\u0002\u04e5\u04e6\u0003", - "\u0002\u0002\u0002\u04e6\u04e8\u0003\u0002\u0002\u0002\u04e7\u04e5\u0003", - "\u0002\u0002\u0002\u04e8\u04ea\u0007\u001b\u0002\u0002\u04e9\u04eb\u0007", - "L\u0002\u0002\u04ea\u04e9\u0003\u0002\u0002\u0002\u04ea\u04eb\u0003", - "\u0002\u0002\u0002\u04eb\u04ed\u0003\u0002\u0002\u0002\u04ec\u04ee\u0005", - "\u00eex\u0002\u04ed\u04ec\u0003\u0002\u0002\u0002\u04ed\u04ee\u0003", - "\u0002\u0002\u0002\u04ee\u0513\u0003\u0002\u0002\u0002\u04ef\u04f0\u0007", - "P\u0002\u0002\u04f0\u04f1\u0007F\u0002\u0002\u04f1\u04f2\u0007\u001a", - "\u0002\u0002\u04f2\u04f7\u0005\u01b8\u00dd\u0002\u04f3\u04f4\u0007\u0017", - "\u0002\u0002\u04f4\u04f6\u0005\u01b8\u00dd\u0002\u04f5\u04f3\u0003\u0002", - "\u0002\u0002\u04f6\u04f9\u0003\u0002\u0002\u0002\u04f7\u04f5\u0003\u0002", - "\u0002\u0002\u04f7\u04f8\u0003\u0002\u0002\u0002\u04f8\u04fa\u0003\u0002", - "\u0002\u0002\u04f9\u04f7\u0003\u0002\u0002\u0002\u04fa\u04fb\u0007\u001b", - "\u0002\u0002\u04fb\u04fc\u0007H\u0002\u0002\u04fc\u04fd\u0005\u014a", - "\u00a6\u0002\u04fd\u04fe\u0007\u001a\u0002\u0002\u04fe\u0503\u0005\u01b8", - "\u00dd\u0002\u04ff\u0500\u0007\u0017\u0002\u0002\u0500\u0502\u0005\u01b8", - "\u00dd\u0002\u0501\u04ff\u0003\u0002\u0002\u0002\u0502\u0505\u0003\u0002", - "\u0002\u0002\u0503\u0501\u0003\u0002\u0002\u0002\u0503\u0504\u0003\u0002", - "\u0002\u0002\u0504\u0506\u0003\u0002\u0002\u0002\u0505\u0503\u0003\u0002", - "\u0002\u0002\u0506\u050a\u0007\u001b\u0002\u0002\u0507\u0509\u0005T", - "+\u0002\u0508\u0507\u0003\u0002\u0002\u0002\u0509\u050c\u0003\u0002", - "\u0002\u0002\u050a\u0508\u0003\u0002\u0002\u0002\u050a\u050b\u0003\u0002", - "\u0002\u0002\u050b\u0513\u0003\u0002\u0002\u0002\u050c\u050a\u0003\u0002", - "\u0002\u0002\u050d\u050e\u0007W\u0002\u0002\u050e\u050f\u0005\u0180", - "\u00c1\u0002\u050f\u0510\u0007\u001e\u0002\u0002\u0510\u0511\u0005\u01b8", - "\u00dd\u0002\u0511\u0513\u0003\u0002\u0002\u0002\u0512\u04d4\u0003\u0002", - "\u0002\u0002\u0512\u04ef\u0003\u0002\u0002\u0002\u0512\u050d\u0003\u0002", - "\u0002\u0002\u0513w\u0003\u0002\u0002\u0002\u0514\u0543\u0007\u008b", - "\u0002\u0002\u0515\u0543\u0007\u0086\u0002\u0002\u0516\u0543\u0007\u008c", - "\u0002\u0002\u0517\u0543\u0007\u008d\u0002\u0002\u0518\u0543\u0007\u008e", - "\u0002\u0002\u0519\u0543\u0007\u008f\u0002\u0002\u051a\u0543\u0007\u0090", - "\u0002\u0002\u051b\u0543\u0007\u0091\u0002\u0002\u051c\u0543\u0007\u0092", - "\u0002\u0002\u051d\u0543\u0007\u0093\u0002\u0002\u051e\u0543\u0007\u0094", - "\u0002\u0002\u051f\u0521\u0007\u0095\u0002\u0002\u0520\u0522\u0007\u0096", - "\u0002\u0002\u0521\u0520\u0003\u0002\u0002\u0002\u0521\u0522\u0003\u0002", - "\u0002\u0002\u0522\u0543\u0003\u0002\u0002\u0002\u0523\u0543\u0007\u0097", - "\u0002\u0002\u0524\u0543\u0007\u0098\u0002\u0002\u0525\u0543\u0007\u0099", - "\u0002\u0002\u0526\u0543\u0007\u009a\u0002\u0002\u0527\u0543\u0007\u009b", - "\u0002\u0002\u0528\u0543\u0007\u009c\u0002\u0002\u0529\u0543\u0007\u009d", - "\u0002\u0002\u052a\u0543\u0007\u009e\u0002\u0002\u052b\u0543\u0007\u009f", - "\u0002\u0002\u052c\u0543\u0007\u00a0\u0002\u0002\u052d\u0543\u0007\u00a1", - "\u0002\u0002\u052e\u0543\u0007\u00a2\u0002\u0002\u052f\u0530\u0007\u00a3", - "\u0002\u0002\u0530\u0543\u0007\u00a4\u0002\u0002\u0531\u0543\u0007\u00a5", - "\u0002\u0002\u0532\u0543\u0007\u00a6\u0002\u0002\u0533\u0543\u0007\u00a7", - "\u0002\u0002\u0534\u0543\u0007\u00a8\u0002\u0002\u0535\u0543\u0007\u00a9", - "\u0002\u0002\u0536\u0543\u0007\u00aa\u0002\u0002\u0537\u0543\u0007\u00ab", - "\u0002\u0002\u0538\u0543\u0007\u00ac\u0002\u0002\u0539\u0543\u0007\u00ad", - "\u0002\u0002\u053a\u0543\u0007\u00ae\u0002\u0002\u053b\u0543\u0007\u00af", - "\u0002\u0002\u053c\u0543\u0007\u00b0\u0002\u0002\u053d\u0540\u0005\u01b8", - "\u00dd\u0002\u053e\u053f\u0007\u0006\u0002\u0002\u053f\u0541\t\u0011", - "\u0002\u0002\u0540\u053e\u0003\u0002\u0002\u0002\u0540\u0541\u0003\u0002", - "\u0002\u0002\u0541\u0543\u0003\u0002\u0002\u0002\u0542\u0514\u0003\u0002", - "\u0002\u0002\u0542\u0515\u0003\u0002\u0002\u0002\u0542\u0516\u0003\u0002", - "\u0002\u0002\u0542\u0517\u0003\u0002\u0002\u0002\u0542\u0518\u0003\u0002", - "\u0002\u0002\u0542\u0519\u0003\u0002\u0002\u0002\u0542\u051a\u0003\u0002", - "\u0002\u0002\u0542\u051b\u0003\u0002\u0002\u0002\u0542\u051c\u0003\u0002", - "\u0002\u0002\u0542\u051d\u0003\u0002\u0002\u0002\u0542\u051e\u0003\u0002", - "\u0002\u0002\u0542\u051f\u0003\u0002\u0002\u0002\u0542\u0523\u0003\u0002", - "\u0002\u0002\u0542\u0524\u0003\u0002\u0002\u0002\u0542\u0525\u0003\u0002", - "\u0002\u0002\u0542\u0526\u0003\u0002\u0002\u0002\u0542\u0527\u0003\u0002", - "\u0002\u0002\u0542\u0528\u0003\u0002\u0002\u0002\u0542\u0529\u0003\u0002", - "\u0002\u0002\u0542\u052a\u0003\u0002\u0002\u0002\u0542\u052b\u0003\u0002", - "\u0002\u0002\u0542\u052c\u0003\u0002\u0002\u0002\u0542\u052d\u0003\u0002", - "\u0002\u0002\u0542\u052e\u0003\u0002\u0002\u0002\u0542\u052f\u0003\u0002", - "\u0002\u0002\u0542\u0531\u0003\u0002\u0002\u0002\u0542\u0532\u0003\u0002", - "\u0002\u0002\u0542\u0533\u0003\u0002\u0002\u0002\u0542\u0534\u0003\u0002", - "\u0002\u0002\u0542\u0535\u0003\u0002\u0002\u0002\u0542\u0536\u0003\u0002", - "\u0002\u0002\u0542\u0537\u0003\u0002\u0002\u0002\u0542\u0538\u0003\u0002", - "\u0002\u0002\u0542\u0539\u0003\u0002\u0002\u0002\u0542\u053a\u0003\u0002", - "\u0002\u0002\u0542\u053b\u0003\u0002\u0002\u0002\u0542\u053c\u0003\u0002", - "\u0002\u0002\u0542\u053d\u0003\u0002\u0002\u0002\u0543y\u0003\u0002", - "\u0002\u0002\u0544\u0545\u0007\u001a\u0002\u0002\u0545\u0547\t\u0012", - "\u0002\u0002\u0546\u0548\t\u0013\u0002\u0002\u0547\u0546\u0003\u0002", - "\u0002\u0002\u0547\u0548\u0003\u0002\u0002\u0002\u0548\u054b\u0003\u0002", - "\u0002\u0002\u0549\u054a\u0007\u0017\u0002\u0002\u054a\u054c\u0007J", - "\u0002\u0002\u054b\u0549\u0003\u0002\u0002\u0002\u054b\u054c\u0003\u0002", - "\u0002\u0002\u054c\u054d\u0003\u0002\u0002\u0002\u054d\u054e\u0007\u001b", - "\u0002\u0002\u054e{\u0003\u0002\u0002\u0002\u054f\u0551\u00078\u0002", - "\u0002\u0550\u054f\u0003\u0002\u0002\u0002\u0550\u0551\u0003\u0002\u0002", - "\u0002\u0551\u0552\u0003\u0002\u0002\u0002\u0552\u055b\u0007\u0015\u0002", - "\u0002\u0553\u0554\u0007\u0086\u0002\u0002\u0554\u0555\u0007\u0016\u0002", - "\u0002\u0555\u055b\u0005\u01b8\u00dd\u0002\u0556\u0558\u00078\u0002", - "\u0002\u0557\u0556\u0003\u0002\u0002\u0002\u0557\u0558\u0003\u0002\u0002", - "\u0002\u0558\u0559\u0003\u0002\u0002\u0002\u0559\u055b\t\u0014\u0002", - "\u0002\u055a\u0550\u0003\u0002\u0002\u0002\u055a\u0553\u0003\u0002\u0002", - "\u0002\u055a\u0557\u0003\u0002\u0002\u0002\u055b}\u0003\u0002\u0002", - "\u0002\u055c\u055e\u0007\u0018\u0002\u0002\u055d\u055c\u0003\u0002\u0002", - "\u0002\u055d\u055e\u0003\u0002\u0002\u0002\u055e\u055f\u0003\u0002\u0002", - "\u0002\u055f\u0560\u0007\u0019\u0002\u0002\u0560\u0569\u0005\u0180\u00c1", - "\u0002\u0561\u0563\u0007$\u0002\u0002\u0562\u0561\u0003\u0002\u0002", - "\u0002\u0562\u0563\u0003\u0002\u0002\u0002\u0563\u0564\u0003\u0002\u0002", - "\u0002\u0564\u0566\u0007W\u0002\u0002\u0565\u0567\u0005\u0180\u00c1", - "\u0002\u0566\u0565\u0003\u0002\u0002\u0002\u0566\u0567\u0003\u0002\u0002", - "\u0002\u0567\u0569\u0003\u0002\u0002\u0002\u0568\u055d\u0003\u0002\u0002", - "\u0002\u0568\u0562\u0003\u0002\u0002\u0002\u0569\u007f\u0003\u0002\u0002", - "\u0002\u056a\u056b\u0007=\u0002\u0002\u056b\u056f\t\u0015\u0002\u0002", - "\u056c\u056d\u0007>\u0002\u0002\u056d\u056e\u00078\u0002\u0002\u056e", - "\u0570\u0007?\u0002\u0002\u056f\u056c\u0003\u0002\u0002\u0002\u056f", - "\u0570\u0003\u0002\u0002\u0002\u0570\u0571\u0003\u0002\u0002\u0002\u0571", - "\u0575\u0005\u0180\u00c1\u0002\u0572\u0574\u0005\u0082B\u0002\u0573", - "\u0572\u0003\u0002\u0002\u0002\u0574\u0577\u0003\u0002\u0002\u0002\u0575", - "\u0573\u0003\u0002\u0002\u0002\u0575\u0576\u0003\u0002\u0002\u0002\u0576", - "\u0081\u0003\u0002\u0002\u0002\u0577\u0575\u0003\u0002\u0002\u0002\u0578", - "\u0579\u0007\u0085\u0002\u0002\u0579\u057d\u0005\u0180\u00c1\u0002\u057a", - "\u057b\u0007\u00b9\u0002\u0002\u057b\u057d\u0005\u0180\u00c1\u0002\u057c", - "\u0578\u0003\u0002\u0002\u0002\u057c\u057a\u0003\u0002\u0002\u0002\u057d", - "\u0083\u0003\u0002\u0002\u0002\u057e\u0586\u0007\u0089\u0002\u0002\u057f", - "\u0582\u0007=\u0002\u0002\u0580\u0581\u0007\u00ba\u0002\u0002\u0581", - "\u0583\u0007m\u0002\u0002\u0582\u0580\u0003\u0002\u0002\u0002\u0582", - "\u0583\u0003\u0002\u0002\u0002\u0583\u0586\u0003\u0002\u0002\u0002\u0584", - "\u0586\u0007m\u0002\u0002\u0585\u057e\u0003\u0002\u0002\u0002\u0585", - "\u057f\u0003\u0002\u0002\u0002\u0585\u0584\u0003\u0002\u0002\u0002\u0585", - "\u0586\u0003\u0002\u0002\u0002\u0586\u0587\u0003\u0002\u0002\u0002\u0587", - "\u0588\u0007\u00bb\u0002\u0002\u0588\u058a\u0005\u01b8\u00dd\u0002\u0589", - "\u058b\u0005\u0096L\u0002\u058a\u0589\u0003\u0002\u0002\u0002\u058a", - "\u058b\u0003\u0002\u0002\u0002\u058b\u058c\u0003\u0002\u0002\u0002\u058c", - "\u058e\u0005\u0086D\u0002\u058d\u058f\t\u0016\u0002\u0002\u058e\u058d", - "\u0003\u0002\u0002\u0002\u058e\u058f\u0003\u0002\u0002\u0002\u058f\u0591", - "\u0003\u0002\u0002\u0002\u0590\u0592\u00052\u001a\u0002\u0591\u0590", - "\u0003\u0002\u0002\u0002\u0591\u0592\u0003\u0002\u0002\u0002\u0592\u0593", - "\u0003\u0002\u0002\u0002\u0593\u0594\u0005\b\u0005\u0002\u0594\u0085", - "\u0003\u0002\u0002\u0002\u0595\u0596\t\u0017\u0002\u0002\u0596\u0598", - "\u0005x=\u0002\u0597\u0599\u0005z>\u0002\u0598\u0597\u0003\u0002\u0002", - "\u0002\u0598\u0599\u0003\u0002\u0002\u0002\u0599\u0087\u0003\u0002\u0002", - "\u0002\u059a\u05a2\u0007\u0089\u0002\u0002\u059b\u059e\u0007=\u0002", - "\u0002\u059c\u059d\u0007\u00ba\u0002\u0002\u059d\u059f\u0007m\u0002", - "\u0002\u059e\u059c\u0003\u0002\u0002\u0002\u059e\u059f\u0003\u0002\u0002", - "\u0002\u059f\u05a2\u0003\u0002\u0002\u0002\u05a0\u05a2\u0007m\u0002", - "\u0002\u05a1\u059a\u0003\u0002\u0002\u0002\u05a1\u059b\u0003\u0002\u0002", - "\u0002\u05a1\u05a0\u0003\u0002\u0002\u0002\u05a1\u05a2\u0003\u0002\u0002", - "\u0002\u05a2\u05a3\u0003\u0002\u0002\u0002\u05a3\u05a4\u0007\u00bd\u0002", - "\u0002\u05a4\u05a5\u0005\u01b8\u00dd\u0002\u05a5\u05a6\t\u0016\u0002", - "\u0002\u05a6\u05a7\u0005\u008aF\u0002\u05a7\u05ab\u0007\u0010\u0002", - "\u0002\u05a8\u05a9\u0005\u01b8\u00dd\u0002\u05a9\u05aa\u0007\u000f\u0002", - "\u0002\u05aa\u05ac\u0003\u0002\u0002\u0002\u05ab\u05a8\u0003\u0002\u0002", - "\u0002\u05ab\u05ac\u0003\u0002\u0002\u0002\u05ac\u0089\u0003\u0002\u0002", - "\u0002\u05ad\u05ae\u0005\u008cG\u0002\u05ae\u05b4\u0007\u000f\u0002", - "\u0002\u05af\u05b0\u0005\u008cG\u0002\u05b0\u05b1\u0007\u000f\u0002", - "\u0002\u05b1\u05b3\u0003\u0002\u0002\u0002\u05b2\u05af\u0003\u0002\u0002", - "\u0002\u05b3\u05b6\u0003\u0002\u0002\u0002\u05b4\u05b2\u0003\u0002\u0002", - "\u0002\u05b4\u05b5\u0003\u0002\u0002\u0002\u05b5\u008b\u0003\u0002\u0002", - "\u0002\u05b6\u05b4\u0003\u0002\u0002\u0002\u05b7\u05c5\u00054\u001b", - "\u0002\u05b8\u05b9\u0007\u00bb\u0002\u0002\u05b9\u05bb\u0005\u01b8\u00dd", - "\u0002\u05ba\u05bc\u0005\u0096L\u0002\u05bb\u05ba\u0003\u0002\u0002", - "\u0002\u05bb\u05bc\u0003\u0002\u0002\u0002\u05bc\u05bd\u0003\u0002\u0002", - "\u0002\u05bd\u05be\u0005\u0086D\u0002\u05be\u05c5\u0003\u0002\u0002", - "\u0002\u05bf\u05c0\t\u0018\u0002\u0002\u05c0\u05c2\u0005\u01b8\u00dd", - "\u0002\u05c1\u05c3\u0005\u0096L\u0002\u05c2\u05c1\u0003\u0002\u0002", - "\u0002\u05c2\u05c3\u0003\u0002\u0002\u0002\u05c3\u05c5\u0003\u0002\u0002", - "\u0002\u05c4\u05b7\u0003\u0002\u0002\u0002\u05c4\u05b8\u0003\u0002\u0002", - "\u0002\u05c4\u05bf\u0003\u0002\u0002\u0002\u05c5\u008d\u0003\u0002\u0002", - "\u0002\u05c6\u05ce\u0007\u0089\u0002\u0002\u05c7\u05ca\u0007=\u0002", - "\u0002\u05c8\u05c9\u0007\u00ba\u0002\u0002\u05c9\u05cb\u0007m\u0002", - "\u0002\u05ca\u05c8\u0003\u0002\u0002\u0002\u05ca\u05cb\u0003\u0002\u0002", - "\u0002\u05cb\u05ce\u0003\u0002\u0002\u0002\u05cc\u05ce\u0007m\u0002", - "\u0002\u05cd\u05c6\u0003\u0002\u0002\u0002\u05cd\u05c7\u0003\u0002\u0002", - "\u0002\u05cd\u05cc\u0003\u0002\u0002\u0002\u05cd\u05ce\u0003\u0002\u0002", - "\u0002\u05ce\u05cf\u0003\u0002\u0002\u0002\u05cf\u05d0\u0007\u00bd\u0002", - "\u0002\u05d0\u05d1\u0007\u00bf\u0002\u0002\u05d1\u05d2\u0005\u01b8\u00dd", - "\u0002\u05d2\u05d3\t\u0016\u0002\u0002\u05d3\u05d4\u0005\u0090I\u0002", - "\u05d4\u05d8\u0007\u0010\u0002\u0002\u05d5\u05d6\u0005\u01b8\u00dd\u0002", - "\u05d6\u05d7\u0007\u000f\u0002\u0002\u05d7\u05d9\u0003\u0002\u0002\u0002", - "\u05d8\u05d5\u0003\u0002\u0002\u0002\u05d8\u05d9\u0003\u0002\u0002\u0002", - "\u05d9\u008f\u0003\u0002\u0002\u0002\u05da\u05db\u0005\u0092J\u0002", - "\u05db\u05e1\u0007\u000f\u0002\u0002\u05dc\u05dd\u0005\u0092J\u0002", - "\u05dd\u05de\u0007\u000f\u0002\u0002\u05de\u05e0\u0003\u0002\u0002\u0002", - "\u05df\u05dc\u0003\u0002\u0002\u0002\u05e0\u05e3\u0003\u0002\u0002\u0002", - "\u05e1\u05df\u0003\u0002\u0002\u0002\u05e1\u05e2\u0003\u0002\u0002\u0002", - "\u05e2\u0091\u0003\u0002\u0002\u0002\u05e3\u05e1\u0003\u0002\u0002\u0002", - "\u05e4\u05e8\u00054\u001b\u0002\u05e5\u05e8\u0005\u0084C\u0002\u05e6", - "\u05e8\u0005\u0094K\u0002\u05e7\u05e4\u0003\u0002\u0002\u0002\u05e7", - "\u05e5\u0003\u0002\u0002\u0002\u05e7\u05e6\u0003\u0002\u0002\u0002\u05e8", - "\u0093\u0003\u0002\u0002\u0002\u05e9\u05f1\u0007\u0089\u0002\u0002\u05ea", - "\u05ed\u0007=\u0002\u0002\u05eb\u05ec\u0007\u00ba\u0002\u0002\u05ec", - "\u05ee\u0007m\u0002\u0002\u05ed\u05eb\u0003\u0002\u0002\u0002\u05ed", - "\u05ee\u0003\u0002\u0002\u0002\u05ee\u05f1\u0003\u0002\u0002\u0002\u05ef", - "\u05f1\u0007m\u0002\u0002\u05f0\u05e9\u0003\u0002\u0002\u0002\u05f0", - "\u05ea\u0003\u0002\u0002\u0002\u05f0\u05ef\u0003\u0002\u0002\u0002\u05f0", - "\u05f1\u0003\u0002\u0002\u0002\u05f1\u05f2\u0003\u0002\u0002\u0002\u05f2", - "\u05f3\t\u0018\u0002\u0002\u05f3\u05f5\u0005\u01b8\u00dd\u0002\u05f4", - "\u05f6\u0005\u0096L\u0002\u05f5\u05f4\u0003\u0002\u0002\u0002\u05f5", - "\u05f6\u0003\u0002\u0002\u0002\u05f6\u05f8\u0003\u0002\u0002\u0002\u05f7", - "\u05f9\u0005\u009aN\u0002\u05f8\u05f7\u0003\u0002\u0002\u0002\u05f8", - "\u05f9\u0003\u0002\u0002\u0002\u05f9\u05fb\u0003\u0002\u0002\u0002\u05fa", - "\u05fc\t\u0016\u0002\u0002\u05fb\u05fa\u0003\u0002\u0002\u0002\u05fb", - "\u05fc\u0003\u0002\u0002\u0002\u05fc\u05fe\u0003\u0002\u0002\u0002\u05fd", - "\u05ff\u00052\u001a\u0002\u05fe\u05fd\u0003\u0002\u0002\u0002\u05fe", - "\u05ff\u0003\u0002\u0002\u0002\u05ff\u0601\u0003\u0002\u0002\u0002\u0600", - "\u0602\u0005\u0116\u008c\u0002\u0601\u0600\u0003\u0002\u0002\u0002\u0601", - "\u0602\u0003\u0002\u0002\u0002\u0602\u0603\u0003\u0002\u0002\u0002\u0603", - "\u0607\u0005\f\u0007\u0002\u0604\u0605\u0005\u01b8\u00dd\u0002\u0605", - "\u0606\u0007\u000f\u0002\u0002\u0606\u0608\u0003\u0002\u0002\u0002\u0607", - "\u0604\u0003\u0002\u0002\u0002\u0607\u0608\u0003\u0002\u0002\u0002\u0608", - "\u0095\u0003\u0002\u0002\u0002\u0609\u060a\u0007\u001a\u0002\u0002\u060a", - "\u0620\u0007\u001b\u0002\u0002\u060b\u060c\u0007\u001a\u0002\u0002\u060c", - "\u0611\u0005\u0098M\u0002\u060d\u060e\u0007\u0017\u0002\u0002\u060e", - "\u0610\u0005\u0098M\u0002\u060f\u060d\u0003\u0002\u0002\u0002\u0610", - "\u0613\u0003\u0002\u0002\u0002\u0611\u060f\u0003\u0002\u0002\u0002\u0611", - "\u0612\u0003\u0002\u0002\u0002\u0612\u0614\u0003\u0002\u0002\u0002\u0613", - "\u0611\u0003\u0002\u0002\u0002\u0614\u0615\u0007\u001b\u0002\u0002\u0615", - "\u0620\u0003\u0002\u0002\u0002\u0616\u0617\u0006L\u0004\u0002\u0617", - "\u061c\u0005\u0098M\u0002\u0618\u0619\u0007\u0017\u0002\u0002\u0619", - "\u061b\u0005\u0098M\u0002\u061a\u0618\u0003\u0002\u0002\u0002\u061b", - "\u061e\u0003\u0002\u0002\u0002\u061c\u061a\u0003\u0002\u0002\u0002\u061c", - "\u061d\u0003\u0002\u0002\u0002\u061d\u0620\u0003\u0002\u0002\u0002\u061e", - "\u061c\u0003\u0002\u0002\u0002\u061f\u0609\u0003\u0002\u0002\u0002\u061f", - "\u060b\u0003\u0002\u0002\u0002\u061f\u0616\u0003\u0002\u0002\u0002\u0620", - "\u0097\u0003\u0002\u0002\u0002\u0621\u0627\u0007l\u0002\u0002\u0622", - "\u0627\u0007\u00c0\u0002\u0002\u0623\u0627\u0007\u00c1\u0002\u0002\u0624", - "\u0625\u0007l\u0002\u0002\u0625\u0627\u0007\u00c0\u0002\u0002\u0626", - "\u0621\u0003\u0002\u0002\u0002\u0626\u0622\u0003\u0002\u0002\u0002\u0626", - "\u0623\u0003\u0002\u0002\u0002\u0626\u0624\u0003\u0002\u0002\u0002\u0626", - "\u0627\u0003\u0002\u0002\u0002\u0627\u0628\u0003\u0002\u0002\u0002\u0628", - "\u0629\u0005\u01b8\u00dd\u0002\u0629\u062b\u0005x=\u0002\u062a\u062c", - "\u0005z>\u0002\u062b\u062a\u0003\u0002\u0002\u0002\u062b\u062c\u0003", - "\u0002\u0002\u0002\u062c\u0630\u0003\u0002\u0002\u0002\u062d\u062f\u0005", - "|?\u0002\u062e\u062d\u0003\u0002\u0002\u0002\u062f\u0632\u0003\u0002", - "\u0002\u0002\u0630\u062e\u0003\u0002\u0002\u0002\u0630\u0631\u0003\u0002", - "\u0002\u0002\u0631\u0634\u0003\u0002\u0002\u0002\u0632\u0630\u0003\u0002", - "\u0002\u0002\u0633\u0635\u0005~@\u0002\u0634\u0633\u0003\u0002\u0002", - "\u0002\u0634\u0635\u0003\u0002\u0002\u0002\u0635\u064c\u0003\u0002\u0002", - "\u0002\u0636\u063c\u0005\u01b8\u00dd\u0002\u0637\u063d\u0007l\u0002", - "\u0002\u0638\u063d\u0007\u00c0\u0002\u0002\u0639\u063d\u0007\u00c1\u0002", - "\u0002\u063a\u063b\u0007l\u0002\u0002\u063b\u063d\u0007\u00c0\u0002", - "\u0002\u063c\u0637\u0003\u0002\u0002\u0002\u063c\u0638\u0003\u0002\u0002", - "\u0002\u063c\u0639\u0003\u0002\u0002\u0002\u063c\u063a\u0003\u0002\u0002", - "\u0002\u063c\u063d\u0003\u0002\u0002\u0002\u063d\u063e\u0003\u0002\u0002", - "\u0002\u063e\u0640\u0005x=\u0002\u063f\u0641\u0005z>\u0002\u0640\u063f", - "\u0003\u0002\u0002\u0002\u0640\u0641\u0003\u0002\u0002\u0002\u0641\u0645", - "\u0003\u0002\u0002\u0002\u0642\u0644\u0005|?\u0002\u0643\u0642\u0003", - "\u0002\u0002\u0002\u0644\u0647\u0003\u0002\u0002\u0002\u0645\u0643\u0003", - "\u0002\u0002\u0002\u0645\u0646\u0003\u0002\u0002\u0002\u0646\u0649\u0003", - "\u0002\u0002\u0002\u0647\u0645\u0003\u0002\u0002\u0002\u0648\u064a\u0005", - "~@\u0002\u0649\u0648\u0003\u0002\u0002\u0002\u0649\u064a\u0003\u0002", - "\u0002\u0002\u064a\u064c\u0003\u0002\u0002\u0002\u064b\u0626\u0003\u0002", - "\u0002\u0002\u064b\u0636\u0003\u0002\u0002\u0002\u064c\u0099\u0003\u0002", - "\u0002\u0002\u064d\u064f\u0005\u009cO\u0002\u064e\u064d\u0003\u0002", - "\u0002\u0002\u064f\u0650\u0003\u0002\u0002\u0002\u0650\u064e\u0003\u0002", - "\u0002\u0002\u0650\u0651\u0003\u0002\u0002\u0002\u0651\u009b\u0003\u0002", - "\u0002\u0002\u0652\u0653\u0007\u00c2\u0002\u0002\u0653\u065e\u0007\u00c3", - "\u0002\u0002\u0654\u0655\u0007\u00c3\u0002\u0002\u0655\u0656\u0007\u00c4", - "\u0002\u0002\u0656\u065e\t\u0019\u0002\u0002\u0657\u0659\u0007\u00c9", - "\u0002\u0002\u0658\u0657\u0003\u0002\u0002\u0002\u0658\u0659\u0003\u0002", - "\u0002\u0002\u0659\u065a\u0003\u0002\u0002\u0002\u065a\u065b\u0007\u001f", - "\u0002\u0002\u065b\u065c\u0007\u00ca\u0002\u0002\u065c\u065e\u0007J", - "\u0002\u0002\u065d\u0652\u0003\u0002\u0002\u0002\u065d\u0654\u0003\u0002", - "\u0002\u0002\u065d\u0658\u0003\u0002\u0002\u0002\u065e\u009d\u0003\u0002", - "\u0002\u0002\u065f\u0660\u0007u\u0002\u0002\u0660\u0663\u0007<\u0002", - "\u0002\u0661\u0662\u0007>\u0002\u0002\u0662\u0664\u0007?\u0002\u0002", - "\u0663\u0661\u0003\u0002\u0002\u0002\u0663\u0664\u0003\u0002\u0002\u0002", - "\u0664\u0665\u0003\u0002\u0002\u0002\u0665\u066e\u0005\u014a\u00a6\u0002", - "\u0666\u0667\u0007u\u0002\u0002\u0667\u066a\t\u0015\u0002\u0002\u0668", - "\u0669\u0007>\u0002\u0002\u0669\u066b\u0007?\u0002\u0002\u066a\u0668", - "\u0003\u0002\u0002\u0002\u066a\u066b\u0003\u0002\u0002\u0002\u066b\u066c", - "\u0003\u0002\u0002\u0002\u066c\u066e\u0005\u0180\u00c1\u0002\u066d\u065f", - "\u0003\u0002\u0002\u0002\u066d\u0666\u0003\u0002\u0002\u0002\u066e\u009f", - "\u0003\u0002\u0002\u0002\u066f\u0670\u0007\u0010\u0002\u0002\u0670\u0671", - "\u0007%\u0002\u0002\u0671\u00a1\u0003\u0002\u0002\u0002\u0672\u0674", - "\t\u001a\u0002\u0002\u0673\u0675\u0007`\u0002\u0002\u0674\u0673\u0003", - "\u0002\u0002\u0002\u0674\u0675\u0003\u0002\u0002\u0002\u0675\u0676\u0003", - "\u0002\u0002\u0002\u0676\u067c\u0005\u0180\u00c1\u0002\u0677\u0678\u0007", - "\u001a\u0002\u0002\u0678\u0679\u0005\u01a0\u00d1\u0002\u0679\u067a\u0007", - "\u001b\u0002\u0002\u067a\u067d\u0003\u0002\u0002\u0002\u067b\u067d\u0005", - "\u01a0\u00d1\u0002\u067c\u0677\u0003\u0002\u0002\u0002\u067c\u067b\u0003", - "\u0002\u0002\u0002\u067c\u067d\u0003\u0002\u0002\u0002\u067d\u0687\u0003", - "\u0002\u0002\u0002\u067e\u067f\u0007\u00cd\u0002\u0002\u067f\u0684\u0007", - "\u0013\u0002\u0002\u0680\u0681\u0007\u0017\u0002\u0002\u0681\u0683\u0007", - "\u0013\u0002\u0002\u0682\u0680\u0003\u0002\u0002\u0002\u0683\u0686\u0003", - "\u0002\u0002\u0002\u0684\u0682\u0003\u0002\u0002\u0002\u0684\u0685\u0003", - "\u0002\u0002\u0002\u0685\u0688\u0003\u0002\u0002\u0002\u0686\u0684\u0003", - "\u0002\u0002\u0002\u0687\u067e\u0003\u0002\u0002\u0002\u0687\u0688\u0003", - "\u0002\u0002\u0002\u0688\u068a\u0003\u0002\u0002\u0002\u0689\u068b\u0005", - "\u0118\u008d\u0002\u068a\u0689\u0003\u0002\u0002\u0002\u068a\u068b\u0003", - "\u0002\u0002\u0002\u068b\u00a3\u0003\u0002\u0002\u0002\u068c\u0690\u0005", - "\u00a6T\u0002\u068d\u0690\u0005\u00a8U\u0002\u068e\u0690\u0005\u00aa", - "V\u0002\u068f\u068c\u0003\u0002\u0002\u0002\u068f\u068d\u0003\u0002", - "\u0002\u0002\u068f\u068e\u0003\u0002\u0002\u0002\u0690\u00a5\u0003\u0002", - "\u0002\u0002\u0691\u0692\u0007>\u0002\u0002\u0692\u0693\u0005\u0170", - "\u00b9\u0002\u0693\u0694\u0007\u0014\u0002\u0002\u0694\u0698\u0005\u0004", - "\u0003\u0002\u0695\u0697\u0005\u00acW\u0002\u0696\u0695\u0003\u0002", - "\u0002\u0002\u0697\u069a\u0003\u0002\u0002\u0002\u0698\u0696\u0003\u0002", - "\u0002\u0002\u0698\u0699\u0003\u0002\u0002\u0002\u0699\u069c\u0003\u0002", - "\u0002\u0002\u069a\u0698\u0003\u0002\u0002\u0002\u069b\u069d\u0005\u00ae", - "X\u0002\u069c\u069b\u0003\u0002\u0002\u0002\u069c\u069d\u0003\u0002", - "\u0002\u0002\u069d\u069e\u0003\u0002\u0002\u0002\u069e\u069f\u0007\u0010", - "\u0002\u0002\u069f\u06a0\u0007>\u0002\u0002\u06a0\u00a7\u0003\u0002", - "\u0002\u0002\u06a1\u06a2\u0007>\u0002\u0002\u06a2\u06a3\u0005\u0170", - "\u00b9\u0002\u06a3\u06a6\u0005\b\u0005\u0002\u06a4\u06a5\u0007\u00ce", - "\u0002\u0002\u06a5\u06a7\u0005\b\u0005\u0002\u06a6\u06a4\u0003\u0002", - "\u0002\u0002\u06a6\u06a7\u0003\u0002\u0002\u0002\u06a7\u00a9\u0003\u0002", - "\u0002\u0002\u06a8\u06a9\u0007\u0007\u0002\u0002\u06a9\u06aa\u0007>", - "\u0002\u0002\u06aa\u06ab\u0005\u0170\u00b9\u0002\u06ab\u06ac\u0007\u0014", - "\u0002\u0002\u06ac\u06ad\u0005\b\u0005\u0002\u06ad\u00ab\u0003\u0002", - "\u0002\u0002\u06ae\u06af\t\u001b\u0002\u0002\u06af\u06b0\u0005\u0170", - "\u00b9\u0002\u06b0\u06b1\u0007\u0014\u0002\u0002\u06b1\u06b2\u0005\u0004", - "\u0003\u0002\u06b2\u00ad\u0003\u0002\u0002\u0002\u06b3\u06b4\u0007\u00ce", - "\u0002\u0002\u06b4\u06b5\u0005\u0004\u0003\u0002\u06b5\u00af\u0003\u0002", - "\u0002\u0002\u06b6\u06b9\u0007\u00d1\u0002\u0002\u06b7\u06ba\u0005\u01b2", - "\u00da\u0002\u06b8\u06ba\u0005\u0180\u00c1\u0002\u06b9\u06b7\u0003\u0002", - "\u0002\u0002\u06b9\u06b8\u0003\u0002\u0002\u0002\u06ba\u00b1\u0003\u0002", - "\u0002\u0002\u06bb\u06c2\u0007\u00d2\u0002\u0002\u06bc\u06bd\u0007\u00d3", - "\u0002\u0002\u06bd\u06c3\u0007<\u0002\u0002\u06be\u06c0\u0007\u00cd", - "\u0002\u0002\u06bf\u06c1\u0007<\u0002\u0002\u06c0\u06bf\u0003\u0002", - "\u0002\u0002\u06c0\u06c1\u0003\u0002\u0002\u0002\u06c1\u06c3\u0003\u0002", - "\u0002\u0002\u06c2\u06bc\u0003\u0002\u0002\u0002\u06c2\u06be\u0003\u0002", - "\u0002\u0002\u06c3\u06c4\u0003\u0002\u0002\u0002\u06c4\u06c6\u0005\u014a", - "\u00a6\u0002\u06c5\u06c7\u0005\u00b4[\u0002\u06c6\u06c5\u0003\u0002", - "\u0002\u0002\u06c6\u06c7\u0003\u0002\u0002\u0002\u06c7\u06ca\u0003\u0002", - "\u0002\u0002\u06c8\u06cb\u0005\u011a\u008e\u0002\u06c9\u06cb\u0005\u00b6", - "\\\u0002\u06ca\u06c8\u0003\u0002\u0002\u0002\u06ca\u06c9\u0003\u0002", - "\u0002\u0002\u06cb\u00b3\u0003\u0002\u0002\u0002\u06cc\u06cd\u0007\u001a", - "\u0002\u0002\u06cd\u06d2\u0005\u01b8\u00dd\u0002\u06ce\u06cf\u0007\u0017", - "\u0002\u0002\u06cf\u06d1\u0005\u01b8\u00dd\u0002\u06d0\u06ce\u0003\u0002", - "\u0002\u0002\u06d1\u06d4\u0003\u0002\u0002\u0002\u06d2\u06d0\u0003\u0002", - "\u0002\u0002\u06d2\u06d3\u0003\u0002\u0002\u0002\u06d3\u06d5\u0003\u0002", - "\u0002\u0002\u06d4\u06d2\u0003\u0002\u0002\u0002\u06d5\u06d6\u0007\u001b", - "\u0002\u0002\u06d6\u00b5\u0003\u0002\u0002\u0002\u06d7\u06d8\u0007\u00d4", - "\u0002\u0002\u06d8\u06dd\u0005\u00b8]\u0002\u06d9\u06da\u0007\u0017", - "\u0002\u0002\u06da\u06dc\u0005\u00b8]\u0002\u06db\u06d9\u0003\u0002", - "\u0002\u0002\u06dc\u06df\u0003\u0002\u0002\u0002\u06dd\u06db\u0003\u0002", - "\u0002\u0002\u06dd\u06de\u0003\u0002\u0002\u0002\u06de\u00b7\u0003\u0002", - "\u0002\u0002\u06df\u06dd\u0003\u0002\u0002\u0002\u06e0\u06e1\u0007\u001a", - "\u0002\u0002\u06e1\u06e6\u0005\u0180\u00c1\u0002\u06e2\u06e3\u0007\u0017", - "\u0002\u0002\u06e3\u06e5\u0005\u0180\u00c1\u0002\u06e4\u06e2\u0003\u0002", - "\u0002\u0002\u06e5\u06e8\u0003\u0002\u0002\u0002\u06e6\u06e4\u0003\u0002", - "\u0002\u0002\u06e6\u06e7\u0003\u0002\u0002\u0002\u06e7\u06e9\u0003\u0002", - "\u0002\u0002\u06e8\u06e6\u0003\u0002\u0002\u0002\u06e9\u06ea\u0007\u001b", - "\u0002\u0002\u06ea\u00b9\u0003\u0002\u0002\u0002\u06eb\u06ec\u0007\u00d2", - "\u0002\u0002\u06ec\u06ee\u0007\u00d3\u0002\u0002\u06ed\u06ef\u0007@", - "\u0002\u0002\u06ee\u06ed\u0003\u0002\u0002\u0002\u06ee\u06ef\u0003\u0002", - "\u0002\u0002\u06ef\u06f0\u0003\u0002\u0002\u0002\u06f0\u06f1\u0007\u00d5", - "\u0002\u0002\u06f1\u06f2\u0005\u01a6\u00d4\u0002\u06f2\u06f3\u0005\u01a4", - "\u00d3\u0002\u06f3\u00bb\u0003\u0002\u0002\u0002\u06f4\u06f6\u00074", - "\u0002\u0002\u06f5\u06f7\u0007\u0013\u0002\u0002\u06f6\u06f5\u0003\u0002", - "\u0002\u0002\u06f6\u06f7\u0003\u0002\u0002\u0002\u06f7\u06fa\u0003\u0002", - "\u0002\u0002\u06f8\u06f9\u0007\u0012\u0002\u0002\u06f9\u06fb\u0005\u0170", - "\u00b9\u0002\u06fa\u06f8\u0003\u0002\u0002\u0002\u06fa\u06fb\u0003\u0002", - "\u0002\u0002\u06fb\u00bd\u0003\u0002\u0002\u0002\u06fc\u06fd\u0007\u00d6", - "\u0002\u0002\u06fd\u06fe\u0007\u00d7\u0002\u0002\u06fe\u06ff\u0005\u00c0", - "a\u0002\u06ff\u00bf\u0003\u0002\u0002\u0002\u0700\u0703\u0005\u00c2", - "b\u0002\u0701\u0703\u0005\u00c4c\u0002\u0702\u0700\u0003\u0002\u0002", - "\u0002\u0702\u0701\u0003\u0002\u0002\u0002\u0703\u00c1\u0003\u0002\u0002", - "\u0002\u0704\u0705\u0007\u0011\u0002\u0002\u0705\u0706\u0007J\u0002", - "\u0002\u0706\u0707\u0005\u01b8\u00dd\u0002\u0707\u0708\u0007\u0019\u0002", - "\u0002\u0708\u0709\u0007\u00d8\u0002\u0002\u0709\u00c3\u0003\u0002\u0002", - "\u0002\u070a\u070b\u0005\u01b8\u00dd\u0002\u070b\u070c\u0007\u0019\u0002", - "\u0002\u070c\u070d\u0007\u00d9\u0002\u0002\u070d\u00c5\u0003\u0002\u0002", - "\u0002\u070e\u070f\u0007\u00da\u0002\u0002\u070f\u0714\u0005\u00c8e", - "\u0002\u0710\u0711\u0007\u0017\u0002\u0002\u0711\u0713\u0005\u00c8e", - "\u0002\u0712\u0710\u0003\u0002\u0002\u0002\u0713\u0716\u0003\u0002\u0002", - "\u0002\u0714\u0712\u0003\u0002\u0002\u0002\u0714\u0715\u0003\u0002\u0002", - "\u0002\u0715\u0717\u0003\u0002\u0002\u0002\u0716\u0714\u0003\u0002\u0002", - "\u0002\u0717\u0718\u0007/\u0002\u0002\u0718\u0719\u0007\u00db\u0002", - "\u0002\u0719\u071a\u0005\u01b8\u00dd\u0002\u071a\u00c7\u0003\u0002\u0002", - "\u0002\u071b\u071c\u0007\u00cc\u0002\u0002\u071c\u071d\u0007Q\u0002", - "\u0002\u071d\u071e\u0007 \u0002\u0002\u071e\u071f\u0005\u01b8\u00dd", - "\u0002\u071f\u00c9\u0003\u0002\u0002\u0002\u0720\u0722\u0007\u00dc\u0002", - "\u0002\u0721\u0723\u0007\u0013\u0002\u0002\u0722\u0721\u0003\u0002\u0002", - "\u0002\u0722\u0723\u0003\u0002\u0002\u0002\u0723\u00cb\u0003\u0002\u0002", - "\u0002\u0724\u0725\u0007\u0080\u0002\u0002\u0725\u0726\u0007\u00dd\u0002", - "\u0002\u0726\u0729\u0005\u0180\u00c1\u0002\u0727\u0728\u0007/\u0002", - "\u0002\u0728\u072a\u0005\u0180\u00c1\u0002\u0729\u0727\u0003\u0002\u0002", - "\u0002\u0729\u072a\u0003\u0002\u0002\u0002\u072a\u072d\u0003\u0002\u0002", - "\u0002\u072b\u072c\u0007\u00de\u0002\u0002\u072c\u072e\u0005\u0180\u00c1", - "\u0002\u072d\u072b\u0003\u0002\u0002\u0002\u072d\u072e\u0003\u0002\u0002", - "\u0002\u072e\u00cd\u0003\u0002\u0002\u0002\u072f\u0730\u0007\u00df\u0002", - "\u0002\u0730\u0736\u0007\u0013\u0002\u0002\u0731\u0734\u0007\u001e\u0002", - "\u0002\u0732\u0735\u0005\u011a\u008e\u0002\u0733\u0735\u0005\u0180\u00c1", - "\u0002\u0734\u0732\u0003\u0002\u0002\u0002\u0734\u0733\u0003\u0002\u0002", - "\u0002\u0735\u0737\u0003\u0002\u0002\u0002\u0736\u0731\u0003\u0002\u0002", - "\u0002\u0736\u0737\u0003\u0002\u0002\u0002\u0737\u00cf\u0003\u0002\u0002", - "\u0002\u0738\u073a\u0007\u00e0\u0002\u0002\u0739\u073b\u0007\u00e1\u0002", - "\u0002\u073a\u0739\u0003\u0002\u0002\u0002\u073a\u073b\u0003\u0002\u0002", - "\u0002\u073b\u073c\u0003\u0002\u0002\u0002\u073c\u073d\u0007\u0013\u0002", - "\u0002\u073d\u073e\u0007\u00cd\u0002\u0002\u073e\u0743\u0007\u0013\u0002", - "\u0002\u073f\u0740\u0007\u0017\u0002\u0002\u0740\u0742\u0007\u0013\u0002", - "\u0002\u0741\u073f\u0003\u0002\u0002\u0002\u0742\u0745\u0003\u0002\u0002", - "\u0002\u0743\u0741\u0003\u0002\u0002\u0002\u0743\u0744\u0003\u0002\u0002", - "\u0002\u0744\u00d1\u0003\u0002\u0002\u0002\u0745\u0743\u0003\u0002\u0002", - "\u0002\u0746\u0747\u0007\u00e2\u0002\u0002\u0747\u0748\t\u001c\u0002", - "\u0002\u0748\u0749\u0007Q\u0002\u0002\u0749\u074b\u0005\u014a\u00a6", - "\u0002\u074a\u074c\u0005\u00d4k\u0002\u074b\u074a\u0003\u0002\u0002", - "\u0002\u074b\u074c\u0003\u0002\u0002\u0002\u074c\u00d3\u0003\u0002\u0002", - "\u0002\u074d\u074e\u0007\u00e5\u0002\u0002\u074e\u074f\u0007\u001a\u0002", - "\u0002\u074f\u0754\u0005\u01b8\u00dd\u0002\u0750\u0751\u0007\u0017\u0002", - "\u0002\u0751\u0753\u0005\u01b8\u00dd\u0002\u0752\u0750\u0003\u0002\u0002", - "\u0002\u0753\u0756\u0003\u0002\u0002\u0002\u0754\u0752\u0003\u0002\u0002", - "\u0002\u0754\u0755\u0003\u0002\u0002\u0002\u0755\u0757\u0003\u0002\u0002", - "\u0002\u0756\u0754\u0003\u0002\u0002\u0002\u0757\u0758\u0007\u001b\u0002", - "\u0002\u0758\u00d5\u0003\u0002\u0002\u0002\u0759\u075a\u0007\u00e6\u0002", - "\u0002\u075a\u075b\u0007\u0013\u0002\u0002\u075b\u00d7\u0003\u0002\u0002", - "\u0002\u075c\u075d\u0007\u00e7\u0002\u0002\u075d\u075e\t\u001d\u0002", - "\u0002\u075e\u075f\u0005\u00dan\u0002\u075f\u0760\u0007\u0017\u0002", - "\u0002\u0760\u0761\u0005\u00dan\u0002\u0761\u00d9\u0003\u0002\u0002", - "\u0002\u0762\u0764\u0005\u014a\u00a6\u0002\u0763\u0765\u0005\u014c\u00a7", - "\u0002\u0764\u0763\u0003\u0002\u0002\u0002\u0764\u0765\u0003\u0002\u0002", - "\u0002\u0765\u076b\u0003\u0002\u0002\u0002\u0766\u0767\u0007\u001a\u0002", - "\u0002\u0767\u0768\u0005\u011a\u008e\u0002\u0768\u0769\u0007\u001b\u0002", - "\u0002\u0769\u076b\u0003\u0002\u0002\u0002\u076a\u0762\u0003\u0002\u0002", - "\u0002\u076a\u0766\u0003\u0002\u0002\u0002\u076b\u076e\u0003\u0002\u0002", - "\u0002\u076c\u076d\u0007\u00de\u0002\u0002\u076d\u076f\u0005\u01b8\u00dd", - "\u0002\u076e\u076c\u0003\u0002\u0002\u0002\u076e\u076f\u0003\u0002\u0002", - "\u0002\u076f\u00db\u0003\u0002\u0002\u0002\u0770\u0771\u0007\u00e9\u0002", - "\u0002\u0771\u0772\u0007\u00e1\u0002\u0002\u0772\u0773\u0007@\u0002", - "\u0002\u0773\u0778\u0005\u00e0q\u0002\u0774\u0775\u0007\u0017\u0002", - "\u0002\u0775\u0777\u0005\u00e0q\u0002\u0776\u0774\u0003\u0002\u0002", - "\u0002\u0777\u077a\u0003\u0002\u0002\u0002\u0778\u0776\u0003\u0002\u0002", - "\u0002\u0778\u0779\u0003\u0002\u0002\u0002\u0779\u077b\u0003\u0002\u0002", - "\u0002\u077a\u0778\u0003\u0002\u0002\u0002\u077b\u077c\u0007/\u0002", - "\u0002\u077c\u0780\u0005\u00e2r\u0002\u077d\u077f\u0005\u00e6t\u0002", - "\u077e\u077d\u0003\u0002\u0002\u0002\u077f\u0782\u0003\u0002\u0002\u0002", - "\u0780\u077e\u0003\u0002\u0002\u0002\u0780\u0781\u0003\u0002\u0002\u0002", - "\u0781\u00dd\u0003\u0002\u0002\u0002\u0782\u0780\u0003\u0002\u0002\u0002", - "\u0783\u0789\u0007\u00e9\u0002\u0002\u0784\u078a\u0005\u014a\u00a6\u0002", - "\u0785\u0786\u0007\u001a\u0002\u0002\u0786\u0787\u0005\u011a\u008e\u0002", - "\u0787\u0788\u0007\u001b\u0002\u0002\u0788\u078a\u0003\u0002\u0002\u0002", - "\u0789\u0784\u0003\u0002\u0002\u0002\u0789\u0785\u0003\u0002\u0002\u0002", - "\u078a\u078b\u0003\u0002\u0002\u0002\u078b\u078d\u0007/\u0002\u0002", - "\u078c\u078e\u0007\u00ea\u0002\u0002\u078d\u078c\u0003\u0002\u0002\u0002", - "\u078d\u078e\u0003\u0002\u0002\u0002\u078e\u078f\u0003\u0002\u0002\u0002", - "\u078f\u0793\u0005\u00e2r\u0002\u0790\u0792\u0005\u00e4s\u0002\u0791", - "\u0790\u0003\u0002\u0002\u0002\u0792\u0795\u0003\u0002\u0002\u0002\u0793", - "\u0791\u0003\u0002\u0002\u0002\u0793\u0794\u0003\u0002\u0002\u0002\u0794", - "\u00df\u0003\u0002\u0002\u0002\u0795\u0793\u0003\u0002\u0002\u0002\u0796", - "\u0799\u0005\u01b2\u00da\u0002\u0797\u0799\u0005\u0180\u00c1\u0002\u0798", - "\u0796\u0003\u0002\u0002\u0002\u0798\u0797\u0003\u0002\u0002\u0002\u0799", - "\u00e1\u0003\u0002\u0002\u0002\u079a\u079d\u0005\u01b2\u00da\u0002\u079b", - "\u079d\u0005\u0180\u00c1\u0002\u079c\u079a\u0003\u0002\u0002\u0002\u079c", - "\u079b\u0003\u0002\u0002\u0002\u079d\u00e3\u0003\u0002\u0002\u0002\u079e", - "\u079f\u0007\u00de\u0002\u0002\u079f\u07a7\u0005\u01b8\u00dd\u0002\u07a0", - "\u07a1\u0007\u00eb\u0002\u0002\u07a1\u07a7\u0005\u0180\u00c1\u0002\u07a2", - "\u07a3\u0007\u00ec\u0002\u0002\u07a3\u07a7\u0005\u0180\u00c1\u0002\u07a4", - "\u07a5\u0007\u00ed\u0002\u0002\u07a5\u07a7\u0005\u01b8\u00dd\u0002\u07a6", - "\u079e\u0003\u0002\u0002\u0002\u07a6\u07a0\u0003\u0002\u0002\u0002\u07a6", - "\u07a2\u0003\u0002\u0002\u0002\u07a6\u07a4\u0003\u0002\u0002\u0002\u07a7", - "\u00e5\u0003\u0002\u0002\u0002\u07a8\u07a9\t\u001e\u0002\u0002\u07a9", - "\u00e7\u0003\u0002\u0002\u0002\u07aa\u07ac\u0007[\u0002\u0002\u07ab", - "\u07ad\u0007\u00ef\u0002\u0002\u07ac\u07ab\u0003\u0002\u0002\u0002\u07ac", - "\u07ad\u0003\u0002\u0002\u0002\u07ad\u00e9\u0003\u0002\u0002\u0002\u07ae", - "\u07b0\u0007=\u0002\u0002\u07af\u07b1\u0007G\u0002\u0002\u07b0\u07af", - "\u0003\u0002\u0002\u0002\u07b0\u07b1\u0003\u0002\u0002\u0002\u07b1\u07b2", - "\u0003\u0002\u0002\u0002\u07b2\u07b3\u0007k\u0002\u0002\u07b3\u07b4", - "\u0005\u01b8\u00dd\u0002\u07b4\u07b5\u0007Q\u0002\u0002\u07b5\u07b6", - "\u0005\u014a\u00a6\u0002\u07b6\u07b7\u0007\u001a\u0002\u0002\u07b7\u07bc", - "\u0005\u00ecw\u0002\u07b8\u07b9\u0007\u0017\u0002\u0002\u07b9\u07bb", - "\u0005\u00ecw\u0002\u07ba\u07b8\u0003\u0002\u0002\u0002\u07bb\u07be", - "\u0003\u0002\u0002\u0002\u07bc\u07ba\u0003\u0002\u0002\u0002\u07bc\u07bd", - "\u0003\u0002\u0002\u0002\u07bd\u07bf\u0003\u0002\u0002\u0002\u07be\u07bc", - "\u0003\u0002\u0002\u0002\u07bf\u07c0\u0007\u001b\u0002\u0002\u07c0\u00eb", - "\u0003\u0002\u0002\u0002\u07c1\u07c3\u0005\u01b8\u00dd\u0002\u07c2\u07c4", - "\t\t\u0002\u0002\u07c3\u07c2\u0003\u0002\u0002\u0002\u07c3\u07c4\u0003", - "\u0002\u0002\u0002\u07c4\u00ed\u0003\u0002\u0002\u0002\u07c5\u07c6\u0005", - "\u00f0y\u0002\u07c6\u00ef\u0003\u0002\u0002\u0002\u07c7\u07c8\u0007", - "$\u0002\u0002\u07c8\u07c9\u0007\u001a\u0002\u0002\u07c9\u07ca\u0005", - "\u01b8\u00dd\u0002\u07ca\u07cb\u0007\u0019\u0002\u0002\u07cb\u07d3\u0005", - "\u01b8\u00dd\u0002\u07cc\u07cd\u0007\u0017\u0002\u0002\u07cd\u07ce\u0005", - "\u01b8\u00dd\u0002\u07ce\u07cf\u0007\u0019\u0002\u0002\u07cf\u07d0\u0005", - "\u01b8\u00dd\u0002\u07d0\u07d2\u0003\u0002\u0002\u0002\u07d1\u07cc\u0003", - "\u0002\u0002\u0002\u07d2\u07d5\u0003\u0002\u0002\u0002\u07d3\u07d1\u0003", - "\u0002\u0002\u0002\u07d3\u07d4\u0003\u0002\u0002\u0002\u07d4\u07d6\u0003", - "\u0002\u0002\u0002\u07d5\u07d3\u0003\u0002\u0002\u0002\u07d6\u07da\u0007", - "\u001b\u0002\u0002\u07d7\u07d9\u0005l7\u0002\u07d8\u07d7\u0003\u0002", - "\u0002\u0002\u07d9\u07dc\u0003\u0002\u0002\u0002\u07da\u07d8\u0003\u0002", - "\u0002\u0002\u07da\u07db\u0003\u0002\u0002\u0002\u07db\u00f1\u0003\u0002", - "\u0002\u0002\u07dc\u07da\u0003\u0002\u0002\u0002\u07dd\u07de\u0007\u00f0", - "\u0002\u0002\u07de\u07e5\u0005\u0180\u00c1\u0002\u07df\u07e0\u0007\u00f0", - "\u0002\u0002\u07e0\u07e1\u0007\u001a\u0002\u0002\u07e1\u07e2\u0005\u0180", - "\u00c1\u0002\u07e2\u07e3\u0007\u001b\u0002\u0002\u07e3\u07e5\u0003\u0002", - "\u0002\u0002\u07e4\u07dd\u0003\u0002\u0002\u0002\u07e4\u07df\u0003\u0002", - "\u0002\u0002\u07e5\u00f3\u0003\u0002\u0002\u0002\u07e6\u07e8\u0007\u0007", - "\u0002\u0002\u07e7\u07e6\u0003\u0002\u0002\u0002\u07e7\u07e8\u0003\u0002", - "\u0002\u0002\u07e8\u07e9\u0003\u0002\u0002\u0002\u07e9\u07eb\u0007\u00f1", - "\u0002\u0002\u07ea\u07ec\u0005\u0180\u00c1\u0002\u07eb\u07ea\u0003\u0002", - "\u0002\u0002\u07eb\u07ec\u0003\u0002\u0002\u0002\u07ec\u00f5\u0003\u0002", - "\u0002\u0002\u07ed\u07ee\u0007\u00f2\u0002\u0002\u07ee\u00f7\u0003\u0002", - "\u0002\u0002\u07ef\u07fb\u0007\u00f3\u0002\u0002\u07f0\u07f2\u0007\u00f4", - "\u0002\u0002\u07f1\u07f3\u0007\u00f5\u0002\u0002\u07f2\u07f1\u0003\u0002", - "\u0002\u0002\u07f2\u07f3\u0003\u0002\u0002\u0002\u07f3\u07f4\u0003\u0002", - "\u0002\u0002\u07f4\u07f9\u0005\u0180\u00c1\u0002\u07f5\u07f6\u0007\u0016", - "\u0002\u0002\u07f6\u07f7\u0007\u00d8\u0002\u0002\u07f7\u07f8\u0007\u0019", - "\u0002\u0002\u07f8\u07fa\u0005\u0180\u00c1\u0002\u07f9\u07f5\u0003\u0002", - "\u0002\u0002\u07f9\u07fa\u0003\u0002\u0002\u0002\u07fa\u07fc\u0003\u0002", - "\u0002\u0002\u07fb\u07f0\u0003\u0002\u0002\u0002\u07fb\u07fc\u0003\u0002", - "\u0002\u0002\u07fc\u00f9\u0003\u0002\u0002\u0002\u07fd\u07ff\u0007-", - "\u0002\u0002\u07fe\u0800\u0005\u0180\u00c1\u0002\u07ff\u07fe\u0003\u0002", - "\u0002\u0002\u07ff\u0800\u0003\u0002\u0002\u0002\u0800\u00fb\u0003\u0002", - "\u0002\u0002\u0801\u0803\u0007\u00f6\u0002\u0002\u0802\u0804\u0007\u00ef", - "\u0002\u0002\u0803\u0802\u0003\u0002\u0002\u0002\u0803\u0804\u0003\u0002", - "\u0002\u0002\u0804\u00fd\u0003\u0002\u0002\u0002\u0805\u0809\u0005\u0100", - "\u0081\u0002\u0806\u0809\u0005\u0102\u0082\u0002\u0807\u0809\u0005\u0104", - "\u0083\u0002\u0808\u0805\u0003\u0002\u0002\u0002\u0808\u0806\u0003\u0002", - "\u0002\u0002\u0808\u0807\u0003\u0002\u0002\u0002\u0809\u00ff\u0003\u0002", - "\u0002\u0002\u080a\u080c\u0007\u00f7\u0002\u0002\u080b\u080a\u0003\u0002", - "\u0002\u0002\u080b\u080c\u0003\u0002\u0002\u0002\u080c\u080d\u0003\u0002", - "\u0002\u0002\u080d\u0810\u0007\u00b8\u0002\u0002\u080e\u0810\u0007\u00f8", - "\u0002\u0002\u080f\u080b\u0003\u0002\u0002\u0002\u080f\u080e\u0003\u0002", - "\u0002\u0002\u0810\u0812\u0003\u0002\u0002\u0002\u0811\u0813\u0007\u0019", - "\u0002\u0002\u0812\u0811\u0003\u0002\u0002\u0002\u0812\u0813\u0003\u0002", - "\u0002\u0002\u0813\u0814\u0003\u0002\u0002\u0002\u0814\u0815\u0005\u0180", - "\u00c1\u0002\u0815\u0101\u0003\u0002\u0002\u0002\u0816\u0817\t\u001f", - "\u0002\u0002\u0817\u0818\t \u0002\u0002\u0818\u0103\u0003\u0002\u0002", - "\u0002\u0819\u081a\u0007\u00ff\u0002\u0002\u081a\u081d\u0007\u0019\u0002", - "\u0002\u081b\u081e\u0005\u0180\u00c1\u0002\u081c\u081e\u0007\u0100\u0002", - "\u0002\u081d\u081b\u0003\u0002\u0002\u0002\u081d\u081c\u0003\u0002\u0002", - "\u0002\u081e\u0820\u0003\u0002\u0002\u0002\u081f\u0821\u0007R\u0002", - "\u0002\u0820\u081f\u0003\u0002\u0002\u0002\u0820\u0821\u0003\u0002\u0002", - "\u0002\u0821\u0822\u0003\u0002\u0002\u0002\u0822\u0823\u0007\u001e\u0002", - "\u0002\u0823\u0824\t!\u0002\u0002\u0824\u0105\u0003\u0002\u0002\u0002", - "\u0825\u0826\u0007\u0102\u0002\u0002\u0826\u0827\u0005\u01b8\u00dd\u0002", - "\u0827\u0107\u0003\u0002\u0002\u0002\u0828\u082b\u0007\u0103\u0002\u0002", - "\u0829\u082a\u0007\u0104\u0002\u0002\u082a\u082c\u0005\u0180\u00c1\u0002", - "\u082b\u0829\u0003\u0002\u0002\u0002\u082b\u082c\u0003\u0002\u0002\u0002", - "\u082c\u082d\u0003\u0002\u0002\u0002\u082d\u0837\u0007\u001e\u0002\u0002", - "\u082e\u0838\u0005\u011a\u008e\u0002\u082f\u0831\u0005\u014a\u00a6\u0002", - "\u0830\u0832\u0005\u014c\u00a7\u0002\u0831\u0830\u0003\u0002\u0002\u0002", - "\u0831\u0832\u0003\u0002\u0002\u0002\u0832\u0835\u0003\u0002\u0002\u0002", - "\u0833\u0834\u0007\u0105\u0002\u0002\u0834\u0836\u0005\u0180\u00c1\u0002", - "\u0835\u0833\u0003\u0002\u0002\u0002\u0835\u0836\u0003\u0002\u0002\u0002", - "\u0836\u0838\u0003\u0002\u0002\u0002\u0837\u082e\u0003\u0002\u0002\u0002", - "\u0837\u082f\u0003\u0002\u0002\u0002\u0838\u0109\u0003\u0002\u0002\u0002", - "\u0839\u083b\u0007\u0106\u0002\u0002\u083a\u083c\u0007<\u0002\u0002", - "\u083b\u083a\u0003\u0002\u0002\u0002\u083b\u083c\u0003\u0002\u0002\u0002", - "\u083c\u083d\u0003\u0002\u0002\u0002\u083d\u083e\u0005\u014a\u00a6\u0002", - "\u083e\u010b\u0003\u0002\u0002\u0002\u083f\u0840\u0007\u0107\u0002\u0002", - "\u0840\u0841\u0005\u0180\u00c1\u0002\u0841\u010d\u0003\u0002\u0002\u0002", - "\u0842\u0844\u0007\u00d4\u0002\u0002\u0843\u0845\u0007\u001a\u0002\u0002", - "\u0844\u0843\u0003\u0002\u0002\u0002\u0844\u0845\u0003\u0002\u0002\u0002", - "\u0845\u0846\u0003\u0002\u0002\u0002\u0846\u084b\u0005\u0180\u00c1\u0002", - "\u0847\u0848\u0007\u0017\u0002\u0002\u0848\u084a\u0005\u0180\u00c1\u0002", - "\u0849\u0847\u0003\u0002\u0002\u0002\u084a\u084d\u0003\u0002\u0002\u0002", - "\u084b\u0849\u0003\u0002\u0002\u0002\u084b\u084c\u0003\u0002\u0002\u0002", - "\u084c\u084f\u0003\u0002\u0002\u0002\u084d\u084b\u0003\u0002\u0002\u0002", - "\u084e\u0850\u0007\u001b\u0002\u0002\u084f\u084e\u0003\u0002\u0002\u0002", - "\u084f\u0850\u0003\u0002\u0002\u0002\u0850\u0851\u0003\u0002\u0002\u0002", - "\u0851\u0853\u0007\u00cd\u0002\u0002\u0852\u0854\u0007\u001a\u0002\u0002", - "\u0853\u0852\u0003\u0002\u0002\u0002\u0853\u0854\u0003\u0002\u0002\u0002", - "\u0854\u0855\u0003\u0002\u0002\u0002\u0855\u085a\u0005\u01b8\u00dd\u0002", - "\u0856\u0857\u0007\u0017\u0002\u0002\u0857\u0859\u0005\u01b8\u00dd\u0002", - "\u0858\u0856\u0003\u0002\u0002\u0002\u0859\u085c\u0003\u0002\u0002\u0002", - "\u085a\u0858\u0003\u0002\u0002\u0002\u085a\u085b\u0003\u0002\u0002\u0002", - "\u085b\u085e\u0003\u0002\u0002\u0002\u085c\u085a\u0003\u0002\u0002\u0002", - "\u085d\u085f\u0007\u001b\u0002\u0002\u085e\u085d\u0003\u0002\u0002\u0002", - "\u085e\u085f\u0003\u0002\u0002\u0002\u085f\u010f\u0003\u0002\u0002\u0002", - "\u0860\u0861\u0007\u0108\u0002\u0002\u0861\u0862\u0005\u0170\u00b9\u0002", - "\u0862\u0863\t\"\u0002\u0002\u0863\u0864\u0005\u0004\u0003\u0002\u0864", - "\u0866\u0007\u0010\u0002\u0002\u0865\u0867\t#\u0002\u0002\u0866\u0865", - "\u0003\u0002\u0002\u0002\u0866\u0867\u0003\u0002\u0002\u0002\u0867\u0111", - "\u0003\u0002\u0002\u0002\u0868\u0869\u0007\u001e\u0002\u0002\u0869\u086a", - "\u0007\u0013\u0002\u0002\u086a\u086c\u0007l\u0002\u0002\u086b\u086d", - "\u0007\u001a\u0002\u0002\u086c\u086b\u0003\u0002\u0002\u0002\u086c\u086d", - "\u0003\u0002\u0002\u0002\u086d\u086e\u0003\u0002\u0002\u0002\u086e\u0870", - "\u0005\u011a\u008e\u0002\u086f\u0871\u0007\u001b\u0002\u0002\u0870\u086f", - "\u0003\u0002\u0002\u0002\u0870\u0871\u0003\u0002\u0002\u0002\u0871\u0872", - "\u0003\u0002\u0002\u0002\u0872\u0873\u0007\u010a\u0002\u0002\u0873\u0874", - "\u0005\u0004\u0003\u0002\u0874\u0875\u0007\u0010\u0002\u0002\u0875\u0876", - "\u0007\u010a\u0002\u0002\u0876\u0113\u0003\u0002\u0002\u0002\u0877\u0878", - "\u0007\u001e\u0002\u0002\u0878\u0879\u0007\u0013\u0002\u0002\u0879\u087b", - "\u0007l\u0002\u0002\u087a\u087c\u0007\u010b\u0002\u0002\u087b\u087a", - "\u0003\u0002\u0002\u0002\u087b\u087c\u0003\u0002\u0002\u0002\u087c\u087d", - "\u0003\u0002\u0002\u0002\u087d\u087e\u0005\u0180\u00c1\u0002\u087e\u087f", - "\u0007\u010c\u0002\u0002\u087f\u0882\u0005\u0180\u00c1\u0002\u0880\u0881", - "\t$\u0002\u0002\u0881\u0883\u0005\u0180\u00c1\u0002\u0882\u0880\u0003", - "\u0002\u0002\u0002\u0882\u0883\u0003\u0002\u0002\u0002\u0883\u0884\u0003", - "\u0002\u0002\u0002\u0884\u0885\u0007\u010a\u0002\u0002\u0885\u0886\u0005", - "\u0004\u0003\u0002\u0886\u0887\u0007\u0010\u0002\u0002\u0887\u0888\u0007", - "\u010a\u0002\u0002\u0888\u0115\u0003\u0002\u0002\u0002\u0889\u0890\u0007", - "\u010e\u0002\u0002\u088a\u088b\u0007\u010f\u0002\u0002\u088b\u088c\u0007", - "\u010f\u0002\u0002\u088c\u088d\u0007\u0013\u0002\u0002\u088d\u088e\u0007", - "\u0110\u0002\u0002\u088e\u0890\u0007\u0110\u0002\u0002\u088f\u0889\u0003", - "\u0002\u0002\u0002\u088f\u088a\u0003\u0002\u0002\u0002\u0890\u0117\u0003", - "\u0002\u0002\u0002\u0891\u0892\u0007\u0111\u0002\u0002\u0892\u0897\u0005", - "\u0180\u00c1\u0002\u0893\u0894\u0007\u0017\u0002\u0002\u0894\u0896\u0005", - "\u0180\u00c1\u0002\u0895\u0893\u0003\u0002\u0002\u0002\u0896\u0899\u0003", - "\u0002\u0002\u0002\u0897\u0895\u0003\u0002\u0002\u0002\u0897\u0898\u0003", - "\u0002\u0002\u0002\u0898\u0119\u0003\u0002\u0002\u0002\u0899\u0897\u0003", - "\u0002\u0002\u0002\u089a\u089c\u0005\u011c\u008f\u0002\u089b\u089a\u0003", - "\u0002\u0002\u0002\u089b\u089c\u0003\u0002\u0002\u0002\u089c\u089d\u0003", - "\u0002\u0002\u0002\u089d\u089e\u0005\u0122\u0092\u0002\u089e\u011b\u0003", - "\u0002\u0002\u0002\u089f\u08a0\u0007$\u0002\u0002\u08a0\u08a5\u0005", - "\u011e\u0090\u0002\u08a1\u08a2\u0007\u0017\u0002\u0002\u08a2\u08a4\u0005", - "\u011e\u0090\u0002\u08a3\u08a1\u0003\u0002\u0002\u0002\u08a4\u08a7\u0003", - "\u0002\u0002\u0002\u08a5\u08a3\u0003\u0002\u0002\u0002\u08a5\u08a6\u0003", - "\u0002\u0002\u0002\u08a6\u011d\u0003\u0002\u0002\u0002\u08a7\u08a5\u0003", - "\u0002\u0002\u0002\u08a8\u08aa\u0005\u01b8\u00dd\u0002\u08a9\u08ab\u0005", - "\u0120\u0091\u0002\u08aa\u08a9\u0003\u0002\u0002\u0002\u08aa\u08ab\u0003", - "\u0002\u0002\u0002\u08ab\u08ac\u0003\u0002\u0002\u0002\u08ac\u08ad\u0007", - ")\u0002\u0002\u08ad\u08ae\u0007\u001a\u0002\u0002\u08ae\u08af\u0005", - "\u0122\u0092\u0002\u08af\u08b0\u0007\u001b\u0002\u0002\u08b0\u011f\u0003", - "\u0002\u0002\u0002\u08b1\u08b2\u0007\u001a\u0002\u0002\u08b2\u08b7\u0005", - "\u01b8\u00dd\u0002\u08b3\u08b4\u0007\u0017\u0002\u0002\u08b4\u08b6\u0005", - "\u01b8\u00dd\u0002\u08b5\u08b3\u0003\u0002\u0002\u0002\u08b6\u08b9\u0003", - "\u0002\u0002\u0002\u08b7\u08b5\u0003\u0002\u0002\u0002\u08b7\u08b8\u0003", - "\u0002\u0002\u0002\u08b8\u08ba\u0003\u0002\u0002\u0002\u08b9\u08b7\u0003", - "\u0002\u0002\u0002\u08ba\u08bb\u0007\u001b\u0002\u0002\u08bb\u0121\u0003", - "\u0002\u0002\u0002\u08bc\u08c2\u0005\u0124\u0093\u0002\u08bd\u08be\u0005", - "\u0126\u0094\u0002\u08be\u08bf\u0005\u0124\u0093\u0002\u08bf\u08c1\u0003", - "\u0002\u0002\u0002\u08c0\u08bd\u0003\u0002\u0002\u0002\u08c1\u08c4\u0003", - "\u0002\u0002\u0002\u08c2\u08c0\u0003\u0002\u0002\u0002\u08c2\u08c3\u0003", - "\u0002\u0002\u0002\u08c3\u0123\u0003\u0002\u0002\u0002\u08c4\u08c2\u0003", - "\u0002\u0002\u0002\u08c5\u08cb\u0005\u0128\u0095\u0002\u08c6\u08c7\u0007", - "\u001a\u0002\u0002\u08c7\u08c8\u0005\u0122\u0092\u0002\u08c8\u08c9\u0007", - "\u001b\u0002\u0002\u08c9\u08cb\u0003\u0002\u0002\u0002\u08ca\u08c5\u0003", - "\u0002\u0002\u0002\u08ca\u08c6\u0003\u0002\u0002\u0002\u08cb\u0125\u0003", - "\u0002\u0002\u0002\u08cc\u08ce\u0007\u0112\u0002\u0002\u08cd\u08cf\u0007", - "\u0113\u0002\u0002\u08ce\u08cd\u0003\u0002\u0002\u0002\u08ce\u08cf\u0003", - "\u0002\u0002\u0002\u08cf\u08d9\u0003\u0002\u0002\u0002\u08d0\u08d2\u0007", - "\u0114\u0002\u0002\u08d1\u08d3\u0007\u0113\u0002\u0002\u08d2\u08d1\u0003", - "\u0002\u0002\u0002\u08d2\u08d3\u0003\u0002\u0002\u0002\u08d3\u08d9\u0003", - "\u0002\u0002\u0002\u08d4\u08d6\u0007\u0115\u0002\u0002\u08d5\u08d7\u0007", - "\u0113\u0002\u0002\u08d6\u08d5\u0003\u0002\u0002\u0002\u08d6\u08d7\u0003", - "\u0002\u0002\u0002\u08d7\u08d9\u0003\u0002\u0002\u0002\u08d8\u08cc\u0003", - "\u0002\u0002\u0002\u08d8\u08d0\u0003\u0002\u0002\u0002\u08d8\u08d4\u0003", - "\u0002\u0002\u0002\u08d9\u0127\u0003\u0002\u0002\u0002\u08da\u08db\t", - "%\u0002\u0002\u08db\u08dd\u0005\u012a\u0096\u0002\u08dc\u08de\u0005", - "\u0136\u009c\u0002\u08dd\u08dc\u0003\u0002\u0002\u0002\u08dd\u08de\u0003", + "8\u0002\u0002\u035c\u035d\u0007\u00a3\u0002\u0002\u035d\u0363\u0007", + "\u011a\u0002\u0002\u035e\u0360\t\b\u0002\u0002\u035f\u035e\u0003\u0002", + "\u0002\u0002\u035f\u0360\u0003\u0002\u0002\u0002\u0360\u0361\u0003\u0002", + "\u0002\u0002\u0361\u0363\u0007\u0133\u0002\u0002\u0362\u035c\u0003\u0002", + "\u0002\u0002\u0362\u035f\u0003\u0002\u0002\u0002\u0363\u0364\u0003\u0002", + "\u0002\u0002\u0364\u0365\u0007\u0118\u0002\u0002\u0365\u0367\u0005\u01b8", + "\u00dd\u0002\u0366\u0368\u0005V,\u0002\u0367\u0366\u0003\u0002\u0002", + "\u0002\u0367\u0368\u0003\u0002\u0002\u0002\u0368\u0369\u0003\u0002\u0002", + "\u0002\u0369\u036a\u0005H%\u0002\u036aG\u0003\u0002\u0002\u0002\u036b", + "\u036d\u0007\u000b\u0002\u0002\u036c\u036b\u0003\u0002\u0002\u0002\u036c", + "\u036d\u0003\u0002\u0002\u0002\u036d\u036e\u0003\u0002\u0002\u0002\u036e", + "\u036f\u0007\u016a\u0002\u0002\u036f\u0370\u0005\u011a\u008e\u0002\u0370", + "\u0371\u0007\u016d\u0002\u0002\u0371\u037b\u0003\u0002\u0002\u0002\u0372", + "\u0374\u0007\u000b\u0002\u0002\u0373\u0372\u0003\u0002\u0002\u0002\u0373", + "\u0374\u0003\u0002\u0002\u0002\u0374\u0375\u0003\u0002\u0002\u0002\u0375", + "\u037b\u0005\u011a\u008e\u0002\u0376\u0377\u0007\u016a\u0002\u0002\u0377", + "\u0378\u0005J&\u0002\u0378\u0379\u0007\u016d\u0002\u0002\u0379\u037b", + "\u0003\u0002\u0002\u0002\u037a\u036c\u0003\u0002\u0002\u0002\u037a\u0373", + "\u0003\u0002\u0002\u0002\u037a\u0376\u0003\u0002\u0002\u0002\u037b\u037d", + "\u0003\u0002\u0002\u0002\u037c\u037e\u0005\\/\u0002\u037d\u037c\u0003", + "\u0002\u0002\u0002\u037d\u037e\u0003\u0002\u0002\u0002\u037eI\u0003", + "\u0002\u0002\u0002\u037f\u0384\u0005L\'\u0002\u0380\u0381\u0007\u0157", + "\u0002\u0002\u0381\u0383\u0005L\'\u0002\u0382\u0380\u0003\u0002\u0002", + "\u0002\u0383\u0386\u0003\u0002\u0002\u0002\u0384\u0382\u0003\u0002\u0002", + "\u0002\u0384\u0385\u0003\u0002\u0002\u0002\u0385K\u0003\u0002\u0002", + "\u0002\u0386\u0384\u0003\u0002\u0002\u0002\u0387\u0388\u0005N(\u0002", + "\u0388\u038a\u0005x=\u0002\u0389\u038b\u0005z>\u0002\u038a\u0389\u0003", + "\u0002\u0002\u0002\u038a\u038b\u0003\u0002\u0002\u0002\u038b\u038f\u0003", + "\u0002\u0002\u0002\u038c\u038e\u0005|?\u0002\u038d\u038c\u0003\u0002", + "\u0002\u0002\u038e\u0391\u0003\u0002\u0002\u0002\u038f\u038d\u0003\u0002", + "\u0002\u0002\u038f\u0390\u0003\u0002\u0002\u0002\u0390\u0395\u0003\u0002", + "\u0002\u0002\u0391\u038f\u0003\u0002\u0002\u0002\u0392\u0394\u0005P", + ")\u0002\u0393\u0392\u0003\u0002\u0002\u0002\u0394\u0397\u0003\u0002", + "\u0002\u0002\u0395\u0393\u0003\u0002\u0002\u0002\u0395\u0396\u0003\u0002", + "\u0002\u0002\u0396\u039e\u0003\u0002\u0002\u0002\u0397\u0395\u0003\u0002", + "\u0002\u0002\u0398\u0399\u00073\u0002\u0002\u0399\u039b\u0005\u01b8", + "\u00dd\u0002\u039a\u0398\u0003\u0002\u0002\u0002\u039a\u039b\u0003\u0002", + "\u0002\u0002\u039b\u039c\u0003\u0002\u0002\u0002\u039c\u039e\u0005R", + "*\u0002\u039d\u0387\u0003\u0002\u0002\u0002\u039d\u039a\u0003\u0002", + "\u0002\u0002\u039eM\u0003\u0002\u0002\u0002\u039f\u03a0\u0005\u01b8", + "\u00dd\u0002\u03a0O\u0003\u0002\u0002\u0002\u03a1\u03c2\u0005~@\u0002", + "\u03a2\u03a4\u0007\u00be\u0002\u0002\u03a3\u03a2\u0003\u0002\u0002\u0002", + "\u03a3\u03a4\u0003\u0002\u0002\u0002\u03a4\u03a5\u0003\u0002\u0002\u0002", + "\u03a5\u03c2\u0007\u00c0\u0002\u0002\u03a6\u03a7\u0007\u00d6\u0002\u0002", + "\u03a7\u03c2\u0007\u009b\u0002\u0002\u03a8\u03c2\u0007\u0128\u0002\u0002", + "\u03a9\u03aa\u0007\u00e0\u0002\u0002\u03aa\u03ab\u0005\u014a\u00a6\u0002", + "\u03ab\u03ac\u0007\u016a\u0002\u0002\u03ac\u03ad\u0005\u01b8\u00dd\u0002", + "\u03ad\u03b1\u0007\u016d\u0002\u0002\u03ae\u03b0\u0005T+\u0002\u03af", + "\u03ae\u0003\u0002\u0002\u0002\u03b0\u03b3\u0003\u0002\u0002\u0002\u03b1", + "\u03af\u0003\u0002\u0002\u0002\u03b1\u03b2\u0003\u0002\u0002\u0002\u03b2", + "\u03c2\u0003\u0002\u0002\u0002\u03b3\u03b1\u0003\u0002\u0002\u0002\u03b4", + "\u03b5\u0007\u0082\u0002\u0002\u03b5\u03b6\u0007\u016a\u0002\u0002\u03b6", + "\u03bb\u0007\u0174\u0002\u0002\u03b7\u03b8\u0007\u0157\u0002\u0002\u03b8", + "\u03ba\u0007\u0174\u0002\u0002\u03b9\u03b7\u0003\u0002\u0002\u0002\u03ba", + "\u03bd\u0003\u0002\u0002\u0002\u03bb\u03b9\u0003\u0002\u0002\u0002\u03bb", + "\u03bc\u0003\u0002\u0002\u0002\u03bc\u03be\u0003\u0002\u0002\u0002\u03bd", + "\u03bb\u0003\u0002\u0002\u0002\u03be\u03c2\u0007\u016d\u0002\u0002\u03bf", + "\u03c2\u0007\u000f\u0002\u0002\u03c0\u03c2\u0007^\u0002\u0002\u03c1", + "\u03a1\u0003\u0002\u0002\u0002\u03c1\u03a3\u0003\u0002\u0002\u0002\u03c1", + "\u03a6\u0003\u0002\u0002\u0002\u03c1\u03a8\u0003\u0002\u0002\u0002\u03c1", + "\u03a9\u0003\u0002\u0002\u0002\u03c1\u03b4\u0003\u0002\u0002\u0002\u03c1", + "\u03bf\u0003\u0002\u0002\u0002\u03c1\u03c0\u0003\u0002\u0002\u0002\u03c2", + "Q\u0003\u0002\u0002\u0002\u03c3\u03c4\u0007\u00d6\u0002\u0002\u03c4", + "\u03c6\u0007\u009b\u0002\u0002\u03c5\u03c7\u0007(\u0002\u0002\u03c6", + "\u03c5\u0003\u0002\u0002\u0002\u03c6\u03c7\u0003\u0002\u0002\u0002\u03c7", + "\u03c8\u0003\u0002\u0002\u0002\u03c8\u03c9\u0007\u016a\u0002\u0002\u03c9", + "\u03cb\u0005\u01b8\u00dd\u0002\u03ca\u03cc\t\t\u0002\u0002\u03cb\u03ca", + "\u0003\u0002\u0002\u0002\u03cb\u03cc\u0003\u0002\u0002\u0002\u03cc\u03d4", + "\u0003\u0002\u0002\u0002\u03cd\u03ce\u0007\u0157\u0002\u0002\u03ce\u03d0", + "\u0005\u01b8\u00dd\u0002\u03cf\u03d1\t\t\u0002\u0002\u03d0\u03cf\u0003", + "\u0002\u0002\u0002\u03d0\u03d1\u0003\u0002\u0002\u0002\u03d1\u03d3\u0003", + "\u0002\u0002\u0002\u03d2\u03cd\u0003\u0002\u0002\u0002\u03d3\u03d6\u0003", + "\u0002\u0002\u0002\u03d4\u03d2\u0003\u0002\u0002\u0002\u03d4\u03d5\u0003", + "\u0002\u0002\u0002\u03d5\u03d7\u0003\u0002\u0002\u0002\u03d6\u03d4\u0003", + "\u0002\u0002\u0002\u03d7\u03d9\u0007\u016d\u0002\u0002\u03d8\u03da\u0007", + "^\u0002\u0002\u03d9\u03d8\u0003\u0002\u0002\u0002\u03d9\u03da\u0003", + "\u0002\u0002\u0002\u03da\u03dc\u0003\u0002\u0002\u0002\u03db\u03dd\u0005", + "\u00eex\u0002\u03dc\u03db\u0003\u0002\u0002\u0002\u03dc\u03dd\u0003", + "\u0002\u0002\u0002\u03dd\u03fd\u0003\u0002\u0002\u0002\u03de\u03df\u0007", + "q\u0002\u0002\u03df\u03e0\u0007\u009b\u0002\u0002\u03e0\u03e1\u0007", + "\u016a\u0002\u0002\u03e1\u03e6\u0005\u01b8\u00dd\u0002\u03e2\u03e3\u0007", + "\u0157\u0002\u0002\u03e3\u03e5\u0005\u01b8\u00dd\u0002\u03e4\u03e2\u0003", + "\u0002\u0002\u0002\u03e5\u03e8\u0003\u0002\u0002\u0002\u03e6\u03e4\u0003", + "\u0002\u0002\u0002\u03e6\u03e7\u0003\u0002\u0002\u0002\u03e7\u03e9\u0003", + "\u0002\u0002\u0002\u03e8\u03e6\u0003\u0002\u0002\u0002\u03e9\u03ea\u0007", + "\u016d\u0002\u0002\u03ea\u03eb\u0007\u00e0\u0002\u0002\u03eb\u03ec\u0005", + "\u014a\u00a6\u0002\u03ec\u03ed\u0007\u016a\u0002\u0002\u03ed\u03f2\u0005", + "\u01b8\u00dd\u0002\u03ee\u03ef\u0007\u0157\u0002\u0002\u03ef\u03f1\u0005", + "\u01b8\u00dd\u0002\u03f0\u03ee\u0003\u0002\u0002\u0002\u03f1\u03f4\u0003", + "\u0002\u0002\u0002\u03f2\u03f0\u0003\u0002\u0002\u0002\u03f2\u03f3\u0003", + "\u0002\u0002\u0002\u03f3\u03f5\u0003\u0002\u0002\u0002\u03f4\u03f2\u0003", + "\u0002\u0002\u0002\u03f5\u03f9\u0007\u016d\u0002\u0002\u03f6\u03f8\u0005", + "T+\u0002\u03f7\u03f6\u0003\u0002\u0002\u0002\u03f8\u03fb\u0003\u0002", + "\u0002\u0002\u03f9\u03f7\u0003\u0002\u0002\u0002\u03f9\u03fa\u0003\u0002", + "\u0002\u0002\u03fa\u03fd\u0003\u0002\u0002\u0002\u03fb\u03f9\u0003\u0002", + "\u0002\u0002\u03fc\u03c3\u0003\u0002\u0002\u0002\u03fc\u03de\u0003\u0002", + "\u0002\u0002\u03fdS\u0003\u0002\u0002\u0002\u03fe\u03ff\u0007\u00c5", + "\u0002\u0002\u03ff\u0408\t\n\u0002\u0002\u0400\u0401\u0007\u00b9\u0002", + "\u0002\u0401\u0409\u0007\u0003\u0002\u0002\u0402\u0409\u0007\u00e4\u0002", + "\u0002\u0403\u0404\u0007\u00fd\u0002\u0002\u0404\u0409\u0007\u00c0\u0002", + "\u0002\u0405\u0406\u0007\u00fd\u0002\u0002\u0406\u0409\u0007H\u0002", + "\u0002\u0407\u0409\u0007\u001f\u0002\u0002\u0408\u0400\u0003\u0002\u0002", + "\u0002\u0408\u0402\u0003\u0002\u0002\u0002\u0408\u0403\u0003\u0002\u0002", + "\u0002\u0408\u0405\u0003\u0002\u0002\u0002\u0408\u0407\u0003\u0002\u0002", + "\u0002\u0409U\u0003\u0002\u0002\u0002\u040a\u040c\u0005X-\u0002\u040b", + "\u040a\u0003\u0002\u0002\u0002\u040c\u040d\u0003\u0002\u0002\u0002\u040d", + "\u040b\u0003\u0002\u0002\u0002\u040d\u040e\u0003\u0002\u0002\u0002\u040e", + "W\u0003\u0002\u0002\u0002\u040f\u0410\u0007\u0157\u0002\u0002\u0410", + "\u0413\u0005Z.\u0002\u0411\u0413\u0005f4\u0002\u0412\u040f\u0003\u0002", + "\u0002\u0002\u0412\u0411\u0003\u0002\u0002\u0002\u0413Y\u0003\u0002", + "\u0002\u0002\u0414\u0416\u0007\u00b9\u0002\u0002\u0415\u0414\u0003\u0002", + "\u0002\u0002\u0415\u0416\u0003\u0002\u0002\u0002\u0416\u0417\u0003\u0002", + "\u0002\u0002\u0417\u0418\t\u000b\u0002\u0002\u0418[\u0003\u0002\u0002", + "\u0002\u0419\u041b\u0005^0\u0002\u041a\u0419\u0003\u0002\u0002\u0002", + "\u041b\u041c\u0003\u0002\u0002\u0002\u041c\u041a\u0003\u0002\u0002\u0002", + "\u041c\u041d\u0003\u0002\u0002\u0002\u041d]\u0003\u0002\u0002\u0002", + "\u041e\u041f\u0007\u00c5\u0002\u0002\u041f\u0420\u0007/\u0002\u0002", + "\u0420\u0421\t\f\u0002\u0002\u0421\u0429\u0007\u00ef\u0002\u0002\u0422", + "\u0429\u0005`1\u0002\u0423\u0429\u0005b2\u0002\u0424\u0429\u0005d3\u0002", + "\u0425\u0429\u0005f4\u0002\u0426\u0429\u0005l7\u0002\u0427\u0429\u0005", + "n8\u0002\u0428\u041e\u0003\u0002\u0002\u0002\u0428\u0422\u0003\u0002", + "\u0002\u0002\u0428\u0423\u0003\u0002\u0002\u0002\u0428\u0424\u0003\u0002", + "\u0002\u0002\u0428\u0425\u0003\u0002\u0002\u0002\u0428\u0426\u0003\u0002", + "\u0002\u0002\u0428\u0427\u0003\u0002\u0002\u0002\u0429_\u0003\u0002", + "\u0002\u0002\u042a\u042b\u0007\u00fa\u0002\u0002\u042b\u042c\u00079", + "\u0002\u0002\u042c\u043d\t\r\u0002\u0002\u042d\u042e\t\u000e\u0002\u0002", + "\u042e\u043d\u0007\u0174\u0002\u0002\u042f\u043d\u0007\u00bb\u0002\u0002", + "\u0430\u043d\t\u000f\u0002\u0002\u0431\u0432\u0007\u0110\u0002\u0002", + "\u0432\u0435\u0007\u016a\u0002\u0002\u0433\u0436\u0005\u01b8\u00dd\u0002", + "\u0434\u0436\u0007\u0174\u0002\u0002\u0435\u0433\u0003\u0002\u0002\u0002", + "\u0435\u0434\u0003\u0002\u0002\u0002\u0436\u0437\u0003\u0002\u0002\u0002", + "\u0437\u0435\u0003\u0002\u0002\u0002\u0437\u0438\u0003\u0002\u0002\u0002", + "\u0438\u0439\u0003\u0002\u0002\u0002\u0439\u043d\u0007\u016d\u0002\u0002", + "\u043a\u043b\u0007\u0119\u0002\u0002\u043b\u043d\u0005\u01b8\u00dd\u0002", + "\u043c\u042a\u0003\u0002\u0002\u0002\u043c\u042d\u0003\u0002\u0002\u0002", + "\u043c\u042f\u0003\u0002\u0002\u0002\u043c\u0430\u0003\u0002\u0002\u0002", + "\u043c\u0431\u0003\u0002\u0002\u0002\u043c\u043a\u0003\u0002\u0002\u0002", + "\u043da\u0003\u0002\u0002\u0002\u043e\u0440\u0007\u0088\u0002\u0002", + "\u043f\u043e\u0003\u0002\u0002\u0002\u043f\u0440\u0003\u0002\u0002\u0002", + "\u0440\u0441\u0003\u0002\u0002\u0002\u0441\u0442\u0007\u0086\u0002\u0002", + "\u0442\u0460\u0005\u01b8\u00dd\u0002\u0443\u0444\u0007\u0137\u0002\u0002", + "\u0444\u0460\u0007\u00e2\u0002\u0002\u0445\u0446\u0007V\u0002\u0002", + "\u0446\u0447\u0007\u001b\u0002\u0002\u0447\u0448\u0007}\u0002\u0002", + "\u0448\u0449\u0007\u016a\u0002\u0002\u0449\u044e\u0005\u01b8\u00dd\u0002", + "\u044a\u044b\u0007\u0157\u0002\u0002\u044b\u044d\u0005\u01b8\u00dd\u0002", + "\u044c\u044a\u0003\u0002\u0002\u0002\u044d\u0450\u0003\u0002\u0002\u0002", + "\u044e\u044c\u0003\u0002\u0002\u0002\u044e\u044f\u0003\u0002\u0002\u0002", + "\u044f\u0451\u0003\u0002\u0002\u0002\u0450\u044e\u0003\u0002\u0002\u0002", + "\u0451\u0452\u0007\u016d\u0002\u0002\u0452\u0460\u0003\u0002\u0002\u0002", + "\u0453\u0455\u0007\u00be\u0002\u0002\u0454\u0453\u0003\u0002\u0002\u0002", + "\u0454\u0455\u0003\u0002\u0002\u0002\u0455\u0456\u0003\u0002\u0002\u0002", + "\u0456\u0460\u0007\u00a9\u0002\u0002\u0457\u0458\u00070\u0002\u0002", + "\u0458\u0460\t\u0010\u0002\u0002\u0459\u045a\u0007L\u0002\u0002\u045a", + "\u0460\u0007\u00c6\u0002\u0002\u045b\u045c\u0007\u0137\u0002\u0002\u045c", + "\u045d\u0007\u00e4\u0002\u0002\u045d\u045e\u0007\u00c5\u0002\u0002\u045e", + "\u0460\u0007Y\u0002\u0002\u045f\u043f\u0003\u0002\u0002\u0002\u045f", + "\u0443\u0003\u0002\u0002\u0002\u045f\u0445\u0003\u0002\u0002\u0002\u045f", + "\u0454\u0003\u0002\u0002\u0002\u045f\u0457\u0003\u0002\u0002\u0002\u045f", + "\u0459\u0003\u0002\u0002\u0002\u045f\u045b\u0003\u0002\u0002\u0002\u0460", + "c\u0003\u0002\u0002\u0002\u0461\u0463\u0007\u0128\u0002\u0002\u0462", + "\u0461\u0003\u0002\u0002\u0002\u0462\u0463\u0003\u0002\u0002\u0002\u0463", + "\u0464\u0003\u0002\u0002\u0002\u0464\u0465\u0007\u00d6\u0002\u0002\u0465", + "\u0466\u0007\u0088\u0002\u0002\u0466\u0467\u0007\u016a\u0002\u0002\u0467", + "\u046c\u0005\u01b8\u00dd\u0002\u0468\u0469\u0007\u0157\u0002\u0002\u0469", + "\u046b\u0005\u01b8\u00dd\u0002\u046a\u0468\u0003\u0002\u0002\u0002\u046b", + "\u046e\u0003\u0002\u0002\u0002\u046c\u046a\u0003\u0002\u0002\u0002\u046c", + "\u046d\u0003\u0002\u0002\u0002\u046d\u046f\u0003\u0002\u0002\u0002\u046e", + "\u046c\u0003\u0002\u0002\u0002\u046f\u0470\u0007\u016d\u0002\u0002\u0470", + "\u0474\u0003\u0002\u0002\u0002\u0471\u0472\u0007\u0137\u0002\u0002\u0472", + "\u0474\u0007@\u0002\u0002\u0473\u0462\u0003\u0002\u0002\u0002\u0473", + "\u0471\u0003\u0002\u0002\u0002\u0474e\u0003\u0002\u0002\u0002\u0475", + "\u047a\u0005h5\u0002\u0476\u0477\u0007\u0111\u0002\u0002\u0477\u0478", + "\u0007\u000b\u0002\u0002\u0478\u047a\u0005\u01b8\u00dd\u0002\u0479\u0475", + "\u0003\u0002\u0002\u0002\u0479\u0476\u0003\u0002\u0002\u0002\u047ag", + "\u0003\u0002\u0002\u0002\u047b\u047c\u0007\u00ee\u0002\u0002\u047c\u047d", + "\u0007r\u0002\u0002\u047d\u0481\u0007N\u0002\u0002\u047e\u0480\u0005", + "j6\u0002\u047f\u047e\u0003\u0002\u0002\u0002\u0480\u0483\u0003\u0002", + "\u0002\u0002\u0481\u047f\u0003\u0002\u0002\u0002\u0481\u0482\u0003\u0002", + "\u0002\u0002\u0482i\u0003\u0002\u0002\u0002\u0483\u0481\u0003\u0002", + "\u0002\u0002\u0484\u0485\u0007l\u0002\u0002\u0485\u0486\u0007\u011b", + "\u0002\u0002\u0486\u0487\u0007\u001b\u0002\u0002\u0487\u048b\u0005\u0180", + "\u00c1\u0002\u0488\u0489\u0007a\u0002\u0002\u0489\u048a\u0007\u001b", + "\u0002\u0002\u048a\u048c\u0005\u0180\u00c1\u0002\u048b\u0488\u0003\u0002", + "\u0002\u0002\u048b\u048c\u0003\u0002\u0002\u0002\u048c\u04a0\u0003\u0002", + "\u0002\u0002\u048d\u048e\u0007+\u0002\u0002\u048e\u048f\u0007\u0098", + "\u0002\u0002\u048f\u0490\u0007\u011b\u0002\u0002\u0490\u0491\u0007\u001b", + "\u0002\u0002\u0491\u04a0\u0005\u0180\u00c1\u0002\u0492\u0493\u0007\u00ac", + "\u0002\u0002\u0493\u0494\u0007\u009c\u0002\u0002\u0494\u0495\u0007\u011b", + "\u0002\u0002\u0495\u0496\u0007\u001b\u0002\u0002\u0496\u04a0\u0005\u0180", + "\u00c1\u0002\u0497\u0498\u0007\u00a2\u0002\u0002\u0498\u0499\u0007\u011b", + "\u0002\u0002\u0499\u049a\u0007\u001b\u0002\u0002\u049a\u04a0\u0005\u0180", + "\u00c1\u0002\u049b\u049c\u0007\u00c0\u0002\u0002\u049c\u049d\u0007J", + "\u0002\u0002\u049d\u049e\u0007\u000b\u0002\u0002\u049e\u04a0\u0005\u0180", + "\u00c1\u0002\u049f\u0484\u0003\u0002\u0002\u0002\u049f\u048d\u0003\u0002", + "\u0002\u0002\u049f\u0492\u0003\u0002\u0002\u0002\u049f\u0497\u0003\u0002", + "\u0002\u0002\u049f\u049b\u0003\u0002\u0002\u0002\u04a0k\u0003\u0002", + "\u0002\u0002\u04a1\u04a2\u0007\u00c5\u0002\u0002\u04a2\u04a6\u0005\u01b8", + "\u00dd\u0002\u04a3\u04a4\u0007\u011c\u0002\u0002\u04a4\u04a6\u0005\u01b8", + "\u00dd\u0002\u04a5\u04a1\u0003\u0002\u0002\u0002\u04a5\u04a3\u0003\u0002", + "\u0002\u0002\u04a6m\u0003\u0002\u0002\u0002\u04a7\u04a9\u0007\u000f", + "\u0002\u0002\u04a8\u04aa\u0007\u015c\u0002\u0002\u04a9\u04a8\u0003\u0002", + "\u0002\u0002\u04a9\u04aa\u0003\u0002\u0002\u0002\u04aa\u04ab\u0003\u0002", + "\u0002\u0002\u04ab\u04c3\u0005\u0180\u00c1\u0002\u04ac\u04ae\u0007-", + "\u0002\u0002\u04ad\u04af\u0007\u015c\u0002\u0002\u04ae\u04ad\u0003\u0002", + "\u0002\u0002\u04ae\u04af\u0003\u0002\u0002\u0002\u04af\u04b0\u0003\u0002", + "\u0002\u0002\u04b0\u04c3\u0005\u0180\u00c1\u0002\u04b1\u04b3\u0007H", + "\u0002\u0002\u04b2\u04b1\u0003\u0002\u0002\u0002\u04b2\u04b3\u0003\u0002", + "\u0002\u0002\u04b3\u04b7\u0003\u0002\u0002\u0002\u04b4\u04b5\u0007$", + "\u0002\u0002\u04b5\u04b8\u0007\u00fd\u0002\u0002\u04b6\u04b8\u0007%", + "\u0002\u0002\u04b7\u04b4\u0003\u0002\u0002\u0002\u04b7\u04b6\u0003\u0002", + "\u0002\u0002\u04b8\u04ba\u0003\u0002\u0002\u0002\u04b9\u04bb\u0007\u015c", + "\u0002\u0002\u04ba\u04b9\u0003\u0002\u0002\u0002\u04ba\u04bb\u0003\u0002", + "\u0002\u0002\u04bb\u04bc\u0003\u0002\u0002\u0002\u04bc\u04c3\u0005\u0180", + "\u00c1\u0002\u04bd\u04bf\u0007`\u0002\u0002\u04be\u04c0\u0007\u015c", + "\u0002\u0002\u04bf\u04be\u0003\u0002\u0002\u0002\u04bf\u04c0\u0003\u0002", + "\u0002\u0002\u04c0\u04c1\u0003\u0002\u0002\u0002\u04c1\u04c3\u0005\u0180", + "\u00c1\u0002\u04c2\u04a7\u0003\u0002\u0002\u0002\u04c2\u04ac\u0003\u0002", + "\u0002\u0002\u04c2\u04b2\u0003\u0002\u0002\u0002\u04c2\u04bd\u0003\u0002", + "\u0002\u0002\u04c3o\u0003\u0002\u0002\u0002\u04c4\u04c5\u0007\u0007", + "\u0002\u0002\u04c5\u04c6\u0007\u0118\u0002\u0002\u04c6\u04c7\u0005\u014a", + "\u00a6\u0002\u04c7\u04c8\u0005r:\u0002\u04c8q\u0003\u0002\u0002\u0002", + "\u04c9\u04ca\u0005t;\u0002\u04cas\u0003\u0002\u0002\u0002\u04cb\u04ce", + "\u0007\u0004\u0002\u0002\u04cc\u04cd\u00073\u0002\u0002\u04cd\u04cf", + "\u0005\u01b8\u00dd\u0002\u04ce\u04cc\u0003\u0002\u0002\u0002\u04ce\u04cf", + "\u0003\u0002\u0002\u0002\u04cf\u04d0\u0003\u0002\u0002\u0002\u04d0\u04d1", + "\u0005v<\u0002\u04d1u\u0003\u0002\u0002\u0002\u04d2\u04d3\u0007\u00d6", + "\u0002\u0002\u04d3\u04d5\u0007\u009b\u0002\u0002\u04d4\u04d6\u0007(", + "\u0002\u0002\u04d5\u04d4\u0003\u0002\u0002\u0002\u04d5\u04d6\u0003\u0002", + "\u0002\u0002\u04d6\u04d7\u0003\u0002\u0002\u0002\u04d7\u04d8\u0007\u016a", + "\u0002\u0002\u04d8\u04da\u0005\u01b8\u00dd\u0002\u04d9\u04db\t\t\u0002", + "\u0002\u04da\u04d9\u0003\u0002\u0002\u0002\u04da\u04db\u0003\u0002\u0002", + "\u0002\u04db\u04e3\u0003\u0002\u0002\u0002\u04dc\u04dd\u0007\u0157\u0002", + "\u0002\u04dd\u04df\u0005\u01b8\u00dd\u0002\u04de\u04e0\t\t\u0002\u0002", + "\u04df\u04de\u0003\u0002\u0002\u0002\u04df\u04e0\u0003\u0002\u0002\u0002", + "\u04e0\u04e2\u0003\u0002\u0002\u0002\u04e1\u04dc\u0003\u0002\u0002\u0002", + "\u04e2\u04e5\u0003\u0002\u0002\u0002\u04e3\u04e1\u0003\u0002\u0002\u0002", + "\u04e3\u04e4\u0003\u0002\u0002\u0002\u04e4\u04e6\u0003\u0002\u0002\u0002", + "\u04e5\u04e3\u0003\u0002\u0002\u0002\u04e6\u04e8\u0007\u016d\u0002\u0002", + "\u04e7\u04e9\u0007^\u0002\u0002\u04e8\u04e7\u0003\u0002\u0002\u0002", + "\u04e8\u04e9\u0003\u0002\u0002\u0002\u04e9\u04eb\u0003\u0002\u0002\u0002", + "\u04ea\u04ec\u0005\u00eex\u0002\u04eb\u04ea\u0003\u0002\u0002\u0002", + "\u04eb\u04ec\u0003\u0002\u0002\u0002\u04ec\u0511\u0003\u0002\u0002\u0002", + "\u04ed\u04ee\u0007q\u0002\u0002\u04ee\u04ef\u0007\u009b\u0002\u0002", + "\u04ef\u04f0\u0007\u016a\u0002\u0002\u04f0\u04f5\u0005\u01b8\u00dd\u0002", + "\u04f1\u04f2\u0007\u0157\u0002\u0002\u04f2\u04f4\u0005\u01b8\u00dd\u0002", + "\u04f3\u04f1\u0003\u0002\u0002\u0002\u04f4\u04f7\u0003\u0002\u0002\u0002", + "\u04f5\u04f3\u0003\u0002\u0002\u0002\u04f5\u04f6\u0003\u0002\u0002\u0002", + "\u04f6\u04f8\u0003\u0002\u0002\u0002\u04f7\u04f5\u0003\u0002\u0002\u0002", + "\u04f8\u04f9\u0007\u016d\u0002\u0002\u04f9\u04fa\u0007\u00e0\u0002\u0002", + "\u04fa\u04fb\u0005\u014a\u00a6\u0002\u04fb\u04fc\u0007\u016a\u0002\u0002", + "\u04fc\u0501\u0005\u01b8\u00dd\u0002\u04fd\u04fe\u0007\u0157\u0002\u0002", + "\u04fe\u0500\u0005\u01b8\u00dd\u0002\u04ff\u04fd\u0003\u0002\u0002\u0002", + "\u0500\u0503\u0003\u0002\u0002\u0002\u0501\u04ff\u0003\u0002\u0002\u0002", + "\u0501\u0502\u0003\u0002\u0002\u0002\u0502\u0504\u0003\u0002\u0002\u0002", + "\u0503\u0501\u0003\u0002\u0002\u0002\u0504\u0508\u0007\u016d\u0002\u0002", + "\u0505\u0507\u0005T+\u0002\u0506\u0505\u0003\u0002\u0002\u0002\u0507", + "\u050a\u0003\u0002\u0002\u0002\u0508\u0506\u0003\u0002\u0002\u0002\u0508", + "\u0509\u0003\u0002\u0002\u0002\u0509\u0511\u0003\u0002\u0002\u0002\u050a", + "\u0508\u0003\u0002\u0002\u0002\u050b\u050c\u0007H\u0002\u0002\u050c", + "\u050d\u0005\u0180\u00c1\u0002\u050d\u050e\u0007p\u0002\u0002\u050e", + "\u050f\u0005\u01b8\u00dd\u0002\u050f\u0511\u0003\u0002\u0002\u0002\u0510", + "\u04d2\u0003\u0002\u0002\u0002\u0510\u04ed\u0003\u0002\u0002\u0002\u0510", + "\u050b\u0003\u0002\u0002\u0002\u0511w\u0003\u0002\u0002\u0002\u0512", + "\u0540\u0007#\u0002\u0002\u0513\u0540\u0007\u0014\u0002\u0002\u0514", + "\u0540\u0007\u0015\u0002\u0002\u0515\u0540\u0007\u0016\u0002\u0002\u0516", + "\u0540\u0007\u0017\u0002\u0002\u0517\u0540\u0007\u0018\u0002\u0002\u0518", + "\u0540\u0007A\u0002\u0002\u0519\u0540\u0007B\u0002\u0002\u051a\u0540", + "\u0007E\u0002\u0002\u051b\u0540\u0007F\u0002\u0002\u051c\u051e\u0007", + "X\u0002\u0002\u051d\u051f\u0007\u00d4\u0002\u0002\u051e\u051d\u0003", + "\u0002\u0002\u0002\u051e\u051f\u0003\u0002\u0002\u0002\u051f\u0540\u0003", + "\u0002\u0002\u0002\u0520\u0540\u0007o\u0002\u0002\u0521\u0540\u0007", + "\u008d\u0002\u0002\u0522\u0540\u0007\u008e\u0002\u0002\u0523\u0540\u0007", + "\u008f\u0002\u0002\u0524\u0540\u0007\u0090\u0002\u0002\u0525\u0540\u0007", + "\u0091\u0002\u0002\u0526\u0540\u0007\u00b6\u0002\u0002\u0527\u0540\u0007", + "\u00b8\u0002\u0002\u0528\u0540\u0007\u00c2\u0002\u0002\u0529\u0540\u0007", + "\u00c1\u0002\u0002\u052a\u0540\u0007\u00d3\u0002\u0002\u052b\u0540\u0007", + "\u00df\u0002\u0002\u052c\u052d\u0007\u00e6\u0002\u0002\u052d\u0540\u0007", + "\u0132\u0002\u0002\u052e\u0540\u0007\u0104\u0002\u0002\u052f\u0540\u0007", + "\u0103\u0002\u0002\u0530\u0540\u0007\u0105\u0002\u0002\u0531\u0540\u0007", + "\u0107\u0002\u0002\u0532\u0540\u0007\u0106\u0002\u0002\u0533\u0540\u0007", + "\u0112\u0002\u0002\u0534\u0540\u0007\u0117\u0002\u0002\u0535\u0540\u0007", + "\u011e\u0002\u0002\u0536\u0540\u0007\u011f\u0002\u0002\u0537\u0540\u0007", + "\u0130\u0002\u0002\u0538\u0540\u0007\u0131\u0002\u0002\u0539\u0540\u0007", + "\u013b\u0002\u0002\u053a\u053d\u0005\u01b8\u00dd\u0002\u053b\u053c\u0007", + "\u0167\u0002\u0002\u053c\u053e\t\u0011\u0002\u0002\u053d\u053b\u0003", + "\u0002\u0002\u0002\u053d\u053e\u0003\u0002\u0002\u0002\u053e\u0540\u0003", + "\u0002\u0002\u0002\u053f\u0512\u0003\u0002\u0002\u0002\u053f\u0513\u0003", + "\u0002\u0002\u0002\u053f\u0514\u0003\u0002\u0002\u0002\u053f\u0515\u0003", + "\u0002\u0002\u0002\u053f\u0516\u0003\u0002\u0002\u0002\u053f\u0517\u0003", + "\u0002\u0002\u0002\u053f\u0518\u0003\u0002\u0002\u0002\u053f\u0519\u0003", + "\u0002\u0002\u0002\u053f\u051a\u0003\u0002\u0002\u0002\u053f\u051b\u0003", + "\u0002\u0002\u0002\u053f\u051c\u0003\u0002\u0002\u0002\u053f\u0520\u0003", + "\u0002\u0002\u0002\u053f\u0521\u0003\u0002\u0002\u0002\u053f\u0522\u0003", + "\u0002\u0002\u0002\u053f\u0523\u0003\u0002\u0002\u0002\u053f\u0524\u0003", + "\u0002\u0002\u0002\u053f\u0525\u0003\u0002\u0002\u0002\u053f\u0526\u0003", + "\u0002\u0002\u0002\u053f\u0527\u0003\u0002\u0002\u0002\u053f\u0528\u0003", + "\u0002\u0002\u0002\u053f\u0529\u0003\u0002\u0002\u0002\u053f\u052a\u0003", + "\u0002\u0002\u0002\u053f\u052b\u0003\u0002\u0002\u0002\u053f\u052c\u0003", + "\u0002\u0002\u0002\u053f\u052e\u0003\u0002\u0002\u0002\u053f\u052f\u0003", + "\u0002\u0002\u0002\u053f\u0530\u0003\u0002\u0002\u0002\u053f\u0531\u0003", + "\u0002\u0002\u0002\u053f\u0532\u0003\u0002\u0002\u0002\u053f\u0533\u0003", + "\u0002\u0002\u0002\u053f\u0534\u0003\u0002\u0002\u0002\u053f\u0535\u0003", + "\u0002\u0002\u0002\u053f\u0536\u0003\u0002\u0002\u0002\u053f\u0537\u0003", + "\u0002\u0002\u0002\u053f\u0538\u0003\u0002\u0002\u0002\u053f\u0539\u0003", + "\u0002\u0002\u0002\u053f\u053a\u0003\u0002\u0002\u0002\u0540y\u0003", + "\u0002\u0002\u0002\u0541\u0542\u0007\u016a\u0002\u0002\u0542\u0544\t", + "\u0012\u0002\u0002\u0543\u0545\t\u0013\u0002\u0002\u0544\u0543\u0003", + "\u0002\u0002\u0002\u0544\u0545\u0003\u0002\u0002\u0002\u0545\u0548\u0003", + "\u0002\u0002\u0002\u0546\u0547\u0007\u0157\u0002\u0002\u0547\u0549\u0007", + "\u0174\u0002\u0002\u0548\u0546\u0003\u0002\u0002\u0002\u0548\u0549\u0003", + "\u0002\u0002\u0002\u0549\u054a\u0003\u0002\u0002\u0002\u054a\u054b\u0007", + "\u016d\u0002\u0002\u054b{\u0003\u0002\u0002\u0002\u054c\u054e\u0007", + "\u00be\u0002\u0002\u054d\u054c\u0003\u0002\u0002\u0002\u054d\u054e\u0003", + "\u0002\u0002\u0002\u054e\u054f\u0003\u0002\u0002\u0002\u054f\u0558\u0007", + "\u00c0\u0002\u0002\u0550\u0551\u0007$\u0002\u0002\u0551\u0552\u0007", + "\u00fd\u0002\u0002\u0552\u0558\u0005\u01b8\u00dd\u0002\u0553\u0555\u0007", + "\u00be\u0002\u0002\u0554\u0553\u0003\u0002\u0002\u0002\u0554\u0555\u0003", + "\u0002\u0002\u0002\u0555\u0556\u0003\u0002\u0002\u0002\u0556\u0558\t", + "\u0014\u0002\u0002\u0557\u054d\u0003\u0002\u0002\u0002\u0557\u0550\u0003", + "\u0002\u0002\u0002\u0557\u0554\u0003\u0002\u0002\u0002\u0558}\u0003", + "\u0002\u0002\u0002\u0559\u055b\u0007\u0156\u0002\u0002\u055a\u0559\u0003", + "\u0002\u0002\u0002\u055a\u055b\u0003\u0002\u0002\u0002\u055b\u055c\u0003", + "\u0002\u0002\u0002\u055c\u055d\u0007\u015c\u0002\u0002\u055d\u0566\u0005", + "\u0180\u00c1\u0002\u055e\u0560\u0007\u0137\u0002\u0002\u055f\u055e\u0003", + "\u0002\u0002\u0002\u055f\u0560\u0003\u0002\u0002\u0002\u0560\u0561\u0003", + "\u0002\u0002\u0002\u0561\u0563\u0007H\u0002\u0002\u0562\u0564\u0005", + "\u0180\u00c1\u0002\u0563\u0562\u0003\u0002\u0002\u0002\u0563\u0564\u0003", + "\u0002\u0002\u0002\u0564\u0566\u0003\u0002\u0002\u0002\u0565\u055a\u0003", + "\u0002\u0002\u0002\u0565\u055f\u0003\u0002\u0002\u0002\u0566\u007f\u0003", + "\u0002\u0002\u0002\u0567\u0568\u00078\u0002\u0002\u0568\u056c\t\u0015", + "\u0002\u0002\u0569\u056a\u0007\u0083\u0002\u0002\u056a\u056b\u0007\u00be", + "\u0002\u0002\u056b\u056d\u0007g\u0002\u0002\u056c\u0569\u0003\u0002", + "\u0002\u0002\u056c\u056d\u0003\u0002\u0002\u0002\u056d\u056e\u0003\u0002", + "\u0002\u0002\u056e\u0572\u0005\u0180\u00c1\u0002\u056f\u0571\u0005\u0082", + "B\u0002\u0570\u056f\u0003\u0002\u0002\u0002\u0571\u0574\u0003\u0002", + "\u0002\u0002\u0572\u0570\u0003\u0002\u0002\u0002\u0572\u0573\u0003\u0002", + "\u0002\u0002\u0573\u0081\u0003\u0002\u0002\u0002\u0574\u0572\u0003\u0002", + "\u0002\u0002\u0575\u0576\u0007-\u0002\u0002\u0576\u057a\u0005\u0180", + "\u00c1\u0002\u0577\u0578\u0007\u00a4\u0002\u0002\u0578\u057a\u0005\u0180", + "\u00c1\u0002\u0579\u0575\u0003\u0002\u0002\u0002\u0579\u0577\u0003\u0002", + "\u0002\u0002\u057a\u0083\u0003\u0002\u0002\u0002\u057b\u0583\u0007\u0007", + "\u0002\u0002\u057c\u057f\u00078\u0002\u0002\u057d\u057e\u0007\u00c8", + "\u0002\u0002\u057e\u0580\u0007\u00e2\u0002\u0002\u057f\u057d\u0003\u0002", + "\u0002\u0002\u057f\u0580\u0003\u0002\u0002\u0002\u0580\u0583\u0003\u0002", + "\u0002\u0002\u0581\u0583\u0007\u00e2\u0002\u0002\u0582\u057b\u0003\u0002", + "\u0002\u0002\u0582\u057c\u0003\u0002\u0002\u0002\u0582\u0581\u0003\u0002", + "\u0002\u0002\u0582\u0583\u0003\u0002\u0002\u0002\u0583\u0584\u0003\u0002", + "\u0002\u0002\u0584\u0585\u0007v\u0002\u0002\u0585\u0587\u0005\u01b8", + "\u00dd\u0002\u0586\u0588\u0005\u0096L\u0002\u0587\u0586\u0003\u0002", + "\u0002\u0002\u0587\u0588\u0003\u0002\u0002\u0002\u0588\u0589\u0003\u0002", + "\u0002\u0002\u0589\u058b\u0005\u0086D\u0002\u058a\u058c\t\u0016\u0002", + "\u0002\u058b\u058a\u0003\u0002\u0002\u0002\u058b\u058c\u0003\u0002\u0002", + "\u0002\u058c\u058e\u0003\u0002\u0002\u0002\u058d\u058f\u00052\u001a", + "\u0002\u058e\u058d\u0003\u0002\u0002\u0002\u058e\u058f\u0003\u0002\u0002", + "\u0002\u058f\u0590\u0003\u0002\u0002\u0002\u0590\u0591\u0005\b\u0005", + "\u0002\u0591\u0085\u0003\u0002\u0002\u0002\u0592\u0593\t\u0017\u0002", + "\u0002\u0593\u0595\u0005x=\u0002\u0594\u0596\u0005z>\u0002\u0595\u0594", + "\u0003\u0002\u0002\u0002\u0595\u0596\u0003\u0002\u0002\u0002\u0596\u0087", + "\u0003\u0002\u0002\u0002\u0597\u059f\u0007\u0007\u0002\u0002\u0598\u059b", + "\u00078\u0002\u0002\u0599\u059a\u0007\u00c8\u0002\u0002\u059a\u059c", + "\u0007\u00e2\u0002\u0002\u059b\u0599\u0003\u0002\u0002\u0002\u059b\u059c", + "\u0003\u0002\u0002\u0002\u059c\u059f\u0003\u0002\u0002\u0002\u059d\u059f", + "\u0007\u00e2\u0002\u0002\u059e\u0597\u0003\u0002\u0002\u0002\u059e\u0598", + "\u0003\u0002\u0002\u0002\u059e\u059d\u0003\u0002\u0002\u0002\u059e\u059f", + "\u0003\u0002\u0002\u0002\u059f\u05a0\u0003\u0002\u0002\u0002\u05a0\u05a1", + "\u0007\u00cf\u0002\u0002\u05a1\u05a2\u0005\u01b8\u00dd\u0002\u05a2\u05a3", + "\t\u0016\u0002\u0002\u05a3\u05a4\u0005\u008aF\u0002\u05a4\u05a8\u0007", + "_\u0002\u0002\u05a5\u05a6\u0005\u01b8\u00dd\u0002\u05a6\u05a7\u0007", + "\u016f\u0002\u0002\u05a7\u05a9\u0003\u0002\u0002\u0002\u05a8\u05a5\u0003", + "\u0002\u0002\u0002\u05a8\u05a9\u0003\u0002\u0002\u0002\u05a9\u0089\u0003", + "\u0002\u0002\u0002\u05aa\u05ab\u0005\u008cG\u0002\u05ab\u05b1\u0007", + "\u016f\u0002\u0002\u05ac\u05ad\u0005\u008cG\u0002\u05ad\u05ae\u0007", + "\u016f\u0002\u0002\u05ae\u05b0\u0003\u0002\u0002\u0002\u05af\u05ac\u0003", + "\u0002\u0002\u0002\u05b0\u05b3\u0003\u0002\u0002\u0002\u05b1\u05af\u0003", + "\u0002\u0002\u0002\u05b1\u05b2\u0003\u0002\u0002\u0002\u05b2\u008b\u0003", + "\u0002\u0002\u0002\u05b3\u05b1\u0003\u0002\u0002\u0002\u05b4\u05c2\u0005", + "4\u001b\u0002\u05b5\u05b6\u0007v\u0002\u0002\u05b6\u05b8\u0005\u01b8", + "\u00dd\u0002\u05b7\u05b9\u0005\u0096L\u0002\u05b8\u05b7\u0003\u0002", + "\u0002\u0002\u05b8\u05b9\u0003\u0002\u0002\u0002\u05b9\u05ba\u0003\u0002", + "\u0002\u0002\u05ba\u05bb\u0005\u0086D\u0002\u05bb\u05c2\u0003\u0002", + "\u0002\u0002\u05bc\u05bd\t\u0018\u0002\u0002\u05bd\u05bf\u0005\u01b8", + "\u00dd\u0002\u05be\u05c0\u0005\u0096L\u0002\u05bf\u05be\u0003\u0002", + "\u0002\u0002\u05bf\u05c0\u0003\u0002\u0002\u0002\u05c0\u05c2\u0003\u0002", + "\u0002\u0002\u05c1\u05b4\u0003\u0002\u0002\u0002\u05c1\u05b5\u0003\u0002", + "\u0002\u0002\u05c1\u05bc\u0003\u0002\u0002\u0002\u05c2\u008d\u0003\u0002", + "\u0002\u0002\u05c3\u05cb\u0007\u0007\u0002\u0002\u05c4\u05c7\u00078", + "\u0002\u0002\u05c5\u05c6\u0007\u00c8\u0002\u0002\u05c6\u05c8\u0007\u00e2", + "\u0002\u0002\u05c7\u05c5\u0003\u0002\u0002\u0002\u05c7\u05c8\u0003\u0002", + "\u0002\u0002\u05c8\u05cb\u0003\u0002\u0002\u0002\u05c9\u05cb\u0007\u00e2", + "\u0002\u0002\u05ca\u05c3\u0003\u0002\u0002\u0002\u05ca\u05c4\u0003\u0002", + "\u0002\u0002\u05ca\u05c9\u0003\u0002\u0002\u0002\u05ca\u05cb\u0003\u0002", + "\u0002\u0002\u05cb\u05cc\u0003\u0002\u0002\u0002\u05cc\u05cd\u0007\u00cf", + "\u0002\u0002\u05cd\u05ce\u0007\u0019\u0002\u0002\u05ce\u05cf\u0005\u01b8", + "\u00dd\u0002\u05cf\u05d0\t\u0016\u0002\u0002\u05d0\u05d1\u0005\u0090", + "I\u0002\u05d1\u05d5\u0007_\u0002\u0002\u05d2\u05d3\u0005\u01b8\u00dd", + "\u0002\u05d3\u05d4\u0007\u016f\u0002\u0002\u05d4\u05d6\u0003\u0002\u0002", + "\u0002\u05d5\u05d2\u0003\u0002\u0002\u0002\u05d5\u05d6\u0003\u0002\u0002", + "\u0002\u05d6\u008f\u0003\u0002\u0002\u0002\u05d7\u05d8\u0005\u0092J", + "\u0002\u05d8\u05de\u0007\u016f\u0002\u0002\u05d9\u05da\u0005\u0092J", + "\u0002\u05da\u05db\u0007\u016f\u0002\u0002\u05db\u05dd\u0003\u0002\u0002", + "\u0002\u05dc\u05d9\u0003\u0002\u0002\u0002\u05dd\u05e0\u0003\u0002\u0002", + "\u0002\u05de\u05dc\u0003\u0002\u0002\u0002\u05de\u05df\u0003\u0002\u0002", + "\u0002\u05df\u0091\u0003\u0002\u0002\u0002\u05e0\u05de\u0003\u0002\u0002", + "\u0002\u05e1\u05e5\u00054\u001b\u0002\u05e2\u05e5\u0005\u0084C\u0002", + "\u05e3\u05e5\u0005\u0094K\u0002\u05e4\u05e1\u0003\u0002\u0002\u0002", + "\u05e4\u05e2\u0003\u0002\u0002\u0002\u05e4\u05e3\u0003\u0002\u0002\u0002", + "\u05e5\u0093\u0003\u0002\u0002\u0002\u05e6\u05ee\u0007\u0007\u0002\u0002", + "\u05e7\u05ea\u00078\u0002\u0002\u05e8\u05e9\u0007\u00c8\u0002\u0002", + "\u05e9\u05eb\u0007\u00e2\u0002\u0002\u05ea\u05e8\u0003\u0002\u0002\u0002", + "\u05ea\u05eb\u0003\u0002\u0002\u0002\u05eb\u05ee\u0003\u0002\u0002\u0002", + "\u05ec\u05ee\u0007\u00e2\u0002\u0002\u05ed\u05e6\u0003\u0002\u0002\u0002", + "\u05ed\u05e7\u0003\u0002\u0002\u0002\u05ed\u05ec\u0003\u0002\u0002\u0002", + "\u05ed\u05ee\u0003\u0002\u0002\u0002\u05ee\u05ef\u0003\u0002\u0002\u0002", + "\u05ef\u05f0\t\u0018\u0002\u0002\u05f0\u05f2\u0005\u01b8\u00dd\u0002", + "\u05f1\u05f3\u0005\u0096L\u0002\u05f2\u05f1\u0003\u0002\u0002\u0002", + "\u05f2\u05f3\u0003\u0002\u0002\u0002\u05f3\u05f5\u0003\u0002\u0002\u0002", + "\u05f4\u05f6\u0005\u009aN\u0002\u05f5\u05f4\u0003\u0002\u0002\u0002", + "\u05f5\u05f6\u0003\u0002\u0002\u0002\u05f6\u05f8\u0003\u0002\u0002\u0002", + "\u05f7\u05f9\t\u0016\u0002\u0002\u05f8\u05f7\u0003\u0002\u0002\u0002", + "\u05f8\u05f9\u0003\u0002\u0002\u0002\u05f9\u05fb\u0003\u0002\u0002\u0002", + "\u05fa\u05fc\u00052\u001a\u0002\u05fb\u05fa\u0003\u0002\u0002\u0002", + "\u05fb\u05fc\u0003\u0002\u0002\u0002\u05fc\u05fe\u0003\u0002\u0002\u0002", + "\u05fd\u05ff\u0005\u0116\u008c\u0002\u05fe\u05fd\u0003\u0002\u0002\u0002", + "\u05fe\u05ff\u0003\u0002\u0002\u0002\u05ff\u0600\u0003\u0002\u0002\u0002", + "\u0600\u0604\u0005\f\u0007\u0002\u0601\u0602\u0005\u01b8\u00dd\u0002", + "\u0602\u0603\u0007\u016f\u0002\u0002\u0603\u0605\u0003\u0002\u0002\u0002", + "\u0604\u0601\u0003\u0002\u0002\u0002\u0604\u0605\u0003\u0002\u0002\u0002", + "\u0605\u0095\u0003\u0002\u0002\u0002\u0606\u0607\u0007\u016a\u0002\u0002", + "\u0607\u061d\u0007\u016d\u0002\u0002\u0608\u0609\u0007\u016a\u0002\u0002", + "\u0609\u060e\u0005\u0098M\u0002\u060a\u060b\u0007\u0157\u0002\u0002", + "\u060b\u060d\u0005\u0098M\u0002\u060c\u060a\u0003\u0002\u0002\u0002", + "\u060d\u0610\u0003\u0002\u0002\u0002\u060e\u060c\u0003\u0002\u0002\u0002", + "\u060e\u060f\u0003\u0002\u0002\u0002\u060f\u0611\u0003\u0002\u0002\u0002", + "\u0610\u060e\u0003\u0002\u0002\u0002\u0611\u0612\u0007\u016d\u0002\u0002", + "\u0612\u061d\u0003\u0002\u0002\u0002\u0613\u0614\u0006L\u0004\u0002", + "\u0614\u0619\u0005\u0098M\u0002\u0615\u0616\u0007\u0157\u0002\u0002", + "\u0616\u0618\u0005\u0098M\u0002\u0617\u0615\u0003\u0002\u0002\u0002", + "\u0618\u061b\u0003\u0002\u0002\u0002\u0619\u0617\u0003\u0002\u0002\u0002", + "\u0619\u061a\u0003\u0002\u0002\u0002\u061a\u061d\u0003\u0002\u0002\u0002", + "\u061b\u0619\u0003\u0002\u0002\u0002\u061c\u0606\u0003\u0002\u0002\u0002", + "\u061c\u0608\u0003\u0002\u0002\u0002\u061c\u0613\u0003\u0002\u0002\u0002", + "\u061d\u0097\u0003\u0002\u0002\u0002\u061e\u0624\u0007\u0086\u0002\u0002", + "\u061f\u0624\u0007\u00ca\u0002\u0002\u0620\u0624\u0007\u008b\u0002\u0002", + "\u0621\u0622\u0007\u0086\u0002\u0002\u0622\u0624\u0007\u00ca\u0002\u0002", + "\u0623\u061e\u0003\u0002\u0002\u0002\u0623\u061f\u0003\u0002\u0002\u0002", + "\u0623\u0620\u0003\u0002\u0002\u0002\u0623\u0621\u0003\u0002\u0002\u0002", + "\u0623\u0624\u0003\u0002\u0002\u0002\u0624\u0625\u0003\u0002\u0002\u0002", + "\u0625\u0626\u0005\u01b8\u00dd\u0002\u0626\u0628\u0005x=\u0002\u0627", + "\u0629\u0005z>\u0002\u0628\u0627\u0003\u0002\u0002\u0002\u0628\u0629", + "\u0003\u0002\u0002\u0002\u0629\u062d\u0003\u0002\u0002\u0002\u062a\u062c", + "\u0005|?\u0002\u062b\u062a\u0003\u0002\u0002\u0002\u062c\u062f\u0003", + "\u0002\u0002\u0002\u062d\u062b\u0003\u0002\u0002\u0002\u062d\u062e\u0003", + "\u0002\u0002\u0002\u062e\u0631\u0003\u0002\u0002\u0002\u062f\u062d\u0003", + "\u0002\u0002\u0002\u0630\u0632\u0005~@\u0002\u0631\u0630\u0003\u0002", + "\u0002\u0002\u0631\u0632\u0003\u0002\u0002\u0002\u0632\u0649\u0003\u0002", + "\u0002\u0002\u0633\u0639\u0005\u01b8\u00dd\u0002\u0634\u063a\u0007\u0086", + "\u0002\u0002\u0635\u063a\u0007\u00ca\u0002\u0002\u0636\u063a\u0007\u008b", + "\u0002\u0002\u0637\u0638\u0007\u0086\u0002\u0002\u0638\u063a\u0007\u00ca", + "\u0002\u0002\u0639\u0634\u0003\u0002\u0002\u0002\u0639\u0635\u0003\u0002", + "\u0002\u0002\u0639\u0636\u0003\u0002\u0002\u0002\u0639\u0637\u0003\u0002", + "\u0002\u0002\u0639\u063a\u0003\u0002\u0002\u0002\u063a\u063b\u0003\u0002", + "\u0002\u0002\u063b\u063d\u0005x=\u0002\u063c\u063e\u0005z>\u0002\u063d", + "\u063c\u0003\u0002\u0002\u0002\u063d\u063e\u0003\u0002\u0002\u0002\u063e", + "\u0642\u0003\u0002\u0002\u0002\u063f\u0641\u0005|?\u0002\u0640\u063f", + "\u0003\u0002\u0002\u0002\u0641\u0644\u0003\u0002\u0002\u0002\u0642\u0640", + "\u0003\u0002\u0002\u0002\u0642\u0643\u0003\u0002\u0002\u0002\u0643\u0646", + "\u0003\u0002\u0002\u0002\u0644\u0642\u0003\u0002\u0002\u0002\u0645\u0647", + "\u0005~@\u0002\u0646\u0645\u0003\u0002\u0002\u0002\u0646\u0647\u0003", + "\u0002\u0002\u0002\u0647\u0649\u0003\u0002\u0002\u0002\u0648\u0623\u0003", + "\u0002\u0002\u0002\u0648\u0633\u0003\u0002\u0002\u0002\u0649\u0099\u0003", + "\u0002\u0002\u0002\u064a\u064c\u0005\u009cO\u0002\u064b\u064a\u0003", + "\u0002\u0002\u0002\u064c\u064d\u0003\u0002\u0002\u0002\u064d\u064b\u0003", + "\u0002\u0002\u0002\u064d\u064e\u0003\u0002\u0002\u0002\u064e\u009b\u0003", + "\u0002\u0002\u0002\u064f\u0650\u0007\u009d\u0002\u0002\u0650\u065b\u0007", + "\u0108\u0002\u0002\u0651\u0652\u0007\u0108\u0002\u0002\u0652\u0653\u0007", + "\u00f9\u0002\u0002\u0653\u065b\t\u0019\u0002\u0002\u0654\u0656\u0007", + "Z\u0002\u0002\u0655\u0654\u0003\u0002\u0002\u0002\u0655\u0656\u0003", + "\u0002\u0002\u0002\u0656\u0657\u0003\u0002\u0002\u0002\u0657\u0658\u0007", + "\u00e5\u0002\u0002\u0658\u0659\u0007\u0100\u0002\u0002\u0659\u065b\u0007", + "\u0174\u0002\u0002\u065a\u064f\u0003\u0002\u0002\u0002\u065a\u0651\u0003", + "\u0002\u0002\u0002\u065a\u0655\u0003\u0002\u0002\u0002\u065b\u009d\u0003", + "\u0002\u0002\u0002\u065c\u065d\u0007Y\u0002\u0002\u065d\u0660\u0007", + "\u0118\u0002\u0002\u065e\u065f\u0007\u0083\u0002\u0002\u065f\u0661\u0007", + "g\u0002\u0002\u0660\u065e\u0003\u0002\u0002\u0002\u0660\u0661\u0003", + "\u0002\u0002\u0002\u0661\u0662\u0003\u0002\u0002\u0002\u0662\u066b\u0005", + "\u014a\u00a6\u0002\u0663\u0664\u0007Y\u0002\u0002\u0664\u0667\t\u0015", + "\u0002\u0002\u0665\u0666\u0007\u0083\u0002\u0002\u0666\u0668\u0007g", + "\u0002\u0002\u0667\u0665\u0003\u0002\u0002\u0002\u0667\u0668\u0003\u0002", + "\u0002\u0002\u0668\u0669\u0003\u0002\u0002\u0002\u0669\u066b\u0005\u0180", + "\u00c1\u0002\u066a\u065c\u0003\u0002\u0002\u0002\u066a\u0663\u0003\u0002", + "\u0002\u0002\u066b\u009f\u0003\u0002\u0002\u0002\u066c\u066d\u0007_", + "\u0002\u0002\u066d\u066e\u0007\u0123\u0002\u0002\u066e\u00a1\u0003\u0002", + "\u0002\u0002\u066f\u0671\t\u001a\u0002\u0002\u0670\u0672\u0007\u0085", + "\u0002\u0002\u0671\u0670\u0003\u0002\u0002\u0002\u0671\u0672\u0003\u0002", + "\u0002\u0002\u0672\u0673\u0003\u0002\u0002\u0002\u0673\u0679\u0005\u0180", + "\u00c1\u0002\u0674\u0675\u0007\u016a\u0002\u0002\u0675\u0676\u0005\u01a0", + "\u00d1\u0002\u0676\u0677\u0007\u016d\u0002\u0002\u0677\u067a\u0003\u0002", + "\u0002\u0002\u0678\u067a\u0005\u01a0\u00d1\u0002\u0679\u0674\u0003\u0002", + "\u0002\u0002\u0679\u0678\u0003\u0002\u0002\u0002\u0679\u067a\u0003\u0002", + "\u0002\u0002\u067a\u0684\u0003\u0002\u0002\u0002\u067b\u067c\u0007\u0094", + "\u0002\u0002\u067c\u0681\u0007\u0171\u0002\u0002\u067d\u067e\u0007\u0157", + "\u0002\u0002\u067e\u0680\u0007\u0171\u0002\u0002\u067f\u067d\u0003\u0002", + "\u0002\u0002\u0680\u0683\u0003\u0002\u0002\u0002\u0681\u067f\u0003\u0002", + "\u0002\u0002\u0681\u0682\u0003\u0002\u0002\u0002\u0682\u0685\u0003\u0002", + "\u0002\u0002\u0683\u0681\u0003\u0002\u0002\u0002\u0684\u067b\u0003\u0002", + "\u0002\u0002\u0684\u0685\u0003\u0002\u0002\u0002\u0685\u0687\u0003\u0002", + "\u0002\u0002\u0686\u0688\u0005\u0118\u008d\u0002\u0687\u0686\u0003\u0002", + "\u0002\u0002\u0687\u0688\u0003\u0002\u0002\u0002\u0688\u00a3\u0003\u0002", + "\u0002\u0002\u0689\u068d\u0005\u00a6T\u0002\u068a\u068d\u0005\u00a8", + "U\u0002\u068b\u068d\u0005\u00aaV\u0002\u068c\u0689\u0003\u0002\u0002", + "\u0002\u068c\u068a\u0003\u0002\u0002\u0002\u068c\u068b\u0003\u0002\u0002", + "\u0002\u068d\u00a5\u0003\u0002\u0002\u0002\u068e\u068f\u0007\u0083\u0002", + "\u0002\u068f\u0690\u0005\u0170\u00b9\u0002\u0690\u0691\u0007\u011d\u0002", + "\u0002\u0691\u0695\u0005\u0004\u0003\u0002\u0692\u0694\u0005\u00acW", + "\u0002\u0693\u0692\u0003\u0002\u0002\u0002\u0694\u0697\u0003\u0002\u0002", + "\u0002\u0695\u0693\u0003\u0002\u0002\u0002\u0695\u0696\u0003\u0002\u0002", + "\u0002\u0696\u0699\u0003\u0002\u0002\u0002\u0697\u0695\u0003\u0002\u0002", + "\u0002\u0698\u069a\u0005\u00aeX\u0002\u0699\u0698\u0003\u0002\u0002", + "\u0002\u0699\u069a\u0003\u0002\u0002\u0002\u069a\u069b\u0003\u0002\u0002", + "\u0002\u069b\u069c\u0007_\u0002\u0002\u069c\u069d\u0007\u0083\u0002", + "\u0002\u069d\u00a7\u0003\u0002\u0002\u0002\u069e\u069f\u0007\u0083\u0002", + "\u0002\u069f\u06a0\u0005\u0170\u00b9\u0002\u06a0\u06a3\u0005\b\u0005", + "\u0002\u06a1\u06a2\u0007[\u0002\u0002\u06a2\u06a4\u0005\b\u0005\u0002", + "\u06a3\u06a1\u0003\u0002\u0002\u0002\u06a3\u06a4\u0003\u0002\u0002\u0002", + "\u06a4\u00a9\u0003\u0002\u0002\u0002\u06a5\u06a6\u0007\u015a\u0002\u0002", + "\u06a6\u06a7\u0007\u0083\u0002\u0002\u06a7\u06a8\u0005\u0170\u00b9\u0002", + "\u06a8\u06a9\u0007\u011d\u0002\u0002\u06a9\u06aa\u0005\b\u0005\u0002", + "\u06aa\u00ab\u0003\u0002\u0002\u0002\u06ab\u06ac\t\u001b\u0002\u0002", + "\u06ac\u06ad\u0005\u0170\u00b9\u0002\u06ad\u06ae\u0007\u011d\u0002\u0002", + "\u06ae\u06af\u0005\u0004\u0003\u0002\u06af\u00ad\u0003\u0002\u0002\u0002", + "\u06b0\u06b1\u0007[\u0002\u0002\u06b1\u06b2\u0005\u0004\u0003\u0002", + "\u06b2\u00af\u0003\u0002\u0002\u0002\u06b3\u06b6\u0007\u0087\u0002\u0002", + "\u06b4\u06b7\u0005\u01b2\u00da\u0002\u06b5\u06b7\u0005\u0180\u00c1\u0002", + "\u06b6\u06b4\u0003\u0002\u0002\u0002\u06b6\u06b5\u0003\u0002\u0002\u0002", + "\u06b7\u00b1\u0003\u0002\u0002\u0002\u06b8\u06bf\u0007\u008c\u0002\u0002", + "\u06b9\u06ba\u0007\u00cd\u0002\u0002\u06ba\u06c0\u0007\u0118\u0002\u0002", + "\u06bb\u06bd\u0007\u0094\u0002\u0002\u06bc\u06be\u0007\u0118\u0002\u0002", + "\u06bd\u06bc\u0003\u0002\u0002\u0002\u06bd\u06be\u0003\u0002\u0002\u0002", + "\u06be\u06c0\u0003\u0002\u0002\u0002\u06bf\u06b9\u0003\u0002\u0002\u0002", + "\u06bf\u06bb\u0003\u0002\u0002\u0002\u06c0\u06c1\u0003\u0002\u0002\u0002", + "\u06c1\u06c3\u0005\u014a\u00a6\u0002\u06c2\u06c4\u0005\u00b4[\u0002", + "\u06c3\u06c2\u0003\u0002\u0002\u0002\u06c3\u06c4\u0003\u0002\u0002\u0002", + "\u06c4\u06c7\u0003\u0002\u0002\u0002\u06c5\u06c8\u0005\u011a\u008e\u0002", + "\u06c6\u06c8\u0005\u00b6\\\u0002\u06c7\u06c5\u0003\u0002\u0002\u0002", + "\u06c7\u06c6\u0003\u0002\u0002\u0002\u06c8\u00b3\u0003\u0002\u0002\u0002", + "\u06c9\u06ca\u0007\u016a\u0002\u0002\u06ca\u06cf\u0005\u01b8\u00dd\u0002", + "\u06cb\u06cc\u0007\u0157\u0002\u0002\u06cc\u06ce\u0005\u01b8\u00dd\u0002", + "\u06cd\u06cb\u0003\u0002\u0002\u0002\u06ce\u06d1\u0003\u0002\u0002\u0002", + "\u06cf\u06cd\u0003\u0002\u0002\u0002\u06cf\u06d0\u0003\u0002\u0002\u0002", + "\u06d0\u06d2\u0003\u0002\u0002\u0002\u06d1\u06cf\u0003\u0002\u0002\u0002", + "\u06d2\u06d3\u0007\u016d\u0002\u0002\u06d3\u00b5\u0003\u0002\u0002\u0002", + "\u06d4\u06d5\u0007\u012e\u0002\u0002\u06d5\u06da\u0005\u00b8]\u0002", + "\u06d6\u06d7\u0007\u0157\u0002\u0002\u06d7\u06d9\u0005\u00b8]\u0002", + "\u06d8\u06d6\u0003\u0002\u0002\u0002\u06d9\u06dc\u0003\u0002\u0002\u0002", + "\u06da\u06d8\u0003\u0002\u0002\u0002\u06da\u06db\u0003\u0002\u0002\u0002", + "\u06db\u00b7\u0003\u0002\u0002\u0002\u06dc\u06da\u0003\u0002\u0002\u0002", + "\u06dd\u06de\u0007\u016a\u0002\u0002\u06de\u06e3\u0005\u0180\u00c1\u0002", + "\u06df\u06e0\u0007\u0157\u0002\u0002\u06e0\u06e2\u0005\u0180\u00c1\u0002", + "\u06e1\u06df\u0003\u0002\u0002\u0002\u06e2\u06e5\u0003\u0002\u0002\u0002", + "\u06e3\u06e1\u0003\u0002\u0002\u0002\u06e3\u06e4\u0003\u0002\u0002\u0002", + "\u06e4\u06e6\u0003\u0002\u0002\u0002\u06e5\u06e3\u0003\u0002\u0002\u0002", + "\u06e6\u06e7\u0007\u016d\u0002\u0002\u06e7\u00b9\u0003\u0002\u0002\u0002", + "\u06e8\u06e9\u0007\u008c\u0002\u0002\u06e9\u06eb\u0007\u00cd\u0002\u0002", + "\u06ea\u06ec\u0007\u00a3\u0002\u0002\u06eb\u06ea\u0003\u0002\u0002\u0002", + "\u06eb\u06ec\u0003\u0002\u0002\u0002\u06ec\u06ed\u0003\u0002\u0002\u0002", + "\u06ed\u06ee\u0007T\u0002\u0002\u06ee\u06ef\u0005\u01a6\u00d4\u0002", + "\u06ef\u06f0\u0005\u01a4\u00d3\u0002\u06f0\u00bb\u0003\u0002\u0002\u0002", + "\u06f1\u06f3\u0007h\u0002\u0002\u06f2\u06f4\u0007\u0171\u0002\u0002", + "\u06f3\u06f2\u0003\u0002\u0002\u0002\u06f3\u06f4\u0003\u0002\u0002\u0002", + "\u06f4\u06f7\u0003\u0002\u0002\u0002\u06f5\u06f6\u0007\u0134\u0002\u0002", + "\u06f6\u06f8\u0005\u0170\u00b9\u0002\u06f7\u06f5\u0003\u0002\u0002\u0002", + "\u06f7\u06f8\u0003\u0002\u0002\u0002\u06f8\u00bd\u0003\u0002\u0002\u0002", + "\u06f9\u06fa\u0007w\u0002\u0002\u06fa\u06fb\u0007R\u0002\u0002\u06fb", + "\u06fc\u0005\u00c0a\u0002\u06fc\u00bf\u0003\u0002\u0002\u0002\u06fd", + "\u0700\u0005\u00c2b\u0002\u06fe\u0700\u0005\u00c4c\u0002\u06ff\u06fd", + "\u0003\u0002\u0002\u0002\u06ff\u06fe\u0003\u0002\u0002\u0002\u0700\u00c1", + "\u0003\u0002\u0002\u0002\u0701\u0702\u0007e\u0002\u0002\u0702\u0703", + "\u0007\u0174\u0002\u0002\u0703\u0704\u0005\u01b8\u00dd\u0002\u0704\u0705", + "\u0007\u015c\u0002\u0002\u0705\u0706\u0007\u00b1\u0002\u0002\u0706\u00c3", + "\u0003\u0002\u0002\u0002\u0707\u0708\u0005\u01b8\u00dd\u0002\u0708\u0709", + "\u0007\u015c\u0002\u0002\u0709\u070a\u0007\u00f1\u0002\u0002\u070a\u00c5", + "\u0003\u0002\u0002\u0002\u070b\u070c\u0007z\u0002\u0002\u070c\u0711", + "\u0005\u00c8e\u0002\u070d\u070e\u0007\u0157\u0002\u0002\u070e\u0710", + "\u0005\u00c8e\u0002\u070f\u070d\u0003\u0002\u0002\u0002\u0710\u0713", + "\u0003\u0002\u0002\u0002\u0711\u070f\u0003\u0002\u0002\u0002\u0711\u0712", + "\u0003\u0002\u0002\u0002\u0712\u0714\u0003\u0002\u0002\u0002\u0713\u0711", + "\u0003\u0002\u0002\u0002\u0714\u0715\u0007\u0121\u0002\u0002\u0715\u0716", + "\u0007\u00ec\u0002\u0002\u0716\u0717\u0005\u01b8\u00dd\u0002\u0717\u00c7", + "\u0003\u0002\u0002\u0002\u0718\u0719\u0007d\u0002\u0002\u0719\u071a", + "\u0007\u00c5\u0002\u0002\u071a\u071b\u0007\u00d9\u0002\u0002\u071b\u071c", + "\u0005\u01b8\u00dd\u0002\u071c\u00c9\u0003\u0002\u0002\u0002\u071d\u071f", + "\u0007\u009e\u0002\u0002\u071e\u0720\u0007\u0171\u0002\u0002\u071f\u071e", + "\u0003\u0002\u0002\u0002\u071f\u0720\u0003\u0002\u0002\u0002\u0720\u00cb", + "\u0003\u0002\u0002\u0002\u0721\u0722\u0007\u00ac\u0002\u0002\u0722\u0723", + "\u0007\u00c3\u0002\u0002\u0723\u0726\u0005\u0180\u00c1\u0002\u0724\u0725", + "\u0007\u0121\u0002\u0002\u0725\u0727\u0005\u0180\u00c1\u0002\u0726\u0724", + "\u0003\u0002\u0002\u0002\u0726\u0727\u0003\u0002\u0002\u0002\u0727\u072a", + "\u0003\u0002\u0002\u0002\u0728\u0729\u0007\u000e\u0002\u0002\u0729\u072b", + "\u0005\u0180\u00c1\u0002\u072a\u0728\u0003\u0002\u0002\u0002\u072a\u072b", + "\u0003\u0002\u0002\u0002\u072b\u00cd\u0003\u0002\u0002\u0002\u072c\u072d", + "\u0007\u00c7\u0002\u0002\u072d\u0733\u0007\u0171\u0002\u0002\u072e\u0731", + "\u0007p\u0002\u0002\u072f\u0732\u0005\u011a\u008e\u0002\u0730\u0732", + "\u0005\u0180\u00c1\u0002\u0731\u072f\u0003\u0002\u0002\u0002\u0731\u0730", + "\u0003\u0002\u0002\u0002\u0732\u0734\u0003\u0002\u0002\u0002\u0733\u072e", + "\u0003\u0002\u0002\u0002\u0733\u0734\u0003\u0002\u0002\u0002\u0734\u00cf", + "\u0003\u0002\u0002\u0002\u0735\u0737\u0007k\u0002\u0002\u0736\u0738", + "\u0007t\u0002\u0002\u0737\u0736\u0003\u0002\u0002\u0002\u0737\u0738", + "\u0003\u0002\u0002\u0002\u0738\u0739\u0003\u0002\u0002\u0002\u0739\u073a", + "\u0007\u0171\u0002\u0002\u073a\u073b\u0007\u0094\u0002\u0002\u073b\u0740", + "\u0007\u0171\u0002\u0002\u073c\u073d\u0007\u0157\u0002\u0002\u073d\u073f", + "\u0007\u0171\u0002\u0002\u073e\u073c\u0003\u0002\u0002\u0002\u073f\u0742", + "\u0003\u0002\u0002\u0002\u0740\u073e\u0003\u0002\u0002\u0002\u0740\u0741", + "\u0003\u0002\u0002\u0002\u0741\u00d1\u0003\u0002\u0002\u0002\u0742\u0740", + "\u0003\u0002\u0002\u0002\u0743\u0744\u0007*\u0002\u0002\u0744\u0745", + "\t\u001c\u0002\u0002\u0745\u0746\u0007\u00c5\u0002\u0002\u0746\u0748", + "\u0005\u014a\u00a6\u0002\u0747\u0749\u0005\u00d4k\u0002\u0748\u0747", + "\u0003\u0002\u0002\u0002\u0748\u0749\u0003\u0002\u0002\u0002\u0749\u00d3", + "\u0003\u0002\u0002\u0002\u074a\u074b\u0007,\u0002\u0002\u074b\u074c", + "\u0007\u016a\u0002\u0002\u074c\u0751\u0005\u01b8\u00dd\u0002\u074d\u074e", + "\u0007\u0157\u0002\u0002\u074e\u0750\u0005\u01b8\u00dd\u0002\u074f\u074d", + "\u0003\u0002\u0002\u0002\u0750\u0753\u0003\u0002\u0002\u0002\u0751\u074f", + "\u0003\u0002\u0002\u0002\u0751\u0752\u0003\u0002\u0002\u0002\u0752\u0754", + "\u0003\u0002\u0002\u0002\u0753\u0751\u0003\u0002\u0002\u0002\u0754\u0755", + "\u0007\u016d\u0002\u0002\u0755\u00d5\u0003\u0002\u0002\u0002\u0756\u0757", + "\u0007\'\u0002\u0002\u0757\u0758\u0007\u0171\u0002\u0002\u0758\u00d7", + "\u0003\u0002\u0002\u0002\u0759\u075a\u0007)\u0002\u0002\u075a\u075b", + "\t\u001d\u0002\u0002\u075b\u075c\u0005\u00dan\u0002\u075c\u075d\u0007", + "\u0157\u0002\u0002\u075d\u075e\u0005\u00dan\u0002\u075e\u00d9\u0003", + "\u0002\u0002\u0002\u075f\u0761\u0005\u014a\u00a6\u0002\u0760\u0762\u0005", + "\u014c\u00a7\u0002\u0761\u0760\u0003\u0002\u0002\u0002\u0761\u0762\u0003", + "\u0002\u0002\u0002\u0762\u0768\u0003\u0002\u0002\u0002\u0763\u0764\u0007", + "\u016a\u0002\u0002\u0764\u0765\u0005\u011a\u008e\u0002\u0765\u0766\u0007", + "\u016d\u0002\u0002\u0766\u0768\u0003\u0002\u0002\u0002\u0767\u075f\u0003", + "\u0002\u0002\u0002\u0767\u0763\u0003\u0002\u0002\u0002\u0768\u076b\u0003", + "\u0002\u0002\u0002\u0769\u076a\u0007\u000e\u0002\u0002\u076a\u076c\u0005", + "\u01b8\u00dd\u0002\u076b\u0769\u0003\u0002\u0002\u0002\u076b\u076c\u0003", + "\u0002\u0002\u0002\u076c\u00db\u0003\u0002\u0002\u0002\u076d\u076e\u0007", + "5\u0002\u0002\u076e\u076f\u0007t\u0002\u0002\u076f\u0770\u0007\u00a3", + "\u0002\u0002\u0770\u0775\u0005\u00e0q\u0002\u0771\u0772\u0007\u0157", + "\u0002\u0002\u0772\u0774\u0005\u00e0q\u0002\u0773\u0771\u0003\u0002", + "\u0002\u0002\u0774\u0777\u0003\u0002\u0002\u0002\u0775\u0773\u0003\u0002", + "\u0002\u0002\u0775\u0776\u0003\u0002\u0002\u0002\u0776\u0778\u0003\u0002", + "\u0002\u0002\u0777\u0775\u0003\u0002\u0002\u0002\u0778\u0779\u0007\u0121", + "\u0002\u0002\u0779\u077d\u0005\u00e2r\u0002\u077a\u077c\u0005\u00e6", + "t\u0002\u077b\u077a\u0003\u0002\u0002\u0002\u077c\u077f\u0003\u0002", + "\u0002\u0002\u077d\u077b\u0003\u0002\u0002\u0002\u077d\u077e\u0003\u0002", + "\u0002\u0002\u077e\u00dd\u0003\u0002\u0002\u0002\u077f\u077d\u0003\u0002", + "\u0002\u0002\u0780\u0786\u00075\u0002\u0002\u0781\u0787\u0005\u014a", + "\u00a6\u0002\u0782\u0783\u0007\u016a\u0002\u0002\u0783\u0784\u0005\u011a", + "\u008e\u0002\u0784\u0785\u0007\u016d\u0002\u0002\u0785\u0787\u0003\u0002", + "\u0002\u0002\u0786\u0781\u0003\u0002\u0002\u0002\u0786\u0782\u0003\u0002", + "\u0002\u0002\u0787\u0788\u0003\u0002\u0002\u0002\u0788\u078a\u0007\u0121", + "\u0002\u0002\u0789\u078b\u0007\u007f\u0002\u0002\u078a\u0789\u0003\u0002", + "\u0002\u0002\u078a\u078b\u0003\u0002\u0002\u0002\u078b\u078c\u0003\u0002", + "\u0002\u0002\u078c\u0790\u0005\u00e2r\u0002\u078d\u078f\u0005\u00e4", + "s\u0002\u078e\u078d\u0003\u0002\u0002\u0002\u078f\u0792\u0003\u0002", + "\u0002\u0002\u0790\u078e\u0003\u0002\u0002\u0002\u0790\u0791\u0003\u0002", + "\u0002\u0002\u0791\u00df\u0003\u0002\u0002\u0002\u0792\u0790\u0003\u0002", + "\u0002\u0002\u0793\u0796\u0005\u01b2\u00da\u0002\u0794\u0796\u0005\u0180", + "\u00c1\u0002\u0795\u0793\u0003\u0002\u0002\u0002\u0795\u0794\u0003\u0002", + "\u0002\u0002\u0796\u00e1\u0003\u0002\u0002\u0002\u0797\u079a\u0005\u01b2", + "\u00da\u0002\u0798\u079a\u0005\u0180\u00c1\u0002\u0799\u0797\u0003\u0002", + "\u0002\u0002\u0799\u0798\u0003\u0002\u0002\u0002\u079a\u00e3\u0003\u0002", + "\u0002\u0002\u079b\u079c\u0007\u000e\u0002\u0002\u079c\u07a4\u0005\u01b8", + "\u00dd\u0002\u079d\u079e\u0007\u0011\u0002\u0002\u079e\u07a4\u0005\u0180", + "\u00c1\u0002\u079f\u07a0\u0007O\u0002\u0002\u07a0\u07a4\u0005\u0180", + "\u00c1\u0002\u07a1\u07a2\u0007\u010a\u0002\u0002\u07a2\u07a4\u0005\u01b8", + "\u00dd\u0002\u07a3\u079b\u0003\u0002\u0002\u0002\u07a3\u079d\u0003\u0002", + "\u0002\u0002\u07a3\u079f\u0003\u0002\u0002\u0002\u07a3\u07a1\u0003\u0002", + "\u0002\u0002\u07a4\u00e5\u0003\u0002\u0002\u0002\u07a5\u07a6\t\u001e", + "\u0002\u0002\u07a6\u00e7\u0003\u0002\u0002\u0002\u07a7\u07a9\u0007/", + "\u0002\u0002\u07a8\u07aa\u0007\u0139\u0002\u0002\u07a9\u07a8\u0003\u0002", + "\u0002\u0002\u07a9\u07aa\u0003\u0002\u0002\u0002\u07aa\u00e9\u0003\u0002", + "\u0002\u0002\u07ab\u07ad\u00078\u0002\u0002\u07ac\u07ae\u0007\u0128", + "\u0002\u0002\u07ad\u07ac\u0003\u0002\u0002\u0002\u07ad\u07ae\u0003\u0002", + "\u0002\u0002\u07ae\u07af\u0003\u0002\u0002\u0002\u07af\u07b0\u0007\u0088", + "\u0002\u0002\u07b0\u07b1\u0005\u01b8\u00dd\u0002\u07b1\u07b2\u0007\u00c5", + "\u0002\u0002\u07b2\u07b3\u0005\u014a\u00a6\u0002\u07b3\u07b4\u0007\u016a", + "\u0002\u0002\u07b4\u07b9\u0005\u00ecw\u0002\u07b5\u07b6\u0007\u0157", + "\u0002\u0002\u07b6\u07b8\u0005\u00ecw\u0002\u07b7\u07b5\u0003\u0002", + "\u0002\u0002\u07b8\u07bb\u0003\u0002\u0002\u0002\u07b9\u07b7\u0003\u0002", + "\u0002\u0002\u07b9\u07ba\u0003\u0002\u0002\u0002\u07ba\u07bc\u0003\u0002", + "\u0002\u0002\u07bb\u07b9\u0003\u0002\u0002\u0002\u07bc\u07bd\u0007\u016d", + "\u0002\u0002\u07bd\u00eb\u0003\u0002\u0002\u0002\u07be\u07c0\u0005\u01b8", + "\u00dd\u0002\u07bf\u07c1\t\t\u0002\u0002\u07c0\u07bf\u0003\u0002\u0002", + "\u0002\u07c0\u07c1\u0003\u0002\u0002\u0002\u07c1\u00ed\u0003\u0002\u0002", + "\u0002\u07c2\u07c3\u0005\u00f0y\u0002\u07c3\u00ef\u0003\u0002\u0002", + "\u0002\u07c4\u07c5\u0007\u0137\u0002\u0002\u07c5\u07c6\u0007\u016a\u0002", + "\u0002\u07c6\u07c7\u0005\u01b8\u00dd\u0002\u07c7\u07c8\u0007\u015c\u0002", + "\u0002\u07c8\u07d0\u0005\u01b8\u00dd\u0002\u07c9\u07ca\u0007\u0157\u0002", + "\u0002\u07ca\u07cb\u0005\u01b8\u00dd\u0002\u07cb\u07cc\u0007\u015c\u0002", + "\u0002\u07cc\u07cd\u0005\u01b8\u00dd\u0002\u07cd\u07cf\u0003\u0002\u0002", + "\u0002\u07ce\u07c9\u0003\u0002\u0002\u0002\u07cf\u07d2\u0003\u0002\u0002", + "\u0002\u07d0\u07ce\u0003\u0002\u0002\u0002\u07d0\u07d1\u0003\u0002\u0002", + "\u0002\u07d1\u07d3\u0003\u0002\u0002\u0002\u07d2\u07d0\u0003\u0002\u0002", + "\u0002\u07d3\u07d7\u0007\u016d\u0002\u0002\u07d4\u07d6\u0005l7\u0002", + "\u07d5\u07d4\u0003\u0002\u0002\u0002\u07d6\u07d9\u0003\u0002\u0002\u0002", + "\u07d7\u07d5\u0003\u0002\u0002\u0002\u07d7\u07d8\u0003\u0002\u0002\u0002", + "\u07d8\u00f1\u0003\u0002\u0002\u0002\u07d9\u07d7\u0003\u0002\u0002\u0002", + "\u07da\u07db\u0007\u00d7\u0002\u0002\u07db\u07e2\u0005\u0180\u00c1\u0002", + "\u07dc\u07dd\u0007\u00d7\u0002\u0002\u07dd\u07de\u0007\u016a\u0002\u0002", + "\u07de\u07df\u0005\u0180\u00c1\u0002\u07df\u07e0\u0007\u016d\u0002\u0002", + "\u07e0\u07e2\u0003\u0002\u0002\u0002\u07e1\u07da\u0003\u0002\u0002\u0002", + "\u07e1\u07dc\u0003\u0002\u0002\u0002\u07e2\u00f3\u0003\u0002\u0002\u0002", + "\u07e3\u07e5\u0007\u015a\u0002\u0002\u07e4\u07e3\u0003\u0002\u0002\u0002", + "\u07e4\u07e5\u0003\u0002\u0002\u0002\u07e5\u07e6\u0003\u0002\u0002\u0002", + "\u07e6\u07e8\u0007\u00dc\u0002\u0002\u07e7\u07e9\u0005\u0180\u00c1\u0002", + "\u07e8\u07e7\u0003\u0002\u0002\u0002\u07e8\u07e9\u0003\u0002\u0002\u0002", + "\u07e9\u00f5\u0003\u0002\u0002\u0002\u07ea\u07eb\u0007\u00de\u0002\u0002", + "\u07eb\u00f7\u0003\u0002\u0002\u0002\u07ec\u07f8\u0007\u00e3\u0002\u0002", + "\u07ed\u07ef\u0007\u010b\u0002\u0002\u07ee\u07f0\u0007\u012d\u0002\u0002", + "\u07ef\u07ee\u0003\u0002\u0002\u0002\u07ef\u07f0\u0003\u0002\u0002\u0002", + "\u07f0\u07f1\u0003\u0002\u0002\u0002\u07f1\u07f6\u0005\u0180\u00c1\u0002", + "\u07f2\u07f3\u0007\u00fd\u0002\u0002\u07f3\u07f4\u0007\u00b1\u0002\u0002", + "\u07f4\u07f5\u0007\u015c\u0002\u0002\u07f5\u07f7\u0005\u0180\u00c1\u0002", + "\u07f6\u07f2\u0003\u0002\u0002\u0002\u07f6\u07f7\u0003\u0002\u0002\u0002", + "\u07f7\u07f9\u0003\u0002\u0002\u0002\u07f8\u07ed\u0003\u0002\u0002\u0002", + "\u07f8\u07f9\u0003\u0002\u0002\u0002\u07f9\u00f9\u0003\u0002\u0002\u0002", + "\u07fa\u07fc\u0007\u00e7\u0002\u0002\u07fb\u07fd\u0005\u0180\u00c1\u0002", + "\u07fc\u07fb\u0003\u0002\u0002\u0002\u07fc\u07fd\u0003\u0002\u0002\u0002", + "\u07fd\u00fb\u0003\u0002\u0002\u0002\u07fe\u0800\u0007\u00ed\u0002\u0002", + "\u07ff\u0801\u0007\u0139\u0002\u0002\u0800\u07ff\u0003\u0002\u0002\u0002", + "\u0800\u0801\u0003\u0002\u0002\u0002\u0801\u00fd\u0003\u0002\u0002\u0002", + "\u0802\u0806\u0005\u0100\u0081\u0002\u0803\u0806\u0005\u0102\u0082\u0002", + "\u0804\u0806\u0005\u0104\u0083\u0002\u0805\u0802\u0003\u0002\u0002\u0002", + "\u0805\u0803\u0003\u0002\u0002\u0002\u0805\u0804\u0003\u0002\u0002\u0002", + "\u0806\u00ff\u0003\u0002\u0002\u0002\u0807\u0809\u0007<\u0002\u0002", + "\u0808\u0807\u0003\u0002\u0002\u0002\u0808\u0809\u0003\u0002\u0002\u0002", + "\u0809\u080a\u0003\u0002\u0002\u0002\u080a\u080d\u0007\u00f6\u0002\u0002", + "\u080b\u080d\u0007=\u0002\u0002\u080c\u0808\u0003\u0002\u0002\u0002", + "\u080c\u080b\u0003\u0002\u0002\u0002\u080d\u080f\u0003\u0002\u0002\u0002", + "\u080e\u0810\u0007\u015c\u0002\u0002\u080f\u080e\u0003\u0002\u0002\u0002", + "\u080f\u0810\u0003\u0002\u0002\u0002\u0810\u0811\u0003\u0002\u0002\u0002", + "\u0811\u0812\u0005\u0180\u00c1\u0002\u0812\u0101\u0003\u0002\u0002\u0002", + "\u0813\u0814\t\u001f\u0002\u0002\u0814\u0815\t \u0002\u0002\u0815\u0103", + "\u0003\u0002\u0002\u0002\u0816\u0817\u0007\u00db\u0002\u0002\u0817\u081a", + "\u0007\u015c\u0002\u0002\u0818\u081b\u0005\u0180\u00c1\u0002\u0819\u081b", + "\u0007\u00bd\u0002\u0002\u081a\u0818\u0003\u0002\u0002\u0002\u081a\u0819", + "\u0003\u0002\u0002\u0002\u081b\u081d\u0003\u0002\u0002\u0002\u081c\u081e", + "\u0007\u0129\u0002\u0002\u081d\u081c\u0003\u0002\u0002\u0002\u081d\u081e", + "\u0003\u0002\u0002\u0002\u081e\u081f\u0003\u0002\u0002\u0002\u081f\u0820", + "\u0007p\u0002\u0002\u0820\u0821\t!\u0002\u0002\u0821\u0105\u0003\u0002", + "\u0002\u0002\u0822\u0823\u0007\u0102\u0002\u0002\u0823\u0824\u0005\u01b8", + "\u00dd\u0002\u0824\u0107\u0003\u0002\u0002\u0002\u0825\u0828\u0007\u0116", + "\u0002\u0002\u0826\u0827\u0007\u0122\u0002\u0002\u0827\u0829\u0005\u0180", + "\u00c1\u0002\u0828\u0826\u0003\u0002\u0002\u0002\u0828\u0829\u0003\u0002", + "\u0002\u0002\u0829\u082a\u0003\u0002\u0002\u0002\u082a\u0834\u0007p", + "\u0002\u0002\u082b\u0835\u0005\u011a\u008e\u0002\u082c\u082e\u0005\u014a", + "\u00a6\u0002\u082d\u082f\u0005\u014c\u00a7\u0002\u082e\u082d\u0003\u0002", + "\u0002\u0002\u082e\u082f\u0003\u0002\u0002\u0002\u082f\u0832\u0003\u0002", + "\u0002\u0002\u0830\u0831\u0007\u00a1\u0002\u0002\u0831\u0833\u0005\u0180", + "\u00c1\u0002\u0832\u0830\u0003\u0002\u0002\u0002\u0832\u0833\u0003\u0002", + "\u0002\u0002\u0833\u0835\u0003\u0002\u0002\u0002\u0834\u082b\u0003\u0002", + "\u0002\u0002\u0834\u082c\u0003\u0002\u0002\u0002\u0835\u0109\u0003\u0002", + "\u0002\u0002\u0836\u0838\u0007\u0125\u0002\u0002\u0837\u0839\u0007\u0118", + "\u0002\u0002\u0838\u0837\u0003\u0002\u0002\u0002\u0838\u0839\u0003\u0002", + "\u0002\u0002\u0839\u083a\u0003\u0002\u0002\u0002\u083a\u083b\u0005\u014a", + "\u00a6\u0002\u083b\u010b\u0003\u0002\u0002\u0002\u083c\u083d\u0007\u012b", + "\u0002\u0002\u083d\u083e\u0005\u0180\u00c1\u0002\u083e\u010d\u0003\u0002", + "\u0002\u0002\u083f\u0841\u0007\u012e\u0002\u0002\u0840\u0842\u0007\u016a", + "\u0002\u0002\u0841\u0840\u0003\u0002\u0002\u0002\u0841\u0842\u0003\u0002", + "\u0002\u0002\u0842\u0843\u0003\u0002\u0002\u0002\u0843\u0848\u0005\u0180", + "\u00c1\u0002\u0844\u0845\u0007\u0157\u0002\u0002\u0845\u0847\u0005\u0180", + "\u00c1\u0002\u0846\u0844\u0003\u0002\u0002\u0002\u0847\u084a\u0003\u0002", + "\u0002\u0002\u0848\u0846\u0003\u0002\u0002\u0002\u0848\u0849\u0003\u0002", + "\u0002\u0002\u0849\u084c\u0003\u0002\u0002\u0002\u084a\u0848\u0003\u0002", + "\u0002\u0002\u084b\u084d\u0007\u016d\u0002\u0002\u084c\u084b\u0003\u0002", + "\u0002\u0002\u084c\u084d\u0003\u0002\u0002\u0002\u084d\u084e\u0003\u0002", + "\u0002\u0002\u084e\u0850\u0007\u0094\u0002\u0002\u084f\u0851\u0007\u016a", + "\u0002\u0002\u0850\u084f\u0003\u0002\u0002\u0002\u0850\u0851\u0003\u0002", + "\u0002\u0002\u0851\u0852\u0003\u0002\u0002\u0002\u0852\u0857\u0005\u01b8", + "\u00dd\u0002\u0853\u0854\u0007\u0157\u0002\u0002\u0854\u0856\u0005\u01b8", + "\u00dd\u0002\u0855\u0853\u0003\u0002\u0002\u0002\u0856\u0859\u0003\u0002", + "\u0002\u0002\u0857\u0855\u0003\u0002\u0002\u0002\u0857\u0858\u0003\u0002", + "\u0002\u0002\u0858\u085b\u0003\u0002\u0002\u0002\u0859\u0857\u0003\u0002", + "\u0002\u0002\u085a\u085c\u0007\u016d\u0002\u0002\u085b\u085a\u0003\u0002", + "\u0002\u0002\u085b\u085c\u0003\u0002\u0002\u0002\u085c\u010f\u0003\u0002", + "\u0002\u0002\u085d\u085e\u0007\u0136\u0002\u0002\u085e\u085f\u0005\u0170", + "\u00b9\u0002\u085f\u0860\t\"\u0002\u0002\u0860\u0861\u0005\u0004\u0003", + "\u0002\u0861\u0863\u0007_\u0002\u0002\u0862\u0864\t#\u0002\u0002\u0863", + "\u0862\u0003\u0002\u0002\u0002\u0863\u0864\u0003\u0002\u0002\u0002\u0864", + "\u0111\u0003\u0002\u0002\u0002\u0865\u0866\u0007p\u0002\u0002\u0866", + "\u0867\u0007\u0171\u0002\u0002\u0867\u0869\u0007\u0086\u0002\u0002\u0868", + "\u086a\u0007\u016a\u0002\u0002\u0869\u0868\u0003\u0002\u0002\u0002\u0869", + "\u086a\u0003\u0002\u0002\u0002\u086a\u086b\u0003\u0002\u0002\u0002\u086b", + "\u086d\u0005\u011a\u008e\u0002\u086c\u086e\u0007\u016d\u0002\u0002\u086d", + "\u086c\u0003\u0002\u0002\u0002\u086d\u086e\u0003\u0002\u0002\u0002\u086e", + "\u086f\u0003\u0002\u0002\u0002\u086f\u0870\u0007\u00ab\u0002\u0002\u0870", + "\u0871\u0005\u0004\u0003\u0002\u0871\u0872\u0007_\u0002\u0002\u0872", + "\u0873\u0007\u00ab\u0002\u0002\u0873\u0113\u0003\u0002\u0002\u0002\u0874", + "\u0875\u0007p\u0002\u0002\u0875\u0876\u0007\u0171\u0002\u0002\u0876", + "\u0878\u0007\u0086\u0002\u0002\u0877\u0879\u0007\u00e9\u0002\u0002\u0878", + "\u0877\u0003\u0002\u0002\u0002\u0878\u0879\u0003\u0002\u0002\u0002\u0879", + "\u087a\u0003\u0002\u0002\u0002\u087a\u087b\u0005\u0180\u00c1\u0002\u087b", + "\u087c\u0007\u015b\u0002\u0002\u087c\u087f\u0005\u0180\u00c1\u0002\u087d", + "\u087e\t$\u0002\u0002\u087e\u0880\u0005\u0180\u00c1\u0002\u087f\u087d", + "\u0003\u0002\u0002\u0002\u087f\u0880\u0003\u0002\u0002\u0002\u0880\u0881", + "\u0003\u0002\u0002\u0002\u0881\u0882\u0007\u00ab\u0002\u0002\u0882\u0883", + "\u0005\u0004\u0003\u0002\u0883\u0884\u0007_\u0002\u0002\u0884\u0885", + "\u0007\u00ab\u0002\u0002\u0885\u0115\u0003\u0002\u0002\u0002\u0886\u088d", + "\u0007\u017a\u0002\u0002\u0887\u0888\u0007\u0164\u0002\u0002\u0888\u0889", + "\u0007\u0164\u0002\u0002\u0889\u088a\u0007\u0171\u0002\u0002\u088a\u088b", + "\u0007\u0162\u0002\u0002\u088b\u088d\u0007\u0162\u0002\u0002\u088c\u0886", + "\u0003\u0002\u0002\u0002\u088c\u0887\u0003\u0002\u0002\u0002\u088d\u0117", + "\u0003\u0002\u0002\u0002\u088e\u088f\u0007\u012c\u0002\u0002\u088f\u0894", + "\u0005\u0180\u00c1\u0002\u0890\u0891\u0007\u0157\u0002\u0002\u0891\u0893", + "\u0005\u0180\u00c1\u0002\u0892\u0890\u0003\u0002\u0002\u0002\u0893\u0896", + "\u0003\u0002\u0002\u0002\u0894\u0892\u0003\u0002\u0002\u0002\u0894\u0895", + "\u0003\u0002\u0002\u0002\u0895\u0119\u0003\u0002\u0002\u0002\u0896\u0894", + "\u0003\u0002\u0002\u0002\u0897\u0899\u0005\u011c\u008f\u0002\u0898\u0897", + "\u0003\u0002\u0002\u0002\u0898\u0899\u0003\u0002\u0002\u0002\u0899\u089a", + "\u0003\u0002\u0002\u0002\u089a\u089b\u0005\u0122\u0092\u0002\u089b\u011b", + "\u0003\u0002\u0002\u0002\u089c\u089d\u0007\u0137\u0002\u0002\u089d\u08a2", + "\u0005\u011e\u0090\u0002\u089e\u089f\u0007\u0157\u0002\u0002\u089f\u08a1", + "\u0005\u011e\u0090\u0002\u08a0\u089e\u0003\u0002\u0002\u0002\u08a1\u08a4", + "\u0003\u0002\u0002\u0002\u08a2\u08a0\u0003\u0002\u0002\u0002\u08a2\u08a3", + "\u0003\u0002\u0002\u0002\u08a3\u011d\u0003\u0002\u0002\u0002\u08a4\u08a2", + "\u0003\u0002\u0002\u0002\u08a5\u08a7\u0005\u01b8\u00dd\u0002\u08a6\u08a8", + "\u0005\u0120\u0091\u0002\u08a7\u08a6\u0003\u0002\u0002\u0002\u08a7\u08a8", + "\u0003\u0002\u0002\u0002\u08a8\u08a9\u0003\u0002\u0002\u0002\u08a9\u08aa", + "\u0007\u000b\u0002\u0002\u08aa\u08ab\u0007\u016a\u0002\u0002\u08ab\u08ac", + "\u0005\u0122\u0092\u0002\u08ac\u08ad\u0007\u016d\u0002\u0002\u08ad\u011f", + "\u0003\u0002\u0002\u0002\u08ae\u08af\u0007\u016a\u0002\u0002\u08af\u08b4", + "\u0005\u01b8\u00dd\u0002\u08b0\u08b1\u0007\u0157\u0002\u0002\u08b1\u08b3", + "\u0005\u01b8\u00dd\u0002\u08b2\u08b0\u0003\u0002\u0002\u0002\u08b3\u08b6", + "\u0003\u0002\u0002\u0002\u08b4\u08b2\u0003\u0002\u0002\u0002\u08b4\u08b5", + "\u0003\u0002\u0002\u0002\u08b5\u08b7\u0003\u0002\u0002\u0002\u08b6\u08b4", + "\u0003\u0002\u0002\u0002\u08b7\u08b8\u0007\u016d\u0002\u0002\u08b8\u0121", + "\u0003\u0002\u0002\u0002\u08b9\u08bf\u0005\u0124\u0093\u0002\u08ba\u08bb", + "\u0005\u0126\u0094\u0002\u08bb\u08bc\u0005\u0124\u0093\u0002\u08bc\u08be", + "\u0003\u0002\u0002\u0002\u08bd\u08ba\u0003\u0002\u0002\u0002\u08be\u08c1", + "\u0003\u0002\u0002\u0002\u08bf\u08bd\u0003\u0002\u0002\u0002\u08bf\u08c0", + "\u0003\u0002\u0002\u0002\u08c0\u0123\u0003\u0002\u0002\u0002\u08c1\u08bf", + "\u0003\u0002\u0002\u0002\u08c2\u08c8\u0005\u0128\u0095\u0002\u08c3\u08c4", + "\u0007\u016a\u0002\u0002\u08c4\u08c5\u0005\u0122\u0092\u0002\u08c5\u08c6", + "\u0007\u016d\u0002\u0002\u08c6\u08c8\u0003\u0002\u0002\u0002\u08c7\u08c2", + "\u0003\u0002\u0002\u0002\u08c7\u08c3\u0003\u0002\u0002\u0002\u08c8\u0125", + "\u0003\u0002\u0002\u0002\u08c9\u08cb\u0007\u0127\u0002\u0002\u08ca\u08cc", + "\u0007\u0005\u0002\u0002\u08cb\u08ca\u0003\u0002\u0002\u0002\u08cb\u08cc", + "\u0003\u0002\u0002\u0002\u08cc\u08d6\u0003\u0002\u0002\u0002\u08cd\u08cf", + "\u0007b\u0002\u0002\u08ce\u08d0\u0007\u0005\u0002\u0002\u08cf\u08ce", + "\u0003\u0002\u0002\u0002\u08cf\u08d0\u0003\u0002\u0002\u0002\u08d0\u08d6", + "\u0003\u0002\u0002\u0002\u08d1\u08d3\u0007\u0092\u0002\u0002\u08d2\u08d4", + "\u0007\u0005\u0002\u0002\u08d3\u08d2\u0003\u0002\u0002\u0002\u08d3\u08d4", + "\u0003\u0002\u0002\u0002\u08d4\u08d6\u0003\u0002\u0002\u0002\u08d5\u08c9", + "\u0003\u0002\u0002\u0002\u08d5\u08cd\u0003\u0002\u0002\u0002\u08d5\u08d1", + "\u0003\u0002\u0002\u0002\u08d6\u0127\u0003\u0002\u0002\u0002\u08d7\u08d8", + "\t%\u0002\u0002\u08d8\u08da\u0005\u012a\u0096\u0002\u08d9\u08db\u0005", + "\u0136\u009c\u0002\u08da\u08d9\u0003\u0002\u0002\u0002\u08da\u08db\u0003", + "\u0002\u0002\u0002\u08db\u08dd\u0003\u0002\u0002\u0002\u08dc\u08de\u0005", + "\u0138\u009d\u0002\u08dd\u08dc\u0003\u0002\u0002\u0002\u08dd\u08de\u0003", "\u0002\u0002\u0002\u08de\u08e0\u0003\u0002\u0002\u0002\u08df\u08e1\u0005", - "\u0138\u009d\u0002\u08e0\u08df\u0003\u0002\u0002\u0002\u08e0\u08e1\u0003", + "\u014c\u00a7\u0002\u08e0\u08df\u0003\u0002\u0002\u0002\u08e0\u08e1\u0003", "\u0002\u0002\u0002\u08e1\u08e3\u0003\u0002\u0002\u0002\u08e2\u08e4\u0005", - "\u014c\u00a7\u0002\u08e3\u08e2\u0003\u0002\u0002\u0002\u08e3\u08e4\u0003", - "\u0002\u0002\u0002\u08e4\u08e6\u0003\u0002\u0002\u0002\u08e5\u08e7\u0005", - "\u014e\u00a8\u0002\u08e6\u08e5\u0003\u0002\u0002\u0002\u08e6\u08e7\u0003", - "\u0002\u0002\u0002\u08e7\u08ea\u0003\u0002\u0002\u0002\u08e8\u08eb\u0005", - "\u0150\u00a9\u0002\u08e9\u08eb\u0005\u0152\u00aa\u0002\u08ea\u08e8\u0003", - "\u0002\u0002\u0002\u08ea\u08e9\u0003\u0002\u0002\u0002\u08ea\u08eb\u0003", + "\u014e\u00a8\u0002\u08e3\u08e2\u0003\u0002\u0002\u0002\u08e3\u08e4\u0003", + "\u0002\u0002\u0002\u08e4\u08e7\u0003\u0002\u0002\u0002\u08e5\u08e8\u0005", + "\u0150\u00a9\u0002\u08e6\u08e8\u0005\u0152\u00aa\u0002\u08e7\u08e5\u0003", + "\u0002\u0002\u0002\u08e7\u08e6\u0003\u0002\u0002\u0002\u08e7\u08e8\u0003", + "\u0002\u0002\u0002\u08e8\u08ea\u0003\u0002\u0002\u0002\u08e9\u08eb\u0005", + "\u0154\u00ab\u0002\u08ea\u08e9\u0003\u0002\u0002\u0002\u08ea\u08eb\u0003", "\u0002\u0002\u0002\u08eb\u08ed\u0003\u0002\u0002\u0002\u08ec\u08ee\u0005", - "\u0154\u00ab\u0002\u08ed\u08ec\u0003\u0002\u0002\u0002\u08ed\u08ee\u0003", - "\u0002\u0002\u0002\u08ee\u08f0\u0003\u0002\u0002\u0002\u08ef\u08f1\u0005", - "\u0156\u00ac\u0002\u08f0\u08ef\u0003\u0002\u0002\u0002\u08f0\u08f1\u0003", - "\u0002\u0002\u0002\u08f1\u0129\u0003\u0002\u0002\u0002\u08f2\u08f4\u0005", - "\u012c\u0097\u0002\u08f3\u08f2\u0003\u0002\u0002\u0002\u08f3\u08f4\u0003", - "\u0002\u0002\u0002\u08f4\u08f6\u0003\u0002\u0002\u0002\u08f5\u08f7\u0005", - "\u012e\u0098\u0002\u08f6\u08f5\u0003\u0002\u0002\u0002\u08f6\u08f7\u0003", - "\u0002\u0002\u0002\u08f7\u08f8\u0003\u0002\u0002\u0002\u08f8\u08fd\u0005", - "\u0130\u0099\u0002\u08f9\u08fa\u0007\u0017\u0002\u0002\u08fa\u08fc\u0005", - "\u0130\u0099\u0002\u08fb\u08f9\u0003\u0002\u0002\u0002\u08fc\u08ff\u0003", - "\u0002\u0002\u0002\u08fd\u08fb\u0003\u0002\u0002\u0002\u08fd\u08fe\u0003", - "\u0002\u0002\u0002\u08fe\u012b\u0003\u0002\u0002\u0002\u08ff\u08fd\u0003", - "\u0002\u0002\u0002\u0900\u0901\t&\u0002\u0002\u0901\u012d\u0003\u0002", - "\u0002\u0002\u0902\u0903\u0007\u0104\u0002\u0002\u0903\u0904\u0005\u0180", - "\u00c1\u0002\u0904\u012f\u0003\u0002\u0002\u0002\u0905\u0906\u0005\u01b8", - "\u00dd\u0002\u0906\u0907\u0007\u0019\u0002\u0002\u0907\u0909\u0003\u0002", - "\u0002\u0002\u0908\u0905\u0003\u0002\u0002\u0002\u0908\u0909\u0003\u0002", - "\u0002\u0002\u0909\u090a\u0003\u0002\u0002\u0002\u090a\u090c\u0005\u0180", - "\u00c1\u0002\u090b\u090d\u0005\u0132\u009a\u0002\u090c\u090b\u0003\u0002", - "\u0002\u0002\u090c\u090d\u0003\u0002\u0002\u0002\u090d\u0910\u0003\u0002", - "\u0002\u0002\u090e\u0910\u0005\u0134\u009b\u0002\u090f\u0908\u0003\u0002", - "\u0002\u0002\u090f\u090e\u0003\u0002\u0002\u0002\u0910\u0131\u0003\u0002", - "\u0002\u0002\u0911\u0913\u0006\u009a\u0005\u0002\u0912\u0914\u0007)", - "\u0002\u0002\u0913\u0912\u0003\u0002\u0002\u0002\u0913\u0914\u0003\u0002", - "\u0002\u0002\u0914\u0915\u0003\u0002\u0002\u0002\u0915\u091b\u0005\u01b8", - "\u00dd\u0002\u0916\u0917\u0007\u001a\u0002\u0002\u0917\u0918\u0007\u0119", - "\u0002\u0002\u0918\u0919\u0007\u011a\u0002\u0002\u0919\u091b\u0007\u001b", - "\u0002\u0002\u091a\u0911\u0003\u0002\u0002\u0002\u091a\u0916\u0003\u0002", - "\u0002\u0002\u091b\u0133\u0003\u0002\u0002\u0002\u091c\u091d\u0007\u0013", - "\u0002\u0002\u091d\u091f\u0007\u0007\u0002\u0002\u091e\u091c\u0003\u0002", - "\u0002\u0002\u091e\u091f\u0003\u0002\u0002\u0002\u091f\u0920\u0003\u0002", - "\u0002\u0002\u0920\u0921\u0007\b\u0002\u0002\u0921\u0135\u0003\u0002", - "\u0002\u0002\u0922\u0923\u0007\u00cd\u0002\u0002\u0923\u0928\u0005\u01b8", - "\u00dd\u0002\u0924\u0925\u0007\u0017\u0002\u0002\u0925\u0927\u0005\u01b8", - "\u00dd\u0002\u0926\u0924\u0003\u0002\u0002\u0002\u0927\u092a\u0003\u0002", - "\u0002\u0002\u0928\u0926\u0003\u0002\u0002\u0002\u0928\u0929\u0003\u0002", - "\u0002\u0002\u0929\u0137\u0003\u0002\u0002\u0002\u092a\u0928\u0003\u0002", - "\u0002\u0002\u092b\u092c\u0007\u00e1\u0002\u0002\u092c\u0930\u0005\u013a", - "\u009e\u0002\u092d\u092f\u0005\u0140\u00a1\u0002\u092e\u092d\u0003\u0002", - "\u0002\u0002\u092f\u0932\u0003\u0002\u0002\u0002\u0930\u092e\u0003\u0002", - "\u0002\u0002\u0930\u0931\u0003\u0002\u0002\u0002\u0931\u0139\u0003\u0002", - "\u0002\u0002\u0932\u0930\u0003\u0002\u0002\u0002\u0933\u0937\u0005\u013c", - "\u009f\u0002\u0934\u0937\u0005\u013e\u00a0\u0002\u0935\u0937\u0005\u0144", - "\u00a3\u0002\u0936\u0933\u0003\u0002\u0002\u0002\u0936\u0934\u0003\u0002", - "\u0002\u0002\u0936\u0935\u0003\u0002\u0002\u0002\u0937\u013b\u0003\u0002", - "\u0002\u0002\u0938\u093a\u0005\u014a\u00a6\u0002\u0939\u093b\u0005\u0148", - "\u00a5\u0002\u093a\u0939\u0003\u0002\u0002\u0002\u093a\u093b\u0003\u0002", - "\u0002\u0002\u093b\u013d\u0003\u0002\u0002\u0002\u093c\u093d\u0007\u001a", - "\u0002\u0002\u093d\u093e\u0005\u011a\u008e\u0002\u093e\u0940\u0007\u001b", - "\u0002\u0002\u093f\u0941\u0005\u0148\u00a5\u0002\u0940\u093f\u0003\u0002", - "\u0002\u0002\u0940\u0941\u0003\u0002\u0002\u0002\u0941\u013f\u0003\u0002", - "\u0002\u0002\u0942\u0943\u0007\u0017\u0002\u0002\u0943\u094a\u0005\u013a", - "\u009e\u0002\u0944\u0945\u0005\u0142\u00a2\u0002\u0945\u0946\u0005\u013a", - "\u009e\u0002\u0946\u0947\u0007Q\u0002\u0002\u0947\u0948\u0005\u0170", - "\u00b9\u0002\u0948\u094a\u0003\u0002\u0002\u0002\u0949\u0942\u0003\u0002", - "\u0002\u0002\u0949\u0944\u0003\u0002\u0002\u0002\u094a\u0141\u0003\u0002", - "\u0002\u0002\u094b\u094d\u0007\u011b\u0002\u0002\u094c\u094b\u0003\u0002", - "\u0002\u0002\u094c\u094d\u0003\u0002\u0002\u0002\u094d\u094e\u0003\u0002", - "\u0002\u0002\u094e\u0955\u0007\u011c\u0002\u0002\u094f\u0951\t\'\u0002", - "\u0002\u0950\u0952\u0007\u0120\u0002\u0002\u0951\u0950\u0003\u0002\u0002", - "\u0002\u0951\u0952\u0003\u0002\u0002\u0002\u0952\u0953\u0003\u0002\u0002", - "\u0002\u0953\u0955\u0007\u011c\u0002\u0002\u0954\u094c\u0003\u0002\u0002", - "\u0002\u0954\u094f\u0003\u0002\u0002\u0002\u0955\u0143\u0003\u0002\u0002", - "\u0002\u0956\u0957\u0007<\u0002\u0002\u0957\u0958\u0007\u001a\u0002", - "\u0002\u0958\u0959\u0007\u00d4\u0002\u0002\u0959\u095e\u0005\u0146\u00a4", - "\u0002\u095a\u095b\u0007\u0017\u0002\u0002\u095b\u095d\u0005\u0146\u00a4", - "\u0002\u095c\u095a\u0003\u0002\u0002\u0002\u095d\u0960\u0003\u0002\u0002", - "\u0002\u095e\u095c\u0003\u0002\u0002\u0002\u095e\u095f\u0003\u0002\u0002", - "\u0002\u095f\u0961\u0003\u0002\u0002\u0002\u0960\u095e\u0003\u0002\u0002", - "\u0002\u0961\u0963\u0007\u001b\u0002\u0002\u0962\u0964\u0005\u0148\u00a5", - "\u0002\u0963\u0962\u0003\u0002\u0002\u0002\u0963\u0964\u0003\u0002\u0002", - "\u0002\u0964\u0145\u0003\u0002\u0002\u0002\u0965\u0972\u0005\u0180\u00c1", - "\u0002\u0966\u0967\u0007\u001a\u0002\u0002\u0967\u096c\u0005\u0180\u00c1", - "\u0002\u0968\u0969\u0007\u0017\u0002\u0002\u0969\u096b\u0005\u0180\u00c1", - "\u0002\u096a\u0968\u0003\u0002\u0002\u0002\u096b\u096e\u0003\u0002\u0002", - "\u0002\u096c\u096a\u0003\u0002\u0002\u0002\u096c\u096d\u0003\u0002\u0002", - "\u0002\u096d\u096f\u0003\u0002\u0002\u0002\u096e\u096c\u0003\u0002\u0002", - "\u0002\u096f\u0970\u0007\u001b\u0002\u0002\u0970\u0972\u0003\u0002\u0002", - "\u0002\u0971\u0965\u0003\u0002\u0002\u0002\u0971\u0966\u0003\u0002\u0002", - "\u0002\u0972\u0147\u0003\u0002\u0002\u0002\u0973\u0975\u0006\u00a5\u0006", - "\u0002\u0974\u0976\u0007)\u0002\u0002\u0975\u0974\u0003\u0002\u0002", - "\u0002\u0975\u0976\u0003\u0002\u0002\u0002\u0976\u0977\u0003\u0002\u0002", - "\u0002\u0977\u0982\u0005\u01b8\u00dd\u0002\u0978\u0979\u0007\u001a\u0002", - "\u0002\u0979\u097e\u0007\u0013\u0002\u0002\u097a\u097b\u0007\u0017\u0002", - "\u0002\u097b\u097d\u0007\u0013\u0002\u0002\u097c\u097a\u0003\u0002\u0002", - "\u0002\u097d\u0980\u0003\u0002\u0002\u0002\u097e\u097c\u0003\u0002\u0002", - "\u0002\u097e\u097f\u0003\u0002\u0002\u0002\u097f\u0981\u0003\u0002\u0002", - "\u0002\u0980\u097e\u0003\u0002\u0002\u0002\u0981\u0983\u0007\u001b\u0002", - "\u0002\u0982\u0978\u0003\u0002\u0002\u0002\u0982\u0983\u0003\u0002\u0002", - "\u0002\u0983\u0149\u0003\u0002\u0002\u0002\u0984\u0985\u0005\u01b8\u00dd", - "\u0002\u0985\u014b\u0003\u0002\u0002\u0002\u0986\u0987\u0007\u0121\u0002", - "\u0002\u0987\u0988\u0005\u0170\u00b9\u0002\u0988\u014d\u0003\u0002\u0002", - "\u0002\u0989\u098a\u0007\u0122\u0002\u0002\u098a\u098b\u0007o\u0002", - "\u0002\u098b\u0990\u0005\u0180\u00c1\u0002\u098c\u098d\u0007\u0017\u0002", - "\u0002\u098d\u098f\u0005\u0180\u00c1\u0002\u098e\u098c\u0003\u0002\u0002", - "\u0002\u098f\u0992\u0003\u0002\u0002\u0002\u0990\u098e\u0003\u0002\u0002", - "\u0002\u0990\u0991\u0003\u0002\u0002\u0002\u0991\u014f\u0003\u0002\u0002", - "\u0002\u0992\u0990\u0003\u0002\u0002\u0002\u0993\u0994\u0007\u0123\u0002", - "\u0002\u0994\u0995\u0005\u0170\u00b9\u0002\u0995\u0151\u0003\u0002\u0002", - "\u0002\u0996\u0997\u0007\u0124\u0002\u0002\u0997\u0998\u0005\u0170\u00b9", - "\u0002\u0998\u0153\u0003\u0002\u0002\u0002\u0999\u099a\u0007\u0125\u0002", - "\u0002\u099a\u099b\u0007o\u0002\u0002\u099b\u099d\u0005\u0180\u00c1", - "\u0002\u099c\u099e\t\t\u0002\u0002\u099d\u099c\u0003\u0002\u0002\u0002", - "\u099d\u099e\u0003\u0002\u0002\u0002\u099e\u09a6\u0003\u0002\u0002\u0002", - "\u099f\u09a0\u0007\u0017\u0002\u0002\u09a0\u09a2\u0005\u0180\u00c1\u0002", - "\u09a1\u09a3\t\t\u0002\u0002\u09a2\u09a1\u0003\u0002\u0002\u0002\u09a2", - "\u09a3\u0003\u0002\u0002\u0002\u09a3\u09a5\u0003\u0002\u0002\u0002\u09a4", - "\u099f\u0003\u0002\u0002\u0002\u09a5\u09a8\u0003\u0002\u0002\u0002\u09a6", - "\u09a4\u0003\u0002\u0002\u0002\u09a6\u09a7\u0003\u0002\u0002\u0002\u09a7", - "\u0155\u0003\u0002\u0002\u0002\u09a8\u09a6\u0003\u0002\u0002\u0002\u09a9", - "\u09ab\u0005\u0158\u00ad\u0002\u09aa\u09a9\u0003\u0002\u0002\u0002\u09ab", - "\u09ac\u0003\u0002\u0002\u0002\u09ac\u09aa\u0003\u0002\u0002\u0002\u09ac", - "\u09ad\u0003\u0002\u0002\u0002\u09ad\u0157\u0003\u0002\u0002\u0002\u09ae", - "\u09af\u0007\u0105\u0002\u0002\u09af\u09ba\u0005\u0180\u00c1\u0002\u09b0", - "\u09b1\u0007$\u0002\u0002\u09b1\u09b7\t(\u0002\u0002\u09b2\u09b3\u0007", - "\u0107\u0002\u0002\u09b3\u09b4\u0007\u0129\u0002\u0002\u09b4\u09b5\u0007", - "\u012a\u0002\u0002\u09b5\u09b6\t)\u0002\u0002\u09b6\u09b8\u0007\u012d", - "\u0002\u0002\u09b7\u09b2\u0003\u0002\u0002\u0002\u09b7\u09b8\u0003\u0002", - "\u0002\u0002\u09b8\u09ba\u0003\u0002\u0002\u0002\u09b9\u09ae\u0003\u0002", - "\u0002\u0002\u09b9\u09b0\u0003\u0002\u0002\u0002\u09ba\u0159\u0003\u0002", - "\u0002\u0002\u09bb\u09bc\u0007R\u0002\u0002\u09bc\u09bd\u0005\u015e", - "\u00b0\u0002\u09bd\u09be\u0007\u0016\u0002\u0002\u09be\u09c0\u0005\u015c", - "\u00af\u0002\u09bf\u09c1\u0005\u014c\u00a7\u0002\u09c0\u09bf\u0003\u0002", - "\u0002\u0002\u09c0\u09c1\u0003\u0002\u0002\u0002\u09c1\u09c3\u0003\u0002", - "\u0002\u0002\u09c2\u09c4\u0005\u0160\u00b1\u0002\u09c3\u09c2\u0003\u0002", - "\u0002\u0002\u09c3\u09c4\u0003\u0002\u0002\u0002\u09c4\u015b\u0003\u0002", - "\u0002\u0002\u09c5\u09ca\u0005\u001c\u000f\u0002\u09c6\u09c7\u0007\u0017", - "\u0002\u0002\u09c7\u09c9\u0005\u001c\u000f\u0002\u09c8\u09c6\u0003\u0002", - "\u0002\u0002\u09c9\u09cc\u0003\u0002\u0002\u0002\u09ca\u09c8\u0003\u0002", - "\u0002\u0002\u09ca\u09cb\u0003\u0002\u0002\u0002\u09cb\u015d\u0003\u0002", - "\u0002\u0002\u09cc\u09ca\u0003\u0002\u0002\u0002\u09cd\u09cf\u0005\u014a", - "\u00a6\u0002\u09ce\u09d0\u0005\u0138\u009d\u0002\u09cf\u09ce\u0003\u0002", - "\u0002\u0002\u09cf\u09d0\u0003\u0002\u0002\u0002\u09d0\u09d6\u0003\u0002", - "\u0002\u0002\u09d1\u09d2\u0007\u001a\u0002\u0002\u09d2\u09d3\u0005\u011a", - "\u008e\u0002\u09d3\u09d4\u0007\u001b\u0002\u0002\u09d4\u09d6\u0003\u0002", - "\u0002\u0002\u09d5\u09cd\u0003\u0002\u0002\u0002\u09d5\u09d1\u0003\u0002", - "\u0002\u0002\u09d6\u09db\u0003\u0002\u0002\u0002\u09d7\u09d9\u0007)", - "\u0002\u0002\u09d8\u09d7\u0003\u0002\u0002\u0002\u09d8\u09d9\u0003\u0002", - "\u0002\u0002\u09d9\u09da\u0003\u0002\u0002\u0002\u09da\u09dc\u0005\u01b8", - "\u00dd\u0002\u09db\u09d8\u0003\u0002\u0002\u0002\u09db\u09dc\u0003\u0002", - "\u0002\u0002\u09dc\u015f\u0003\u0002\u0002\u0002\u09dd\u09de\u0007\u00ce", - "\u0002\u0002\u09de\u09df\u0005\u00b2Z\u0002\u09df\u0161\u0003\u0002", - "\u0002\u0002\u09e0\u09e1\u0007\u012e\u0002\u0002\u09e1\u09e2\u0007\u00cd", - "\u0002\u0002\u09e2\u09e3\u0005\u0164\u00b3\u0002\u09e3\u09e4\u0007\u0111", - "\u0002\u0002\u09e4\u09e5\u0005\u0164\u00b3\u0002\u09e5\u09e6\u0007Q", - "\u0002\u0002\u09e6\u09e8\u0005\u0170\u00b9\u0002\u09e7\u09e9\u0005\u0166", - "\u00b4\u0002\u09e8\u09e7\u0003\u0002\u0002\u0002\u09e9\u09ea\u0003\u0002", - "\u0002\u0002\u09ea\u09e8\u0003\u0002\u0002\u0002\u09ea\u09eb\u0003\u0002", - "\u0002\u0002\u09eb\u0163\u0003\u0002\u0002\u0002\u09ec\u09f2\u0005\u014a", - "\u00a6\u0002\u09ed\u09ee\u0007\u001a\u0002\u0002\u09ee\u09ef\u0005\u011a", - "\u008e\u0002\u09ef\u09f0\u0007\u001b\u0002\u0002\u09f0\u09f2\u0003\u0002", - "\u0002\u0002\u09f1\u09ec\u0003\u0002\u0002\u0002\u09f1\u09ed\u0003\u0002", - "\u0002\u0002\u09f2\u09f7\u0003\u0002\u0002\u0002\u09f3\u09f5\u0007)", - "\u0002\u0002\u09f4\u09f3\u0003\u0002\u0002\u0002\u09f4\u09f5\u0003\u0002", - "\u0002\u0002\u09f5\u09f6\u0003\u0002\u0002\u0002\u09f6\u09f8\u0005\u01b8", - "\u00dd\u0002\u09f7\u09f4\u0003\u0002\u0002\u0002\u09f7\u09f8\u0003\u0002", - "\u0002\u0002\u09f8\u0165\u0003\u0002\u0002\u0002\u09f9\u09fb\u0007\u0012", - "\u0002\u0002\u09fa\u09fc\u00078\u0002\u0002\u09fb\u09fa\u0003\u0002", - "\u0002\u0002\u09fb\u09fc\u0003\u0002\u0002\u0002\u09fc\u09fd\u0003\u0002", - "\u0002\u0002\u09fd\u0a00\u0007\u012f\u0002\u0002\u09fe\u09ff\u0007\u0129", - "\u0002\u0002\u09ff\u0a01\u0005\u0170\u00b9\u0002\u0a00\u09fe\u0003\u0002", - "\u0002\u0002\u0a00\u0a01\u0003\u0002\u0002\u0002\u0a01\u0a02\u0003\u0002", - "\u0002\u0002\u0a02\u0a03\u0007\u0014\u0002\u0002\u0a03\u0a07\u0005\u0168", - "\u00b5\u0002\u0a04\u0a05\u0007\u00ce\u0002\u0002\u0a05\u0a07\u0007\u00ee", - "\u0002\u0002\u0a06\u09f9\u0003\u0002\u0002\u0002\u0a06\u0a04\u0003\u0002", - "\u0002\u0002\u0a07\u0167\u0003\u0002\u0002\u0002\u0a08\u0a0a\u0007\u00d2", - "\u0002\u0002\u0a09\u0a0b\u0005\u00b4[\u0002\u0a0a\u0a09\u0003\u0002", - "\u0002\u0002\u0a0a\u0a0b\u0003\u0002\u0002\u0002\u0a0b\u0a0c\u0003\u0002", - "\u0002\u0002\u0a0c\u0a0d\u0007\u00d4\u0002\u0002\u0a0d\u0a1d\u0005\u00b8", - "]\u0002\u0a0e\u0a0f\u0007R\u0002\u0002\u0a0f\u0a10\u0007\u0016\u0002", - "\u0002\u0a10\u0a15\u0005\u001c\u000f\u0002\u0a11\u0a12\u0007\u0017\u0002", - "\u0002\u0a12\u0a14\u0005\u001c\u000f\u0002\u0a13\u0a11\u0003\u0002\u0002", - "\u0002\u0a14\u0a17\u0003\u0002\u0002\u0002\u0a15\u0a13\u0003\u0002\u0002", - "\u0002\u0a15\u0a16\u0003\u0002\u0002\u0002\u0a16\u0a19\u0003\u0002\u0002", - "\u0002\u0a17\u0a15\u0003\u0002\u0002\u0002\u0a18\u0a1a\u0005\u014c\u00a7", - "\u0002\u0a19\u0a18\u0003\u0002\u0002\u0002\u0a19\u0a1a\u0003\u0002\u0002", - "\u0002\u0a1a\u0a1d\u0003\u0002\u0002\u0002\u0a1b\u0a1d\u0007S\u0002", - "\u0002\u0a1c\u0a08\u0003\u0002\u0002\u0002\u0a1c\u0a0e\u0003\u0002\u0002", - "\u0002\u0a1c\u0a1b\u0003\u0002\u0002\u0002\u0a1d\u0169\u0003\u0002\u0002", - "\u0002\u0a1e\u0a20\u0007S\u0002\u0002\u0a1f\u0a21\u0007\u00e1\u0002", - "\u0002\u0a20\u0a1f\u0003\u0002\u0002\u0002\u0a20\u0a21\u0003\u0002\u0002", - "\u0002\u0a21\u0a22\u0003\u0002\u0002\u0002\u0a22\u0a24\u0005\u014a\u00a6", - "\u0002\u0a23\u0a25\u0005\u016c\u00b7\u0002\u0a24\u0a23\u0003\u0002\u0002", - "\u0002\u0a24\u0a25\u0003\u0002\u0002\u0002\u0a25\u0a28\u0003\u0002\u0002", - "\u0002\u0a26\u0a29\u0005\u014c\u00a7\u0002\u0a27\u0a29\u0007\u0113\u0002", - "\u0002\u0a28\u0a26\u0003\u0002\u0002\u0002\u0a28\u0a27\u0003\u0002\u0002", - "\u0002\u0a28\u0a29\u0003\u0002\u0002\u0002\u0a29\u016b\u0003\u0002\u0002", - "\u0002\u0a2a\u0a2c\u0006\u00b7\u0007\u0002\u0a2b\u0a2d\u0007)\u0002", - "\u0002\u0a2c\u0a2b\u0003\u0002\u0002\u0002\u0a2c\u0a2d\u0003\u0002\u0002", - "\u0002\u0a2d\u0a2e\u0003\u0002\u0002\u0002\u0a2e\u0a2f\u0005\u01b8\u00dd", - "\u0002\u0a2f\u016d\u0003\u0002\u0002\u0002\u0a30\u0a32\t*\u0002\u0002", - "\u0a31\u0a33\u0007<\u0002\u0002\u0a32\u0a31\u0003\u0002\u0002\u0002", - "\u0a32\u0a33\u0003\u0002\u0002\u0002\u0a33\u0a34\u0003\u0002\u0002\u0002", - "\u0a34\u0a35\u0005\u014a\u00a6\u0002\u0a35\u016f\u0003\u0002\u0002\u0002", - "\u0a36\u0a38\b\u00b9\u0001\u0002\u0a37\u0a39\u00078\u0002\u0002\u0a38", - "\u0a37\u0003\u0002\u0002\u0002\u0a38\u0a39\u0003\u0002\u0002\u0002\u0a39", - "\u0a3a\u0003\u0002\u0002\u0002\u0a3a\u0a3b\u0007\u001a\u0002\u0002\u0a3b", - "\u0a3c\u0005\u0170\u00b9\u0002\u0a3c\u0a3d\u0007\u001b\u0002\u0002\u0a3d", - "\u0a40\u0003\u0002\u0002\u0002\u0a3e\u0a40\u0005\u0172\u00ba\u0002\u0a3f", - "\u0a36\u0003\u0002\u0002\u0002\u0a3f\u0a3e\u0003\u0002\u0002\u0002\u0a40", - "\u0a47\u0003\u0002\u0002\u0002\u0a41\u0a42\f\u0004\u0002\u0002\u0a42", - "\u0a43\u0005\u017c\u00bf\u0002\u0a43\u0a44\u0005\u0170\u00b9\u0005\u0a44", - "\u0a46\u0003\u0002\u0002\u0002\u0a45\u0a41\u0003\u0002\u0002\u0002\u0a46", - "\u0a49\u0003\u0002\u0002\u0002\u0a47\u0a45\u0003\u0002\u0002\u0002\u0a47", - "\u0a48\u0003\u0002\u0002\u0002\u0a48\u0171\u0003\u0002\u0002\u0002\u0a49", - "\u0a47\u0003\u0002\u0002\u0002\u0a4a\u0a4e\u0005\u0174\u00bb\u0002\u0a4b", - "\u0a4e\u0005\u017a\u00be\u0002\u0a4c\u0a4e\u0005\u0180\u00c1\u0002\u0a4d", - "\u0a4a\u0003\u0002\u0002\u0002\u0a4d\u0a4b\u0003\u0002\u0002\u0002\u0a4d", - "\u0a4c\u0003\u0002\u0002\u0002\u0a4e\u0173\u0003\u0002\u0002\u0002\u0a4f", - "\u0a50\u0005\u0180\u00c1\u0002\u0a50\u0a52\u0007,\u0002\u0002\u0a51", - "\u0a53\u00078\u0002\u0002\u0a52\u0a51\u0003\u0002\u0002\u0002\u0a52", - "\u0a53\u0003\u0002\u0002\u0002\u0a53\u0a54\u0003\u0002\u0002\u0002\u0a54", - "\u0a55\u0007\u0015\u0002\u0002\u0a55\u0a67\u0003\u0002\u0002\u0002\u0a56", - "\u0a57\u0005\u0180\u00c1\u0002\u0a57\u0a58\u0007\u0131\u0002\u0002\u0a58", - "\u0a59\u0005\u0180\u00c1\u0002\u0a59\u0a5a\u0007\u0129\u0002\u0002\u0a5a", - "\u0a5b\u0005\u0180\u00c1\u0002\u0a5b\u0a67\u0003\u0002\u0002\u0002\u0a5c", - "\u0a5e\u00078\u0002\u0002\u0a5d\u0a5c\u0003\u0002\u0002\u0002\u0a5d", - "\u0a5e\u0003\u0002\u0002\u0002\u0a5e\u0a5f\u0003\u0002\u0002\u0002\u0a5f", - "\u0a60\u0007?\u0002\u0002\u0a60\u0a61\u0007\u001a\u0002\u0002\u0a61", - "\u0a62\u0005\u011a\u008e\u0002\u0a62\u0a63\u0007\u001b\u0002\u0002\u0a63", - "\u0a67\u0003\u0002\u0002\u0002\u0a64\u0a67\u0005\u0176\u00bc\u0002\u0a65", - "\u0a67\u0005\u0178\u00bd\u0002\u0a66\u0a4f\u0003\u0002\u0002\u0002\u0a66", - "\u0a56\u0003\u0002\u0002\u0002\u0a66\u0a5d\u0003\u0002\u0002\u0002\u0a66", - "\u0a64\u0003\u0002\u0002\u0002\u0a66\u0a65\u0003\u0002\u0002\u0002\u0a67", - "\u0175\u0003\u0002\u0002\u0002\u0a68\u0a6a\u0005\u0180\u00c1\u0002\u0a69", - "\u0a6b\u00078\u0002\u0002\u0a6a\u0a69\u0003\u0002\u0002\u0002\u0a6a", - "\u0a6b\u0003\u0002\u0002\u0002\u0a6b\u0a6c\u0003\u0002\u0002\u0002\u0a6c", - "\u0a6d\u0007l\u0002\u0002\u0a6d\u0a77\u0007\u001a\u0002\u0002\u0a6e", - "\u0a73\u0005\u0180\u00c1\u0002\u0a6f\u0a70\u0007\u0017\u0002\u0002\u0a70", - "\u0a72\u0005\u0180\u00c1\u0002\u0a71\u0a6f\u0003\u0002\u0002\u0002\u0a72", - "\u0a75\u0003\u0002\u0002\u0002\u0a73\u0a71\u0003\u0002\u0002\u0002\u0a73", - "\u0a74\u0003\u0002\u0002\u0002\u0a74\u0a78\u0003\u0002\u0002\u0002\u0a75", - "\u0a73\u0003\u0002\u0002\u0002\u0a76\u0a78\u0005\u011a\u008e\u0002\u0a77", - "\u0a6e\u0003\u0002\u0002\u0002\u0a77\u0a76\u0003\u0002\u0002\u0002\u0a78", - "\u0a79\u0003\u0002\u0002\u0002\u0a79\u0a7a\u0007\u001b\u0002\u0002\u0a7a", - "\u0177\u0003\u0002\u0002\u0002\u0a7b\u0a7c\u0007\u001a\u0002\u0002\u0a7c", - "\u0a81\u0005\u0180\u00c1\u0002\u0a7d\u0a7e\u0007\u0017\u0002\u0002\u0a7e", - "\u0a80\u0005\u0180\u00c1\u0002\u0a7f\u0a7d\u0003\u0002\u0002\u0002\u0a80", - "\u0a83\u0003\u0002\u0002\u0002\u0a81\u0a7f\u0003\u0002\u0002\u0002\u0a81", - "\u0a82\u0003\u0002\u0002\u0002\u0a82\u0a84\u0003\u0002\u0002\u0002\u0a83", - "\u0a81\u0003\u0002\u0002\u0002\u0a84\u0a86\u0007\u001b\u0002\u0002\u0a85", - "\u0a87\u00078\u0002\u0002\u0a86\u0a85\u0003\u0002\u0002\u0002\u0a86", - "\u0a87\u0003\u0002\u0002\u0002\u0a87\u0a88\u0003\u0002\u0002\u0002\u0a88", - "\u0a89\u0007l\u0002\u0002\u0a89\u0a8a\u0007\u001a\u0002\u0002\u0a8a", - "\u0a8b\u0005\u011a\u008e\u0002\u0a8b\u0a8c\u0007\u001b\u0002\u0002\u0a8c", - "\u0179\u0003\u0002\u0002\u0002\u0a8d\u0a8e\u0005\u0180\u00c1\u0002\u0a8e", - "\u0a8f\u0005\u017e\u00c0\u0002\u0a8f\u0a90\u0005\u0180\u00c1\u0002\u0a90", - "\u017b\u0003\u0002\u0002\u0002\u0a91\u0a92\t+\u0002\u0002\u0a92\u017d", - "\u0003\u0002\u0002\u0002\u0a93\u0aa0\u0007\u0019\u0002\u0002\u0a94\u0aa0", - "\u0007\u0132\u0002\u0002\u0a95\u0aa0\u0007\u0133\u0002\u0002\u0a96\u0aa0", - "\u0007\u0134\u0002\u0002\u0a97\u0aa0\u0007\u010f\u0002\u0002\u0a98\u0aa0", - "\u0007\u0135\u0002\u0002\u0a99\u0aa0\u0007\u0110\u0002\u0002\u0a9a\u0aa0", - "\u0007\u0136\u0002\u0002\u0a9b\u0a9d\u00078\u0002\u0002\u0a9c\u0a9b", - "\u0003\u0002\u0002\u0002\u0a9c\u0a9d\u0003\u0002\u0002\u0002\u0a9d\u0a9e", - "\u0003\u0002\u0002\u0002\u0a9e\u0aa0\t,\u0002\u0002\u0a9f\u0a93\u0003", - "\u0002\u0002\u0002\u0a9f\u0a94\u0003\u0002\u0002\u0002\u0a9f\u0a95\u0003", - "\u0002\u0002\u0002\u0a9f\u0a96\u0003\u0002\u0002\u0002\u0a9f\u0a97\u0003", - "\u0002\u0002\u0002\u0a9f\u0a98\u0003\u0002\u0002\u0002\u0a9f\u0a99\u0003", - "\u0002\u0002\u0002\u0a9f\u0a9a\u0003\u0002\u0002\u0002\u0a9f\u0a9c\u0003", - "\u0002\u0002\u0002\u0aa0\u017f\u0003\u0002\u0002\u0002\u0aa1\u0aa2\b", - "\u00c1\u0001\u0002\u0aa2\u0aa3\u0007\u001a\u0002\u0002\u0aa3\u0aa4\u0005", - "\u011a\u008e\u0002\u0aa4\u0aa5\u0007\u001b\u0002\u0002\u0aa5\u0ab3\u0003", - "\u0002\u0002\u0002\u0aa6\u0aa7\u0007\u001a\u0002\u0002\u0aa7\u0aa8\u0005", - "\u0180\u00c1\u0002\u0aa8\u0aa9\u0007\u001b\u0002\u0002\u0aa9\u0ab3\u0003", - "\u0002\u0002\u0002\u0aaa\u0ab3\u0005\u0184\u00c3\u0002\u0aab\u0ab3\u0005", - "\u0188\u00c5\u0002\u0aac\u0ab3\u0005\u018c\u00c7\u0002\u0aad\u0ab3\u0005", - "\u0192\u00ca\u0002\u0aae\u0ab3\u0005\u0194\u00cb\u0002\u0aaf\u0ab3\u0005", - "\u019c\u00cf\u0002\u0ab0\u0ab3\u0005\u019e\u00d0\u0002\u0ab1\u0ab3\u0005", - "\u0182\u00c2\u0002\u0ab2\u0aa1\u0003\u0002\u0002\u0002\u0ab2\u0aa6\u0003", - "\u0002\u0002\u0002\u0ab2\u0aaa\u0003\u0002\u0002\u0002\u0ab2\u0aab\u0003", - "\u0002\u0002\u0002\u0ab2\u0aac\u0003\u0002\u0002\u0002\u0ab2\u0aad\u0003", - "\u0002\u0002\u0002\u0ab2\u0aae\u0003\u0002\u0002\u0002\u0ab2\u0aaf\u0003", - "\u0002\u0002\u0002\u0ab2\u0ab0\u0003\u0002\u0002\u0002\u0ab2\u0ab1\u0003", - "\u0002\u0002\u0002\u0ab3\u0ac4\u0003\u0002\u0002\u0002\u0ab4\u0ab5\f", - "\u0010\u0002\u0002\u0ab5\u0ab6\u0007\u0139\u0002\u0002\u0ab6\u0ac3\u0005", - "\u0180\u00c1\u0011\u0ab7\u0ab8\f\u000f\u0002\u0002\u0ab8\u0ab9\u0007", - "\u013a\u0002\u0002\u0ab9\u0ac3\u0005\u0180\u00c1\u0010\u0aba\u0abb\f", - "\u000e\u0002\u0002\u0abb\u0abc\u0007\u013b\u0002\u0002\u0abc\u0ac3\u0005", - "\u0180\u00c1\u000f\u0abd\u0abe\f\r\u0002\u0002\u0abe\u0abf\u0007\u013c", - "\u0002\u0002\u0abf\u0ac3\u0005\u0180\u00c1\u000e\u0ac0\u0ac1\f\u0011", - "\u0002\u0002\u0ac1\u0ac3\u0005\u0186\u00c4\u0002\u0ac2\u0ab4\u0003\u0002", - "\u0002\u0002\u0ac2\u0ab7\u0003\u0002\u0002\u0002\u0ac2\u0aba\u0003\u0002", - "\u0002\u0002\u0ac2\u0abd\u0003\u0002\u0002\u0002\u0ac2\u0ac0\u0003\u0002", - "\u0002\u0002\u0ac3\u0ac6\u0003\u0002\u0002\u0002\u0ac4\u0ac2\u0003\u0002", - "\u0002\u0002\u0ac4\u0ac5\u0003\u0002\u0002\u0002\u0ac5\u0181\u0003\u0002", - "\u0002\u0002\u0ac6\u0ac4\u0003\u0002\u0002\u0002\u0ac7\u0ad0\u0005\u01b4", - "\u00db\u0002\u0ac8\u0ad0\u0005\u01b6\u00dc\u0002\u0ac9\u0ad0\u0005\u01c0", - "\u00e1\u0002\u0aca\u0ad0\u0005\u01b8\u00dd\u0002\u0acb\u0ad0\u0005\u01ba", - "\u00de\u0002\u0acc\u0ad0\u0005\u01be\u00e0\u0002\u0acd\u0ad0\u0005\u01bc", - "\u00df\u0002\u0ace\u0ad0\u0005\u01c2\u00e2\u0002\u0acf\u0ac7\u0003\u0002", - "\u0002\u0002\u0acf\u0ac8\u0003\u0002\u0002\u0002\u0acf\u0ac9\u0003\u0002", - "\u0002\u0002\u0acf\u0aca\u0003\u0002\u0002\u0002\u0acf\u0acb\u0003\u0002", - "\u0002\u0002\u0acf\u0acc\u0003\u0002\u0002\u0002\u0acf\u0acd\u0003\u0002", - "\u0002\u0002\u0acf\u0ace\u0003\u0002\u0002\u0002\u0ad0\u0183\u0003\u0002", - "\u0002\u0002\u0ad1\u0ad2\u0007\u013d\u0002\u0002\u0ad2\u0ad3\u0005\u0180", - "\u00c1\u0002\u0ad3\u0ad4\u0005\u0186\u00c4\u0002\u0ad4\u0185\u0003\u0002", - "\u0002\u0002\u0ad5\u0ad6\t-\u0002\u0002\u0ad6\u0187\u0003\u0002\u0002", - "\u0002\u0ad7\u0ad8\u0005\u018a\u00c6\u0002\u0ad8\u0ad9\t.\u0002\u0002", - "\u0ad9\u0ade\u0005\u018a\u00c6\u0002\u0ada\u0adb\t.\u0002\u0002\u0adb", - "\u0add\u0005\u018a\u00c6\u0002\u0adc\u0ada\u0003\u0002\u0002\u0002\u0add", - "\u0ae0\u0003\u0002\u0002\u0002\u0ade\u0adc\u0003\u0002\u0002\u0002\u0ade", - "\u0adf\u0003\u0002\u0002\u0002\u0adf\u0189\u0003\u0002\u0002\u0002\u0ae0", - "\u0ade\u0003\u0002\u0002\u0002\u0ae1\u0ae2\u0007\u001a\u0002\u0002\u0ae2", - "\u0ae3\u0005\u0180\u00c1\u0002\u0ae3\u0ae4\u0007\u001b\u0002\u0002\u0ae4", - "\u0aeb\u0003\u0002\u0002\u0002\u0ae5\u0aeb\u0005\u018c\u00c7\u0002\u0ae6", - "\u0aeb\u0005\u0194\u00cb\u0002\u0ae7\u0aeb\u0005\u019c\u00cf\u0002\u0ae8", - "\u0aeb\u0005\u019e\u00d0\u0002\u0ae9\u0aeb\u0005\u0182\u00c2\u0002\u0aea", - "\u0ae1\u0003\u0002\u0002\u0002\u0aea\u0ae5\u0003\u0002\u0002\u0002\u0aea", - "\u0ae6\u0003\u0002\u0002\u0002\u0aea\u0ae7\u0003\u0002\u0002\u0002\u0aea", - "\u0ae8\u0003\u0002\u0002\u0002\u0aea\u0ae9\u0003\u0002\u0002\u0002\u0aeb", - "\u018b\u0003\u0002\u0002\u0002\u0aec\u0aef\u0005\u018e\u00c8\u0002\u0aed", - "\u0aef\u0005\u0190\u00c9\u0002\u0aee\u0aec\u0003\u0002\u0002\u0002\u0aee", - "\u0aed\u0003\u0002\u0002\u0002\u0aef\u018d\u0003\u0002\u0002\u0002\u0af0", - "\u0af1\u0007\u0146\u0002\u0002\u0af1\u0af7\u0005\u0180\u00c1\u0002\u0af2", - "\u0af3\u0007\u0012\u0002\u0002\u0af3\u0af4\u0005\u0180\u00c1\u0002\u0af4", - "\u0af5\u0007\u0014\u0002\u0002\u0af5\u0af6\u0005\u0180\u00c1\u0002\u0af6", - "\u0af8\u0003\u0002\u0002\u0002\u0af7\u0af2\u0003\u0002\u0002\u0002\u0af8", - "\u0af9\u0003\u0002\u0002\u0002\u0af9\u0af7\u0003\u0002\u0002\u0002\u0af9", - "\u0afa\u0003\u0002\u0002\u0002\u0afa\u0afd\u0003\u0002\u0002\u0002\u0afb", - "\u0afc\u0007\u00ce\u0002\u0002\u0afc\u0afe\u0005\u0180\u00c1\u0002\u0afd", - "\u0afb\u0003\u0002\u0002\u0002\u0afd\u0afe\u0003\u0002\u0002\u0002\u0afe", - "\u0aff\u0003\u0002\u0002\u0002\u0aff\u0b00\u0007\u0010\u0002\u0002\u0b00", - "\u018f\u0003\u0002\u0002\u0002\u0b01\u0b07\u0007\u0146\u0002\u0002\u0b02", - "\u0b03\u0007\u0012\u0002\u0002\u0b03\u0b04\u0005\u0170\u00b9\u0002\u0b04", - "\u0b05\u0007\u0014\u0002\u0002\u0b05\u0b06\u0005\u0180\u00c1\u0002\u0b06", - "\u0b08\u0003\u0002\u0002\u0002\u0b07\u0b02\u0003\u0002\u0002\u0002\u0b08", - "\u0b09\u0003\u0002\u0002\u0002\u0b09\u0b07\u0003\u0002\u0002\u0002\u0b09", - "\u0b0a\u0003\u0002\u0002\u0002\u0b0a\u0b0d\u0003\u0002\u0002\u0002\u0b0b", - "\u0b0c\u0007\u00ce\u0002\u0002\u0b0c\u0b0e\u0005\u0180\u00c1\u0002\u0b0d", - "\u0b0b\u0003\u0002\u0002\u0002\u0b0d\u0b0e\u0003\u0002\u0002\u0002\u0b0e", - "\u0b0f\u0003\u0002\u0002\u0002\u0b0f\u0b10\u0007\u0010\u0002\u0002\u0b10", - "\u0191\u0003\u0002\u0002\u0002\u0b11\u0b12\u0005\u01b8\u00dd\u0002\u0b12", - "\u0b13\u0007\u0006\u0002\u0002\u0b13\u0b14\t/\u0002\u0002\u0b14\u0193", - "\u0003\u0002\u0002\u0002\u0b15\u0b16\u0007\u0149\u0002\u0002\u0b16\u0b18", - "\u0007\u001a\u0002\u0002\u0b17\u0b19\u0005\u0196\u00cc\u0002\u0b18\u0b17", - "\u0003\u0002\u0002\u0002\u0b18\u0b19\u0003\u0002\u0002\u0002\u0b19\u0b1a", - "\u0003\u0002\u0002\u0002\u0b1a\u0b1b\u0005\u0180\u00c1\u0002\u0b1b\u0b1d", - "\u0007\u001b\u0002\u0002\u0b1c\u0b1e\u0005\u0198\u00cd\u0002\u0b1d\u0b1c", - "\u0003\u0002\u0002\u0002\u0b1d\u0b1e\u0003\u0002\u0002\u0002\u0b1e\u0bae", - "\u0003\u0002\u0002\u0002\u0b1f\u0b20\u0007\u014a\u0002\u0002\u0b20\u0b26", - "\u0007\u001a\u0002\u0002\u0b21\u0b23\u0005\u0196\u00cc\u0002\u0b22\u0b21", - "\u0003\u0002\u0002\u0002\u0b22\u0b23\u0003\u0002\u0002\u0002\u0b23\u0b24", - "\u0003\u0002\u0002\u0002\u0b24\u0b27\u0005\u0180\u00c1\u0002\u0b25\u0b27", - "\u0007\b\u0002\u0002\u0b26\u0b22\u0003\u0002\u0002\u0002\u0b26\u0b25", - "\u0003\u0002\u0002\u0002\u0b27\u0b28\u0003\u0002\u0002\u0002\u0b28\u0b2a", - "\u0007\u001b\u0002\u0002\u0b29\u0b2b\u0005\u0198\u00cd\u0002\u0b2a\u0b29", - "\u0003\u0002\u0002\u0002\u0b2a\u0b2b\u0003\u0002\u0002\u0002\u0b2b\u0bae", - "\u0003\u0002\u0002\u0002\u0b2c\u0b2d\u0007\u014b\u0002\u0002\u0b2d\u0b33", - "\u0007\u001a\u0002\u0002\u0b2e\u0b30\u0005\u0196\u00cc\u0002\u0b2f\u0b2e", - "\u0003\u0002\u0002\u0002\u0b2f\u0b30\u0003\u0002\u0002\u0002\u0b30\u0b31", - "\u0003\u0002\u0002\u0002\u0b31\u0b34\u0005\u0180\u00c1\u0002\u0b32\u0b34", - "\u0007\b\u0002\u0002\u0b33\u0b2f\u0003\u0002\u0002\u0002\u0b33\u0b32", - "\u0003\u0002\u0002\u0002\u0b34\u0b35\u0003\u0002\u0002\u0002\u0b35\u0b37", - "\u0007\u001b\u0002\u0002\u0b36\u0b38\u0005\u0198\u00cd\u0002\u0b37\u0b36", - "\u0003\u0002\u0002\u0002\u0b37\u0b38\u0003\u0002\u0002\u0002\u0b38\u0bae", - "\u0003\u0002\u0002\u0002\u0b39\u0b3a\u0007\u014c\u0002\u0002\u0b3a\u0b3b", - "\u0007\u001a\u0002\u0002\u0b3b\u0b3c\u0007\u001b\u0002\u0002\u0b3c\u0bae", - "\u0005\u0198\u00cd\u0002\u0b3d\u0b3e\u0007\u014d\u0002\u0002\u0b3e\u0b3f", - "\u0007\u001a\u0002\u0002\u0b3f\u0b40\u0007\u001b\u0002\u0002\u0b40\u0bae", - "\u0005\u0198\u00cd\u0002\u0b41\u0b42\u0007\u014e\u0002\u0002\u0b42\u0b43", - "\u0007\u001a\u0002\u0002\u0b43\u0b44\u0005\u0180\u00c1\u0002\u0b44\u0b45", - "\u0007\u001b\u0002\u0002\u0b45\u0b46\u0005\u0198\u00cd\u0002\u0b46\u0bae", - "\u0003\u0002\u0002\u0002\u0b47\u0b48\u0007\u014f\u0002\u0002\u0b48\u0b49", - "\u0007\u001a\u0002\u0002\u0b49\u0b50\u0005\u0180\u00c1\u0002\u0b4a\u0b4b", - "\u0007\u0017\u0002\u0002\u0b4b\u0b4e\u0005\u0180\u00c1\u0002\u0b4c\u0b4d", - "\u0007\u0017\u0002\u0002\u0b4d\u0b4f\u0005\u0180\u00c1\u0002\u0b4e\u0b4c", - "\u0003\u0002\u0002\u0002\u0b4e\u0b4f\u0003\u0002\u0002\u0002\u0b4f\u0b51", - "\u0003\u0002\u0002\u0002\u0b50\u0b4a\u0003\u0002\u0002\u0002\u0b50\u0b51", - "\u0003\u0002\u0002\u0002\u0b51\u0b52\u0003\u0002\u0002\u0002\u0b52\u0b53", - "\u0007\u001b\u0002\u0002\u0b53\u0b54\u0005\u0198\u00cd\u0002\u0b54\u0bae", - "\u0003\u0002\u0002\u0002\u0b55\u0b56\u0007\u0150\u0002\u0002\u0b56\u0b57", - "\u0007\u001a\u0002\u0002\u0b57\u0b58\u0005\u0180\u00c1\u0002\u0b58\u0b59", - "\u0007\u001b\u0002\u0002\u0b59\u0b5a\u0005\u0198\u00cd\u0002\u0b5a\u0bae", - "\u0003\u0002\u0002\u0002\u0b5b\u0b5c\u0007\u0151\u0002\u0002\u0b5c\u0b5d", - "\u0007\u001a\u0002\u0002\u0b5d\u0b64\u0005\u0180\u00c1\u0002\u0b5e\u0b5f", - "\u0007\u0017\u0002\u0002\u0b5f\u0b62\u0005\u0180\u00c1\u0002\u0b60\u0b61", - "\u0007\u0017\u0002\u0002\u0b61\u0b63\u0005\u0180\u00c1\u0002\u0b62\u0b60", - "\u0003\u0002\u0002\u0002\u0b62\u0b63\u0003\u0002\u0002\u0002\u0b63\u0b65", - "\u0003\u0002\u0002\u0002\u0b64\u0b5e\u0003\u0002\u0002\u0002\u0b64\u0b65", - "\u0003\u0002\u0002\u0002\u0b65\u0b66\u0003\u0002\u0002\u0002\u0b66\u0b67", - "\u0007\u001b\u0002\u0002\u0b67\u0b68\u0005\u0198\u00cd\u0002\u0b68\u0bae", - "\u0003\u0002\u0002\u0002\u0b69\u0b6a\u0007\u00b3\u0002\u0002\u0b6a\u0b6c", - "\u0007\u001a\u0002\u0002\u0b6b\u0b6d\u0005\u0196\u00cc\u0002\u0b6c\u0b6b", - "\u0003\u0002\u0002\u0002\u0b6c\u0b6d\u0003\u0002\u0002\u0002\u0b6d\u0b6e", - "\u0003\u0002\u0002\u0002\u0b6e\u0b6f\u0005\u0180\u00c1\u0002\u0b6f\u0b71", - "\u0007\u001b\u0002\u0002\u0b70\u0b72\u0005\u0198\u00cd\u0002\u0b71\u0b70", - "\u0003\u0002\u0002\u0002\u0b71\u0b72\u0003\u0002\u0002\u0002\u0b72\u0bae", - "\u0003\u0002\u0002\u0002\u0b73\u0b74\u0007\u0152\u0002\u0002\u0b74\u0b76", - "\u0007\u001a\u0002\u0002\u0b75\u0b77\u0005\u0196\u00cc\u0002\u0b76\u0b75", - "\u0003\u0002\u0002\u0002\u0b76\u0b77\u0003\u0002\u0002\u0002\u0b77\u0b78", - "\u0003\u0002\u0002\u0002\u0b78\u0b79\u0005\u0180\u00c1\u0002\u0b79\u0b7b", - "\u0007\u001b\u0002\u0002\u0b7a\u0b7c\u0005\u0198\u00cd\u0002\u0b7b\u0b7a", - "\u0003\u0002\u0002\u0002\u0b7b\u0b7c\u0003\u0002\u0002\u0002\u0b7c\u0bae", - "\u0003\u0002\u0002\u0002\u0b7d\u0b7e\u0007\u0153\u0002\u0002\u0b7e\u0b7f", - "\u0007\u001a\u0002\u0002\u0b7f\u0b80\u0007\u001b\u0002\u0002\u0b80\u0bae", - "\u0005\u0198\u00cd\u0002\u0b81\u0b82\u0007\u0154\u0002\u0002\u0b82\u0b83", - "\u0007\u001a\u0002\u0002\u0b83\u0b84\u0007\u001b\u0002\u0002\u0b84\u0bae", - "\u0005\u0198\u00cd\u0002\u0b85\u0b86\u0007\u0155\u0002\u0002\u0b86\u0b88", - "\u0007\u001a\u0002\u0002\u0b87\u0b89\u0005\u0196\u00cc\u0002\u0b88\u0b87", - "\u0003\u0002\u0002\u0002\u0b88\u0b89\u0003\u0002\u0002\u0002\u0b89\u0b8a", - "\u0003\u0002\u0002\u0002\u0b8a\u0b8b\u0005\u0180\u00c1\u0002\u0b8b\u0b8d", - "\u0007\u001b\u0002\u0002\u0b8c\u0b8e\u0005\u0198\u00cd\u0002\u0b8d\u0b8c", - "\u0003\u0002\u0002\u0002\u0b8d\u0b8e\u0003\u0002\u0002\u0002\u0b8e\u0bae", - "\u0003\u0002\u0002\u0002\u0b8f\u0b90\u0007\u00e8\u0002\u0002\u0b90\u0b92", - "\u0007\u001a\u0002\u0002\u0b91\u0b93\u0005\u0196\u00cc\u0002\u0b92\u0b91", - "\u0003\u0002\u0002\u0002\u0b92\u0b93\u0003\u0002\u0002\u0002\u0b93\u0b94", - "\u0003\u0002\u0002\u0002\u0b94\u0b95\u0005\u0180\u00c1\u0002\u0b95\u0b97", - "\u0007\u001b\u0002\u0002\u0b96\u0b98\u0005\u0198\u00cd\u0002\u0b97\u0b96", - "\u0003\u0002\u0002\u0002\u0b97\u0b98\u0003\u0002\u0002\u0002\u0b98\u0bae", - "\u0003\u0002\u0002\u0002\u0b99\u0b9a\u0007\u0156\u0002\u0002\u0b9a\u0b9c", - "\u0007\u001a\u0002\u0002\u0b9b\u0b9d\u0005\u0196\u00cc\u0002\u0b9c\u0b9b", - "\u0003\u0002\u0002\u0002\u0b9c\u0b9d\u0003\u0002\u0002\u0002\u0b9d\u0b9e", - "\u0003\u0002\u0002\u0002\u0b9e\u0b9f\u0005\u0180\u00c1\u0002\u0b9f\u0ba1", - "\u0007\u001b\u0002\u0002\u0ba0\u0ba2\u0005\u0198\u00cd\u0002\u0ba1\u0ba0", - "\u0003\u0002\u0002\u0002\u0ba1\u0ba2\u0003\u0002\u0002\u0002\u0ba2\u0bae", - "\u0003\u0002\u0002\u0002\u0ba3\u0ba4\u0007\u0157\u0002\u0002\u0ba4\u0ba6", - "\u0007\u001a\u0002\u0002\u0ba5\u0ba7\u0005\u0196\u00cc\u0002\u0ba6\u0ba5", - "\u0003\u0002\u0002\u0002\u0ba6\u0ba7\u0003\u0002\u0002\u0002\u0ba7\u0ba8", - "\u0003\u0002\u0002\u0002\u0ba8\u0ba9\u0005\u0180\u00c1\u0002\u0ba9\u0bab", - "\u0007\u001b\u0002\u0002\u0baa\u0bac\u0005\u0198\u00cd\u0002\u0bab\u0baa", - "\u0003\u0002\u0002\u0002\u0bab\u0bac\u0003\u0002\u0002\u0002\u0bac\u0bae", - "\u0003\u0002\u0002\u0002\u0bad\u0b15\u0003\u0002\u0002\u0002\u0bad\u0b1f", - "\u0003\u0002\u0002\u0002\u0bad\u0b2c\u0003\u0002\u0002\u0002\u0bad\u0b39", - "\u0003\u0002\u0002\u0002\u0bad\u0b3d\u0003\u0002\u0002\u0002\u0bad\u0b41", - "\u0003\u0002\u0002\u0002\u0bad\u0b47\u0003\u0002\u0002\u0002\u0bad\u0b55", - "\u0003\u0002\u0002\u0002\u0bad\u0b5b\u0003\u0002\u0002\u0002\u0bad\u0b69", - "\u0003\u0002\u0002\u0002\u0bad\u0b73\u0003\u0002\u0002\u0002\u0bad\u0b7d", - "\u0003\u0002\u0002\u0002\u0bad\u0b81\u0003\u0002\u0002\u0002\u0bad\u0b85", - "\u0003\u0002\u0002\u0002\u0bad\u0b8f\u0003\u0002\u0002\u0002\u0bad\u0b99", - "\u0003\u0002\u0002\u0002\u0bad\u0ba3\u0003\u0002\u0002\u0002\u0bae\u0195", - "\u0003\u0002\u0002\u0002\u0baf\u0bb0\t&\u0002\u0002\u0bb0\u0197\u0003", - "\u0002\u0002\u0002\u0bb1\u0bb2\u0007\u0158\u0002\u0002\u0bb2\u0bb4\u0007", - "\u001a\u0002\u0002\u0bb3\u0bb5\u0005\u019a\u00ce\u0002\u0bb4\u0bb3\u0003", - "\u0002\u0002\u0002\u0bb4\u0bb5\u0003\u0002\u0002\u0002\u0bb5\u0bb7\u0003", - "\u0002\u0002\u0002\u0bb6\u0bb8\u0005\u0154\u00ab\u0002\u0bb7\u0bb6\u0003", - "\u0002\u0002\u0002\u0bb7\u0bb8\u0003\u0002\u0002\u0002\u0bb8\u0bb9\u0003", - "\u0002\u0002\u0002\u0bb9\u0bba\u0007\u001b\u0002\u0002\u0bba\u0199\u0003", - "\u0002\u0002\u0002\u0bbb\u0bbc\u0007\u0159\u0002\u0002\u0bbc\u0bbd\u0007", - "o\u0002\u0002\u0bbd\u0bc2\u0005\u0180\u00c1\u0002\u0bbe\u0bbf\u0007", - "\u0017\u0002\u0002\u0bbf\u0bc1\u0005\u0180\u00c1\u0002\u0bc0\u0bbe\u0003", - "\u0002\u0002\u0002\u0bc1\u0bc4\u0003\u0002\u0002\u0002\u0bc2\u0bc0\u0003", - "\u0002\u0002\u0002\u0bc2\u0bc3\u0003\u0002\u0002\u0002\u0bc3\u019b\u0003", - "\u0002\u0002\u0002\u0bc4\u0bc2\u0003\u0002\u0002\u0002\u0bc5\u0c8e\u0007", - "\u015a\u0002\u0002\u0bc6\u0bc7\u0007\u015b\u0002\u0002\u0bc7\u0bc8\u0007", - "\u001a\u0002\u0002\u0bc8\u0bc9\u0005\u0180\u00c1\u0002\u0bc9\u0bca\u0007", - ")\u0002\u0002\u0bca\u0bcc\u0005x=\u0002\u0bcb\u0bcd\u0005z>\u0002\u0bcc", - "\u0bcb\u0003\u0002\u0002\u0002\u0bcc\u0bcd\u0003\u0002\u0002\u0002\u0bcd", - "\u0bce\u0003\u0002\u0002\u0002\u0bce\u0bcf\u0007\u001b\u0002\u0002\u0bcf", - "\u0c8e\u0003\u0002\u0002\u0002\u0bd0\u0bd1\u0007\u014a\u0002\u0002\u0bd1", - "\u0bd4\u0007\u001a\u0002\u0002\u0bd2\u0bd5\u0005\u0180\u00c1\u0002\u0bd3", - "\u0bd5\u0007\b\u0002\u0002\u0bd4\u0bd2\u0003\u0002\u0002\u0002\u0bd4", - "\u0bd3\u0003\u0002\u0002\u0002\u0bd5\u0bd6\u0003\u0002\u0002\u0002\u0bd6", - "\u0c8e\u0007\u001b\u0002\u0002\u0bd7\u0c8e\u0007\u015c\u0002\u0002\u0bd8", - "\u0bd9\u0007\u00f7\u0002\u0002\u0bd9\u0c8e\u0007\u0091\u0002\u0002\u0bda", - "\u0bde\u0007\u015d\u0002\u0002\u0bdb\u0bdc\u0007\u00f7\u0002\u0002\u0bdc", - "\u0bde\u0007\u00ac\u0002\u0002\u0bdd\u0bda\u0003\u0002\u0002\u0002\u0bdd", - "\u0bdb\u0003\u0002\u0002\u0002\u0bde\u0be3\u0003\u0002\u0002\u0002\u0bdf", - "\u0be0\u0007\u001a\u0002\u0002\u0be0\u0be1\u0005\u0180\u00c1\u0002\u0be1", - "\u0be2\u0007\u001b\u0002\u0002\u0be2\u0be4\u0003\u0002\u0002\u0002\u0be3", - "\u0bdf\u0003\u0002\u0002\u0002\u0be3\u0be4\u0003\u0002\u0002\u0002\u0be4", - "\u0c8e\u0003\u0002\u0002\u0002\u0be5\u0c8e\u0007\u015e\u0002\u0002\u0be6", - "\u0be7\u0007\u00f7\u0002\u0002\u0be7\u0c8e\u0007\u015f\u0002\u0002\u0be8", - "\u0be9\u0007\u0160\u0002\u0002\u0be9\u0bea\u0007\u001a\u0002\u0002\u0bea", - "\u0bf7\u0005\u0180\u00c1\u0002\u0beb\u0bec\u0007\u0017\u0002\u0002\u0bec", - "\u0bf4\u0005\u0180\u00c1\u0002\u0bed\u0bee\u0007\u0017\u0002\u0002\u0bee", - "\u0bef\u0005\u0180\u00c1\u0002\u0bef\u0bf0\u0007\u0019\u0002\u0002\u0bf0", - "\u0bf1\u0005\u0180\u00c1\u0002\u0bf1\u0bf3\u0003\u0002\u0002\u0002\u0bf2", - "\u0bed\u0003\u0002\u0002\u0002\u0bf3\u0bf6\u0003\u0002\u0002\u0002\u0bf4", - "\u0bf2\u0003\u0002\u0002\u0002\u0bf4\u0bf5\u0003\u0002\u0002\u0002\u0bf5", - "\u0bf8\u0003\u0002\u0002\u0002\u0bf6\u0bf4\u0003\u0002\u0002\u0002\u0bf7", - "\u0beb\u0003\u0002\u0002\u0002\u0bf7\u0bf8\u0003\u0002\u0002\u0002\u0bf8", - "\u0bf9\u0003\u0002\u0002\u0002\u0bf9\u0bfa\u0007\u001b\u0002\u0002\u0bfa", - "\u0c8e\u0003\u0002\u0002\u0002\u0bfb\u0bfc\u0007\u0161\u0002\u0002\u0bfc", - "\u0bfd\u0007\u001a\u0002\u0002\u0bfd\u0c0a\u0005\u0180\u00c1\u0002\u0bfe", - "\u0bff\u0007\u0017\u0002\u0002\u0bff\u0c07\u0005\u0180\u00c1\u0002\u0c00", - "\u0c01\u0007\u0017\u0002\u0002\u0c01\u0c02\u0005\u0180\u00c1\u0002\u0c02", - "\u0c03\u0007\u0019\u0002\u0002\u0c03\u0c04\u0005\u0180\u00c1\u0002\u0c04", - "\u0c06\u0003\u0002\u0002\u0002\u0c05\u0c00\u0003\u0002\u0002\u0002\u0c06", - "\u0c09\u0003\u0002\u0002\u0002\u0c07\u0c05\u0003\u0002\u0002\u0002\u0c07", - "\u0c08\u0003\u0002\u0002\u0002\u0c08\u0c0b\u0003\u0002\u0002\u0002\u0c09", - "\u0c07\u0003\u0002\u0002\u0002\u0c0a\u0bfe\u0003\u0002\u0002\u0002\u0c0a", - "\u0c0b\u0003\u0002\u0002\u0002\u0c0b\u0c0c\u0003\u0002\u0002\u0002\u0c0c", - "\u0c0d\u0007\u001b\u0002\u0002\u0c0d\u0c8e\u0003\u0002\u0002\u0002\u0c0e", - "\u0c0f\u0007\u0162\u0002\u0002\u0c0f\u0c10\u0007\u001a\u0002\u0002\u0c10", - "\u0c1d\u0005\u0180\u00c1\u0002\u0c11\u0c12\u0007\u0017\u0002\u0002\u0c12", - "\u0c1a\u0005\u0180\u00c1\u0002\u0c13\u0c14\u0007\u0017\u0002\u0002\u0c14", - "\u0c15\u0005\u0180\u00c1\u0002\u0c15\u0c16\u0007\u0019\u0002\u0002\u0c16", - "\u0c17\u0005\u0180\u00c1\u0002\u0c17\u0c19\u0003\u0002\u0002\u0002\u0c18", - "\u0c13\u0003\u0002\u0002\u0002\u0c19\u0c1c\u0003\u0002\u0002\u0002\u0c1a", - "\u0c18\u0003\u0002\u0002\u0002\u0c1a\u0c1b\u0003\u0002\u0002\u0002\u0c1b", - "\u0c1e\u0003\u0002\u0002\u0002\u0c1c\u0c1a\u0003\u0002\u0002\u0002\u0c1d", - "\u0c11\u0003\u0002\u0002\u0002\u0c1d\u0c1e\u0003\u0002\u0002\u0002\u0c1e", - "\u0c1f\u0003\u0002\u0002\u0002\u0c1f\u0c20\u0007\u001b\u0002\u0002\u0c20", - "\u0c8e\u0003\u0002\u0002\u0002\u0c21\u0c22\u0007\u0163\u0002\u0002\u0c22", - "\u0c23\u0007\u001a\u0002\u0002\u0c23\u0c30\u0005\u0180\u00c1\u0002\u0c24", - "\u0c25\u0007\u0017\u0002\u0002\u0c25\u0c2d\u0005\u0180\u00c1\u0002\u0c26", - "\u0c27\u0007\u0017\u0002\u0002\u0c27\u0c28\u0005\u0180\u00c1\u0002\u0c28", - "\u0c29\u0007\u0019\u0002\u0002\u0c29\u0c2a\u0005\u0180\u00c1\u0002\u0c2a", - "\u0c2c\u0003\u0002\u0002\u0002\u0c2b\u0c26\u0003\u0002\u0002\u0002\u0c2c", - "\u0c2f\u0003\u0002\u0002\u0002\u0c2d\u0c2b\u0003\u0002\u0002\u0002\u0c2d", - "\u0c2e\u0003\u0002\u0002\u0002\u0c2e\u0c31\u0003\u0002\u0002\u0002\u0c2f", - "\u0c2d\u0003\u0002\u0002\u0002\u0c30\u0c24\u0003\u0002\u0002\u0002\u0c30", - "\u0c31\u0003\u0002\u0002\u0002\u0c31\u0c32\u0003\u0002\u0002\u0002\u0c32", - "\u0c33\u0007\u001b\u0002\u0002\u0c33\u0c8e\u0003\u0002\u0002\u0002\u0c34", - "\u0c35\u0007\u0164\u0002\u0002\u0c35\u0c36\u0007\u001a\u0002\u0002\u0c36", - "\u0c43\u0005\u0180\u00c1\u0002\u0c37\u0c38\u0007\u0017\u0002\u0002\u0c38", - "\u0c40\u0005\u0180\u00c1\u0002\u0c39\u0c3a\u0007\u0017\u0002\u0002\u0c3a", - "\u0c3b\u0005\u0180\u00c1\u0002\u0c3b\u0c3c\u0007\u0019\u0002\u0002\u0c3c", - "\u0c3d\u0005\u0180\u00c1\u0002\u0c3d\u0c3f\u0003\u0002\u0002\u0002\u0c3e", - "\u0c39\u0003\u0002\u0002\u0002\u0c3f\u0c42\u0003\u0002\u0002\u0002\u0c40", - "\u0c3e\u0003\u0002\u0002\u0002\u0c40\u0c41\u0003\u0002\u0002\u0002\u0c41", - "\u0c44\u0003\u0002\u0002\u0002\u0c42\u0c40\u0003\u0002\u0002\u0002\u0c43", - "\u0c37\u0003\u0002\u0002\u0002\u0c43\u0c44\u0003\u0002\u0002\u0002\u0c44", - "\u0c45\u0003\u0002\u0002\u0002\u0c45\u0c46\u0007\u001b\u0002\u0002\u0c46", - "\u0c8e\u0003\u0002\u0002\u0002\u0c47\u0c48\u0007\u0165\u0002\u0002\u0c48", - "\u0c49\u0007\u001a\u0002\u0002\u0c49\u0c56\u0005\u0180\u00c1\u0002\u0c4a", - "\u0c4b\u0007\u0017\u0002\u0002\u0c4b\u0c53\u0005\u0180\u00c1\u0002\u0c4c", - "\u0c4d\u0007\u0017\u0002\u0002\u0c4d\u0c4e\u0005\u0180\u00c1\u0002\u0c4e", - "\u0c4f\u0007\u0019\u0002\u0002\u0c4f\u0c50\u0005\u0180\u00c1\u0002\u0c50", - "\u0c52\u0003\u0002\u0002\u0002\u0c51\u0c4c\u0003\u0002\u0002\u0002\u0c52", - "\u0c55\u0003\u0002\u0002\u0002\u0c53\u0c51\u0003\u0002\u0002\u0002\u0c53", - "\u0c54\u0003\u0002\u0002\u0002\u0c54\u0c57\u0003\u0002\u0002\u0002\u0c55", - "\u0c53\u0003\u0002\u0002\u0002\u0c56\u0c4a\u0003\u0002\u0002\u0002\u0c56", - "\u0c57\u0003\u0002\u0002\u0002\u0c57\u0c58\u0003\u0002\u0002\u0002\u0c58", - "\u0c59\u0007\u001b\u0002\u0002\u0c59\u0c8e\u0003\u0002\u0002\u0002\u0c5a", - "\u0c5b\u0007\u0166\u0002\u0002\u0c5b\u0c5c\u0007\u001a\u0002\u0002\u0c5c", - "\u0c64\u0005\u0180\u00c1\u0002\u0c5d\u0c5e\u0007\u0017\u0002\u0002\u0c5e", - "\u0c5f\u0005\u0180\u00c1\u0002\u0c5f\u0c60\u0007\u0019\u0002\u0002\u0c60", - "\u0c61\u0005\u0180\u00c1\u0002\u0c61\u0c63\u0003\u0002\u0002\u0002\u0c62", - "\u0c5d\u0003\u0002\u0002\u0002\u0c63\u0c66\u0003\u0002\u0002\u0002\u0c64", - "\u0c62\u0003\u0002\u0002\u0002\u0c64\u0c65\u0003\u0002\u0002\u0002\u0c65", - "\u0c67\u0003\u0002\u0002\u0002\u0c66\u0c64\u0003\u0002\u0002\u0002\u0c67", - "\u0c68\u0007\u001b\u0002\u0002\u0c68\u0c8e\u0003\u0002\u0002\u0002\u0c69", - "\u0c6a\u0007\u0167\u0002\u0002\u0c6a\u0c6b\u0007\u001a\u0002\u0002\u0c6b", - "\u0c71\u0005\u0180\u00c1\u0002\u0c6c\u0c6d\u0007\u0017\u0002\u0002\u0c6d", - "\u0c6e\u0005\u0180\u00c1\u0002\u0c6e\u0c6f\u0007\u0019\u0002\u0002\u0c6f", - "\u0c70\u0005\u0180\u00c1\u0002\u0c70\u0c72\u0003\u0002\u0002\u0002\u0c71", - "\u0c6c\u0003\u0002\u0002\u0002\u0c72\u0c73\u0003\u0002\u0002\u0002\u0c73", - "\u0c71\u0003\u0002\u0002\u0002\u0c73\u0c74\u0003\u0002\u0002\u0002\u0c74", - "\u0c77\u0003\u0002\u0002\u0002\u0c75\u0c76\u0007\u0017\u0002\u0002\u0c76", - "\u0c78\u0005\u0180\u00c1\u0002\u0c77\u0c75\u0003\u0002\u0002\u0002\u0c77", - "\u0c78\u0003\u0002\u0002\u0002\u0c78\u0c79\u0003\u0002\u0002\u0002\u0c79", - "\u0c7a\u0007\u001b\u0002\u0002\u0c7a\u0c8e\u0003\u0002\u0002\u0002\u0c7b", - "\u0c7c\u0007\u0168\u0002\u0002\u0c7c\u0c7d\u0007\u001a\u0002\u0002\u0c7d", - "\u0c7e\u0005\u0180\u00c1\u0002\u0c7e\u0c7f\u0007\u001b\u0002\u0002\u0c7f", - "\u0c8e\u0003\u0002\u0002\u0002\u0c80\u0c81\u0007\u0169\u0002\u0002\u0c81", - "\u0c82\u0007\u001a\u0002\u0002\u0c82\u0c83\u0005\u0180\u00c1\u0002\u0c83", - "\u0c84\u0007\u00e1\u0002\u0002\u0c84\u0c87\u0005\u0180\u00c1\u0002\u0c85", - "\u0c86\u0007\u001e\u0002\u0002\u0c86\u0c88\u0005\u0180\u00c1\u0002\u0c87", - "\u0c85\u0003\u0002\u0002\u0002\u0c87\u0c88\u0003\u0002\u0002\u0002\u0c88", - "\u0c89\u0003\u0002\u0002\u0002\u0c89\u0c8a\u0007\u001b\u0002\u0002\u0c8a", - "\u0c8e\u0003\u0002\u0002\u0002\u0c8b\u0c8e\u0007\u016a\u0002\u0002\u0c8c", - "\u0c8e\u0007\u015f\u0002\u0002\u0c8d\u0bc5\u0003\u0002\u0002\u0002\u0c8d", - "\u0bc6\u0003\u0002\u0002\u0002\u0c8d\u0bd0\u0003\u0002\u0002\u0002\u0c8d", - "\u0bd7\u0003\u0002\u0002\u0002\u0c8d\u0bd8\u0003\u0002\u0002\u0002\u0c8d", - "\u0bdd\u0003\u0002\u0002\u0002\u0c8d\u0be5\u0003\u0002\u0002\u0002\u0c8d", - "\u0be6\u0003\u0002\u0002\u0002\u0c8d\u0be8\u0003\u0002\u0002\u0002\u0c8d", - "\u0bfb\u0003\u0002\u0002\u0002\u0c8d\u0c0e\u0003\u0002\u0002\u0002\u0c8d", - "\u0c21\u0003\u0002\u0002\u0002\u0c8d\u0c34\u0003\u0002\u0002\u0002\u0c8d", - "\u0c47\u0003\u0002\u0002\u0002\u0c8d\u0c5a\u0003\u0002\u0002\u0002\u0c8d", - "\u0c69\u0003\u0002\u0002\u0002\u0c8d\u0c7b\u0003\u0002\u0002\u0002\u0c8d", - "\u0c80\u0003\u0002\u0002\u0002\u0c8d\u0c8b\u0003\u0002\u0002\u0002\u0c8d", - "\u0c8c\u0003\u0002\u0002\u0002\u0c8e\u019d\u0003\u0002\u0002\u0002\u0c8f", - "\u0c90\u0005\u01b8\u00dd\u0002\u0c90\u0c92\u0007\u001a\u0002\u0002\u0c91", - "\u0c93\u0005\u01a0\u00d1\u0002\u0c92\u0c91\u0003\u0002\u0002\u0002\u0c92", - "\u0c93\u0003\u0002\u0002\u0002\u0c93\u0c94\u0003\u0002\u0002\u0002\u0c94", - "\u0c95\u0007\u001b\u0002\u0002\u0c95\u019f\u0003\u0002\u0002\u0002\u0c96", - "\u0c9b\u0005\u01a2\u00d2\u0002\u0c97\u0c98\u0007\u0017\u0002\u0002\u0c98", - "\u0c9a\u0005\u01a2\u00d2\u0002\u0c99\u0c97\u0003\u0002\u0002\u0002\u0c9a", - "\u0c9d\u0003\u0002\u0002\u0002\u0c9b\u0c99\u0003\u0002\u0002\u0002\u0c9b", - "\u0c9c\u0003\u0002\u0002\u0002\u0c9c\u01a1\u0003\u0002\u0002\u0002\u0c9d", - "\u0c9b\u0003\u0002\u0002\u0002\u0c9e\u0ca4\u0006\u00d2\u000e\u0002\u0c9f", - "\u0ca0\u0005\u01b8\u00dd\u0002\u0ca0\u0ca2\u0007\u0019\u0002\u0002\u0ca1", - "\u0ca3\u0007\u0110\u0002\u0002\u0ca2\u0ca1\u0003\u0002\u0002\u0002\u0ca2", - "\u0ca3\u0003\u0002\u0002\u0002\u0ca3\u0ca5\u0003\u0002\u0002\u0002\u0ca4", - "\u0c9f\u0003\u0002\u0002\u0002\u0ca4\u0ca5\u0003\u0002\u0002\u0002\u0ca5", - "\u0ca6\u0003\u0002\u0002\u0002\u0ca6\u0ca7\u0005\u0180\u00c1\u0002\u0ca7", - "\u01a3\u0003\u0002\u0002\u0002\u0ca8\u0cab\u0005\u011a\u008e\u0002\u0ca9", - "\u0cab\u0005\u0180\u00c1\u0002\u0caa\u0ca8\u0003\u0002\u0002\u0002\u0caa", - "\u0ca9\u0003\u0002\u0002\u0002\u0cab\u01a5\u0003\u0002\u0002\u0002\u0cac", - "\u0caf\u0005\u01b2\u00da\u0002\u0cad\u0caf\u0005\u0180\u00c1\u0002\u0cae", - "\u0cac\u0003\u0002\u0002\u0002\u0cae\u0cad\u0003\u0002\u0002\u0002\u0caf", - "\u01a7\u0003\u0002\u0002\u0002\u0cb0\u0cb4\u0007\u016b\u0002\u0002\u0cb1", - "\u0cb3\u0005\u01aa\u00d6\u0002\u0cb2\u0cb1\u0003\u0002\u0002\u0002\u0cb3", - "\u0cb6\u0003\u0002\u0002\u0002\u0cb4\u0cb2\u0003\u0002\u0002\u0002\u0cb4", - "\u0cb5\u0003\u0002\u0002\u0002\u0cb5\u01a9\u0003\u0002\u0002\u0002\u0cb6", - "\u0cb4\u0003\u0002\u0002\u0002\u0cb7\u0cb8\u0007\u013c\u0002\u0002\u0cb8", - "\u0cb9\u0005\u01b8\u00dd\u0002\u0cb9\u0cba\u0005\u0180\u00c1\u0002\u0cba", - "\u0cc4\u0003\u0002\u0002\u0002\u0cbb\u0cbc\u0007\u013c\u0002\u0002\u0cbc", - "\u0cbd\u0005\u01b8\u00dd\u0002\u0cbd\u0cbe\u0007\u0013\u0002\u0002\u0cbe", - "\u0cbf\u0007\u0019\u0002\u0002\u0cbf\u0cc0\u0005\u0180\u00c1\u0002\u0cc0", - "\u0cc4\u0003\u0002\u0002\u0002\u0cc1\u0cc2\u0007\u013c\u0002\u0002\u0cc2", - "\u0cc4\u0005\u01b8\u00dd\u0002\u0cc3\u0cb7\u0003\u0002\u0002\u0002\u0cc3", - "\u0cbb\u0003\u0002\u0002\u0002\u0cc3\u0cc1\u0003\u0002\u0002\u0002\u0cc4", - "\u01ab\u0003\u0002\u0002\u0002\u0cc5\u0cc6\u0007\t\u0002\u0002\u0cc6", - "\u0cc7\u0005\u01ae\u00d8\u0002\u0cc7\u0cc8\u0007\n\u0002\u0002\u0cc8", - "\u0ccb\u0003\u0002\u0002\u0002\u0cc9\u0ccb\u0005\u01b0\u00d9\u0002\u0cca", - "\u0cc5\u0003\u0002\u0002\u0002\u0cca\u0cc9\u0003\u0002\u0002\u0002\u0ccb", - "\u01ad\u0003\u0002\u0002\u0002\u0ccc\u0cce\u000b\u0002\u0002\u0002\u0ccd", - "\u0ccc\u0003\u0002\u0002\u0002\u0cce\u0cd1\u0003\u0002\u0002\u0002\u0ccf", - "\u0cd0\u0003\u0002\u0002\u0002\u0ccf\u0ccd\u0003\u0002\u0002\u0002\u0cd0", - "\u01af\u0003\u0002\u0002\u0002\u0cd1\u0ccf\u0003\u0002\u0002\u0002\u0cd2", - "\u0cd3\u0007\u016c\u0002\u0002\u0cd3\u0cd4\u0005\u0180\u00c1\u0002\u0cd4", - "\u01b1\u0003\u0002\u0002\u0002\u0cd5\u0ce4\u0007\u016d\u0002\u0002\u0cd6", - "\u0cda\u0007\u0005\u0002\u0002\u0cd7\u0cd8\u0007\u0007\u0002\u0002\u0cd8", - "\u0cda\u0007\u0005\u0002\u0002\u0cd9\u0cd6\u0003\u0002\u0002\u0002\u0cd9", - "\u0cd7\u0003\u0002\u0002\u0002\u0cd9\u0cda\u0003\u0002\u0002\u0002\u0cda", - "\u0cdb\u0003\u0002\u0002\u0002\u0cdb\u0ce0\u0005\u01b8\u00dd\u0002\u0cdc", - "\u0cdd\u0007\u0005\u0002\u0002\u0cdd\u0cdf\u0005\u01b8\u00dd\u0002\u0cde", - "\u0cdc\u0003\u0002\u0002\u0002\u0cdf\u0ce2\u0003\u0002\u0002\u0002\u0ce0", - "\u0cde\u0003\u0002\u0002\u0002\u0ce0\u0ce1\u0003\u0002\u0002\u0002\u0ce1", - "\u0ce4\u0003\u0002\u0002\u0002\u0ce2\u0ce0\u0003\u0002\u0002\u0002\u0ce3", - "\u0cd5\u0003\u0002\u0002\u0002\u0ce3\u0cd9\u0003\u0002\u0002\u0002\u0ce4", - "\u01b3\u0003\u0002\u0002\u0002\u0ce5\u0ce6\u0007\u0091\u0002\u0002\u0ce6", - "\u0ce7\u0005\u01ba\u00de\u0002\u0ce7\u01b5\u0003\u0002\u0002\u0002\u0ce8", - "\u0ce9\u0007\u00ac\u0002\u0002\u0ce9\u0cea\u0005\u01ba\u00de\u0002\u0cea", - "\u01b7\u0003\u0002\u0002\u0002\u0ceb\u0ced\u0007\u000b\u0002\u0002\u0cec", - "\u0ceb\u0003\u0002\u0002\u0002\u0cec\u0ced\u0003\u0002\u0002\u0002\u0ced", - "\u0cf0\u0003\u0002\u0002\u0002\u0cee\u0cf1\u0007\u0013\u0002\u0002\u0cef", - "\u0cf1\u0005\u01c4\u00e3\u0002\u0cf0\u0cee\u0003\u0002\u0002\u0002\u0cf0", - "\u0cef\u0003\u0002\u0002\u0002\u0cf1\u0cf9\u0003\u0002\u0002\u0002\u0cf2", - "\u0cf5\u0007\u0007\u0002\u0002\u0cf3\u0cf6\u0007\u0013\u0002\u0002\u0cf4", - "\u0cf6\u0005\u01c4\u00e3\u0002\u0cf5\u0cf3\u0003\u0002\u0002\u0002\u0cf5", - "\u0cf4\u0003\u0002\u0002\u0002\u0cf6\u0cf8\u0003\u0002\u0002\u0002\u0cf7", - "\u0cf2\u0003\u0002\u0002\u0002\u0cf8\u0cfb\u0003\u0002\u0002\u0002\u0cf9", - "\u0cf7\u0003\u0002\u0002\u0002\u0cf9\u0cfa\u0003\u0002\u0002\u0002\u0cfa", - "\u01b9\u0003\u0002\u0002\u0002\u0cfb\u0cf9\u0003\u0002\u0002\u0002\u0cfc", - "\u0cff\u0007\u011a\u0002\u0002\u0cfd\u0cff\u0007\u016e\u0002\u0002\u0cfe", - "\u0cfc\u0003\u0002\u0002\u0002\u0cfe\u0cfd\u0003\u0002\u0002\u0002\u0cff", - "\u01bb\u0003\u0002\u0002\u0002\u0d00\u0d02\t0\u0002\u0002\u0d01\u0d00", - "\u0003\u0002\u0002\u0002\u0d01\u0d02\u0003\u0002\u0002\u0002\u0d02\u0d03", - "\u0003\u0002\u0002\u0002\u0d03\u0d04\u0007J\u0002\u0002\u0d04\u01bd", - "\u0003\u0002\u0002\u0002\u0d05\u0d07\t0\u0002\u0002\u0d06\u0d05\u0003", - "\u0002\u0002\u0002\u0d06\u0d07\u0003\u0002\u0002\u0002\u0d07\u0d08\u0003", - "\u0002\u0002\u0002\u0d08\u0d09\u0007\u016f\u0002\u0002\u0d09\u01bf\u0003", - "\u0002\u0002\u0002\u0d0a\u0d0b\t1\u0002\u0002\u0d0b\u01c1\u0003\u0002", - "\u0002\u0002\u0d0c\u0d0d\u0007\u0015\u0002\u0002\u0d0d\u01c3\u0003\u0002", - "\u0002\u0002\u0d0e\u0d0f\t2\u0002\u0002\u0d0f\u01c5\u0003\u0002\u0002", - "\u0002\u01aa\u01cb\u01ce\u01d2\u01d5\u01da\u01e1\u01e7\u01e9\u01f2\u01f5", - "\u01f7\u0236\u023e\u024e\u0255\u0258\u025d\u0261\u026a\u026f\u0277\u027c", - "\u0285\u0291\u0296\u0299\u02a7\u02ae\u02b7\u02c8\u02cc\u02d4\u02df\u02e9", - "\u02f1\u02f8\u02fc\u0300\u0305\u0309\u030e\u0312\u0316\u0320\u0324\u0329", - "\u032e\u0332\u033f\u0344\u034a\u0353\u0357\u035f\u0362\u0367\u036c\u0373", - "\u037c\u037f\u0386\u038c\u0391\u0397\u039c\u039f\u03a5\u03b3\u03bd\u03c3", - "\u03c8\u03cd\u03d2\u03d6\u03db\u03de\u03e8\u03f4\u03fb\u03fe\u040a\u040f", - "\u0414\u0417\u041e\u042a\u0437\u0439\u043e\u0441\u0450\u0456\u0461\u0464", - "\u046e\u0475\u047b\u0483\u048d\u04a1\u04a7\u04ab\u04b0\u04b4\u04b9\u04bc", - "\u04c1\u04c4\u04d0\u04d7\u04dc\u04e1\u04e5\u04ea\u04ed\u04f7\u0503\u050a", - "\u0512\u0521\u0540\u0542\u0547\u054b\u0550\u0557\u055a\u055d\u0562\u0566", - "\u0568\u056f\u0575\u057c\u0582\u0585\u058a\u058e\u0591\u0598\u059e\u05a1", - "\u05ab\u05b4\u05bb\u05c2\u05c4\u05ca\u05cd\u05d8\u05e1\u05e7\u05ed\u05f0", - "\u05f5\u05f8\u05fb\u05fe\u0601\u0607\u0611\u061c\u061f\u0626\u062b\u0630", - "\u0634\u063c\u0640\u0645\u0649\u064b\u0650\u0658\u065d\u0663\u066a\u066d", - "\u0674\u067c\u0684\u0687\u068a\u068f\u0698\u069c\u06a6\u06b9\u06c0\u06c2", - "\u06c6\u06ca\u06d2\u06dd\u06e6\u06ee\u06f6\u06fa\u0702\u0714\u0722\u0729", - "\u072d\u0734\u0736\u073a\u0743\u074b\u0754\u0764\u076a\u076e\u0778\u0780", - "\u0789\u078d\u0793\u0798\u079c\u07a6\u07ac\u07b0\u07bc\u07c3\u07d3\u07da", - "\u07e4\u07e7\u07eb\u07f2\u07f9\u07fb\u07ff\u0803\u0808\u080b\u080f\u0812", - "\u081d\u0820\u082b\u0831\u0835\u0837\u083b\u0844\u084b\u084f\u0853\u085a", - "\u085e\u0866\u086c\u0870\u087b\u0882\u088f\u0897\u089b\u08a5\u08aa\u08b7", - "\u08c2\u08ca\u08ce\u08d2\u08d6\u08d8\u08dd\u08e0\u08e3\u08e6\u08ea\u08ed", - "\u08f0\u08f3\u08f6\u08fd\u0908\u090c\u090f\u0913\u091a\u091e\u0928\u0930", - "\u0936\u093a\u0940\u0949\u094c\u0951\u0954\u095e\u0963\u096c\u0971\u0975", - "\u097e\u0982\u0990\u099d\u09a2\u09a6\u09ac\u09b7\u09b9\u09c0\u09c3\u09ca", - "\u09cf\u09d5\u09d8\u09db\u09ea\u09f1\u09f4\u09f7\u09fb\u0a00\u0a06\u0a0a", - "\u0a15\u0a19\u0a1c\u0a20\u0a24\u0a28\u0a2c\u0a32\u0a38\u0a3f\u0a47\u0a4d", - "\u0a52\u0a5d\u0a66\u0a6a\u0a73\u0a77\u0a81\u0a86\u0a9c\u0a9f\u0ab2\u0ac2", - "\u0ac4\u0acf\u0ade\u0aea\u0aee\u0af9\u0afd\u0b09\u0b0d\u0b18\u0b1d\u0b22", - "\u0b26\u0b2a\u0b2f\u0b33\u0b37\u0b4e\u0b50\u0b62\u0b64\u0b6c\u0b71\u0b76", - "\u0b7b\u0b88\u0b8d\u0b92\u0b97\u0b9c\u0ba1\u0ba6\u0bab\u0bad\u0bb4\u0bb7", - "\u0bc2\u0bcc\u0bd4\u0bdd\u0be3\u0bf4\u0bf7\u0c07\u0c0a\u0c1a\u0c1d\u0c2d", - "\u0c30\u0c40\u0c43\u0c53\u0c56\u0c64\u0c73\u0c77\u0c87\u0c8d\u0c92\u0c9b", - "\u0ca2\u0ca4\u0caa\u0cae\u0cb4\u0cc3\u0cca\u0ccf\u0cd9\u0ce0\u0ce3\u0cec", - "\u0cf0\u0cf5\u0cf9\u0cfe\u0d01\u0d06"].join(""); + "\u0156\u00ac\u0002\u08ed\u08ec\u0003\u0002\u0002\u0002\u08ed\u08ee\u0003", + "\u0002\u0002\u0002\u08ee\u0129\u0003\u0002\u0002\u0002\u08ef\u08f1\u0005", + "\u012c\u0097\u0002\u08f0\u08ef\u0003\u0002\u0002\u0002\u08f0\u08f1\u0003", + "\u0002\u0002\u0002\u08f1\u08f3\u0003\u0002\u0002\u0002\u08f2\u08f4\u0005", + "\u012e\u0098\u0002\u08f3\u08f2\u0003\u0002\u0002\u0002\u08f3\u08f4\u0003", + "\u0002\u0002\u0002\u08f4\u08f5\u0003\u0002\u0002\u0002\u08f5\u08fa\u0005", + "\u0130\u0099\u0002\u08f6\u08f7\u0007\u0157\u0002\u0002\u08f7\u08f9\u0005", + "\u0130\u0099\u0002\u08f8\u08f6\u0003\u0002\u0002\u0002\u08f9\u08fc\u0003", + "\u0002\u0002\u0002\u08fa\u08f8\u0003\u0002\u0002\u0002\u08fa\u08fb\u0003", + "\u0002\u0002\u0002\u08fb\u012b\u0003\u0002\u0002\u0002\u08fc\u08fa\u0003", + "\u0002\u0002\u0002\u08fd\u08fe\t&\u0002\u0002\u08fe\u012d\u0003\u0002", + "\u0002\u0002\u08ff\u0900\u0007\u0122\u0002\u0002\u0900\u0901\u0005\u0180", + "\u00c1\u0002\u0901\u012f\u0003\u0002\u0002\u0002\u0902\u0903\u0005\u01b8", + "\u00dd\u0002\u0903\u0904\u0007\u015c\u0002\u0002\u0904\u0906\u0003\u0002", + "\u0002\u0002\u0905\u0902\u0003\u0002\u0002\u0002\u0905\u0906\u0003\u0002", + "\u0002\u0002\u0906\u0907\u0003\u0002\u0002\u0002\u0907\u0909\u0005\u0180", + "\u00c1\u0002\u0908\u090a\u0005\u0132\u009a\u0002\u0909\u0908\u0003\u0002", + "\u0002\u0002\u0909\u090a\u0003\u0002\u0002\u0002\u090a\u090d\u0003\u0002", + "\u0002\u0002\u090b\u090d\u0005\u0134\u009b\u0002\u090c\u0905\u0003\u0002", + "\u0002\u0002\u090c\u090b\u0003\u0002\u0002\u0002\u090d\u0131\u0003\u0002", + "\u0002\u0002\u090e\u0910\u0006\u009a\u0005\u0002\u090f\u0911\u0007\u000b", + "\u0002\u0002\u0910\u090f\u0003\u0002\u0002\u0002\u0910\u0911\u0003\u0002", + "\u0002\u0002\u0911\u0912\u0003\u0002\u0002\u0002\u0912\u0918\u0005\u01b8", + "\u00dd\u0002\u0913\u0914\u0007\u016a\u0002\u0002\u0914\u0915\u0007\u0120", + "\u0002\u0002\u0915\u0916\u0007\u0172\u0002\u0002\u0916\u0918\u0007\u016d", + "\u0002\u0002\u0917\u090e\u0003\u0002\u0002\u0002\u0917\u0913\u0003\u0002", + "\u0002\u0002\u0918\u0133\u0003\u0002\u0002\u0002\u0919\u091a\u0007\u0171", + "\u0002\u0002\u091a\u091c\u0007\u015a\u0002\u0002\u091b\u0919\u0003\u0002", + "\u0002\u0002\u091b\u091c\u0003\u0002\u0002\u0002\u091c\u091d\u0003\u0002", + "\u0002\u0002\u091d\u091e\u0007\u0166\u0002\u0002\u091e\u0135\u0003\u0002", + "\u0002\u0002\u091f\u0920\u0007\u0094\u0002\u0002\u0920\u0925\u0005\u01b8", + "\u00dd\u0002\u0921\u0922\u0007\u0157\u0002\u0002\u0922\u0924\u0005\u01b8", + "\u00dd\u0002\u0923\u0921\u0003\u0002\u0002\u0002\u0924\u0927\u0003\u0002", + "\u0002\u0002\u0925\u0923\u0003\u0002\u0002\u0002\u0925\u0926\u0003\u0002", + "\u0002\u0002\u0926\u0137\u0003\u0002\u0002\u0002\u0927\u0925\u0003\u0002", + "\u0002\u0002\u0928\u0929\u0007t\u0002\u0002\u0929\u092d\u0005\u013a", + "\u009e\u0002\u092a\u092c\u0005\u0140\u00a1\u0002\u092b\u092a\u0003\u0002", + "\u0002\u0002\u092c\u092f\u0003\u0002\u0002\u0002\u092d\u092b\u0003\u0002", + "\u0002\u0002\u092d\u092e\u0003\u0002\u0002\u0002\u092e\u0139\u0003\u0002", + "\u0002\u0002\u092f\u092d\u0003\u0002\u0002\u0002\u0930\u0934\u0005\u013c", + "\u009f\u0002\u0931\u0934\u0005\u013e\u00a0\u0002\u0932\u0934\u0005\u0144", + "\u00a3\u0002\u0933\u0930\u0003\u0002\u0002\u0002\u0933\u0931\u0003\u0002", + "\u0002\u0002\u0933\u0932\u0003\u0002\u0002\u0002\u0934\u013b\u0003\u0002", + "\u0002\u0002\u0935\u0937\u0005\u014a\u00a6\u0002\u0936\u0938\u0005\u0148", + "\u00a5\u0002\u0937\u0936\u0003\u0002\u0002\u0002\u0937\u0938\u0003\u0002", + "\u0002\u0002\u0938\u013d\u0003\u0002\u0002\u0002\u0939\u093a\u0007\u016a", + "\u0002\u0002\u093a\u093b\u0005\u011a\u008e\u0002\u093b\u093d\u0007\u016d", + "\u0002\u0002\u093c\u093e\u0005\u0148\u00a5\u0002\u093d\u093c\u0003\u0002", + "\u0002\u0002\u093d\u093e\u0003\u0002\u0002\u0002\u093e\u013f\u0003\u0002", + "\u0002\u0002\u093f\u0940\u0007\u0157\u0002\u0002\u0940\u0947\u0005\u013a", + "\u009e\u0002\u0941\u0942\u0005\u0142\u00a2\u0002\u0942\u0943\u0005\u013a", + "\u009e\u0002\u0943\u0944\u0007\u00c5\u0002\u0002\u0944\u0945\u0005\u0170", + "\u00b9\u0002\u0945\u0947\u0003\u0002\u0002\u0002\u0946\u093f\u0003\u0002", + "\u0002\u0002\u0946\u0941\u0003\u0002\u0002\u0002\u0947\u0141\u0003\u0002", + "\u0002\u0002\u0948\u094a\u0007\u008a\u0002\u0002\u0949\u0948\u0003\u0002", + "\u0002\u0002\u0949\u094a\u0003\u0002\u0002\u0002\u094a\u094b\u0003\u0002", + "\u0002\u0002\u094b\u0952\u0007\u0099\u0002\u0002\u094c\u094e\t\'\u0002", + "\u0002\u094d\u094f\u0007\u00cb\u0002\u0002\u094e\u094d\u0003\u0002\u0002", + "\u0002\u094e\u094f\u0003\u0002\u0002\u0002\u094f\u0950\u0003\u0002\u0002", + "\u0002\u0950\u0952\u0007\u0099\u0002\u0002\u0951\u0949\u0003\u0002\u0002", + "\u0002\u0951\u094c\u0003\u0002\u0002\u0002\u0952\u0143\u0003\u0002\u0002", + "\u0002\u0953\u0954\u0007\u0118\u0002\u0002\u0954\u0955\u0007\u016a\u0002", + "\u0002\u0955\u0956\u0007\u012e\u0002\u0002\u0956\u095b\u0005\u0146\u00a4", + "\u0002\u0957\u0958\u0007\u0157\u0002\u0002\u0958\u095a\u0005\u0146\u00a4", + "\u0002\u0959\u0957\u0003\u0002\u0002\u0002\u095a\u095d\u0003\u0002\u0002", + "\u0002\u095b\u0959\u0003\u0002\u0002\u0002\u095b\u095c\u0003\u0002\u0002", + "\u0002\u095c\u095e\u0003\u0002\u0002\u0002\u095d\u095b\u0003\u0002\u0002", + "\u0002\u095e\u0960\u0007\u016d\u0002\u0002\u095f\u0961\u0005\u0148\u00a5", + "\u0002\u0960\u095f\u0003\u0002\u0002\u0002\u0960\u0961\u0003\u0002\u0002", + "\u0002\u0961\u0145\u0003\u0002\u0002\u0002\u0962\u096f\u0005\u0180\u00c1", + "\u0002\u0963\u0964\u0007\u016a\u0002\u0002\u0964\u0969\u0005\u0180\u00c1", + "\u0002\u0965\u0966\u0007\u0157\u0002\u0002\u0966\u0968\u0005\u0180\u00c1", + "\u0002\u0967\u0965\u0003\u0002\u0002\u0002\u0968\u096b\u0003\u0002\u0002", + "\u0002\u0969\u0967\u0003\u0002\u0002\u0002\u0969\u096a\u0003\u0002\u0002", + "\u0002\u096a\u096c\u0003\u0002\u0002\u0002\u096b\u0969\u0003\u0002\u0002", + "\u0002\u096c\u096d\u0007\u016d\u0002\u0002\u096d\u096f\u0003\u0002\u0002", + "\u0002\u096e\u0962\u0003\u0002\u0002\u0002\u096e\u0963\u0003\u0002\u0002", + "\u0002\u096f\u0147\u0003\u0002\u0002\u0002\u0970\u0972\u0006\u00a5\u0006", + "\u0002\u0971\u0973\u0007\u000b\u0002\u0002\u0972\u0971\u0003\u0002\u0002", + "\u0002\u0972\u0973\u0003\u0002\u0002\u0002\u0973\u0974\u0003\u0002\u0002", + "\u0002\u0974\u097f\u0005\u01b8\u00dd\u0002\u0975\u0976\u0007\u016a\u0002", + "\u0002\u0976\u097b\u0007\u0171\u0002\u0002\u0977\u0978\u0007\u0157\u0002", + "\u0002\u0978\u097a\u0007\u0171\u0002\u0002\u0979\u0977\u0003\u0002\u0002", + "\u0002\u097a\u097d\u0003\u0002\u0002\u0002\u097b\u0979\u0003\u0002\u0002", + "\u0002\u097b\u097c\u0003\u0002\u0002\u0002\u097c\u097e\u0003\u0002\u0002", + "\u0002\u097d\u097b\u0003\u0002\u0002\u0002\u097e\u0980\u0007\u016d\u0002", + "\u0002\u097f\u0975\u0003\u0002\u0002\u0002\u097f\u0980\u0003\u0002\u0002", + "\u0002\u0980\u0149\u0003\u0002\u0002\u0002\u0981\u0982\u0005\u01b8\u00dd", + "\u0002\u0982\u014b\u0003\u0002\u0002\u0002\u0983\u0984\u0007\u0135\u0002", + "\u0002\u0984\u0985\u0005\u0170\u00b9\u0002\u0985\u014d\u0003\u0002\u0002", + "\u0002\u0986\u0987\u0007{\u0002\u0002\u0987\u0988\u0007\u001b\u0002", + "\u0002\u0988\u098d\u0005\u0180\u00c1\u0002\u0989\u098a\u0007\u0157\u0002", + "\u0002\u098a\u098c\u0005\u0180\u00c1\u0002\u098b\u0989\u0003\u0002\u0002", + "\u0002\u098c\u098f\u0003\u0002\u0002\u0002\u098d\u098b\u0003\u0002\u0002", + "\u0002\u098d\u098e\u0003\u0002\u0002\u0002\u098e\u014f\u0003\u0002\u0002", + "\u0002\u098f\u098d\u0003\u0002\u0002\u0002\u0990\u0991\u0007~\u0002", + "\u0002\u0991\u0992\u0005\u0170\u00b9\u0002\u0992\u0151\u0003\u0002\u0002", + "\u0002\u0993\u0994\u0007\u00da\u0002\u0002\u0994\u0995\u0005\u0170\u00b9", + "\u0002\u0995\u0153\u0003\u0002\u0002\u0002\u0996\u0997\u0007\u00c9\u0002", + "\u0002\u0997\u0998\u0007\u001b\u0002\u0002\u0998\u099a\u0005\u0180\u00c1", + "\u0002\u0999\u099b\t\t\u0002\u0002\u099a\u0999\u0003\u0002\u0002\u0002", + "\u099a\u099b\u0003\u0002\u0002\u0002\u099b\u09a3\u0003\u0002\u0002\u0002", + "\u099c\u099d\u0007\u0157\u0002\u0002\u099d\u099f\u0005\u0180\u00c1\u0002", + "\u099e\u09a0\t\t\u0002\u0002\u099f\u099e\u0003\u0002\u0002\u0002\u099f", + "\u09a0\u0003\u0002\u0002\u0002\u09a0\u09a2\u0003\u0002\u0002\u0002\u09a1", + "\u099c\u0003\u0002\u0002\u0002\u09a2\u09a5\u0003\u0002\u0002\u0002\u09a3", + "\u09a1\u0003\u0002\u0002\u0002\u09a3\u09a4\u0003\u0002\u0002\u0002\u09a4", + "\u0155\u0003\u0002\u0002\u0002\u09a5\u09a3\u0003\u0002\u0002\u0002\u09a6", + "\u09a8\u0005\u0158\u00ad\u0002\u09a7\u09a6\u0003\u0002\u0002\u0002\u09a8", + "\u09a9\u0003\u0002\u0002\u0002\u09a9\u09a7\u0003\u0002\u0002\u0002\u09a9", + "\u09aa\u0003\u0002\u0002\u0002\u09aa\u0157\u0003\u0002\u0002\u0002\u09ab", + "\u09ac\u0007\u00a1\u0002\u0002\u09ac\u09b7\u0005\u0180\u00c1\u0002\u09ad", + "\u09ae\u0007\u0137\u0002\u0002\u09ae\u09b4\t(\u0002\u0002\u09af\u09b0", + "\u0007\u012b\u0002\u0002\u09b0\u09b1\u0007\b\u0002\u0002\u09b1\u09b2", + "\u0007\u009a\u0002\u0002\u09b2\u09b3\t)\u0002\u0002\u09b3\u09b5\u0007", + "\u00a7\u0002\u0002\u09b4\u09af\u0003\u0002\u0002\u0002\u09b4\u09b5\u0003", + "\u0002\u0002\u0002\u09b5\u09b7\u0003\u0002\u0002\u0002\u09b6\u09ab\u0003", + "\u0002\u0002\u0002\u09b6\u09ad\u0003\u0002\u0002\u0002\u09b7\u0159\u0003", + "\u0002\u0002\u0002\u09b8\u09b9\u0007\u0129\u0002\u0002\u09b9\u09ba\u0005", + "\u015e\u00b0\u0002\u09ba\u09bb\u0007\u00fd\u0002\u0002\u09bb\u09bd\u0005", + "\u015c\u00af\u0002\u09bc\u09be\u0005\u014c\u00a7\u0002\u09bd\u09bc\u0003", + "\u0002\u0002\u0002\u09bd\u09be\u0003\u0002\u0002\u0002\u09be\u09c0\u0003", + "\u0002\u0002\u0002\u09bf\u09c1\u0005\u0160\u00b1\u0002\u09c0\u09bf\u0003", + "\u0002\u0002\u0002\u09c0\u09c1\u0003\u0002\u0002\u0002\u09c1\u015b\u0003", + "\u0002\u0002\u0002\u09c2\u09c7\u0005\u001c\u000f\u0002\u09c3\u09c4\u0007", + "\u0157\u0002\u0002\u09c4\u09c6\u0005\u001c\u000f\u0002\u09c5\u09c3\u0003", + "\u0002\u0002\u0002\u09c6\u09c9\u0003\u0002\u0002\u0002\u09c7\u09c5\u0003", + "\u0002\u0002\u0002\u09c7\u09c8\u0003\u0002\u0002\u0002\u09c8\u015d\u0003", + "\u0002\u0002\u0002\u09c9\u09c7\u0003\u0002\u0002\u0002\u09ca\u09cc\u0005", + "\u014a\u00a6\u0002\u09cb\u09cd\u0005\u0138\u009d\u0002\u09cc\u09cb\u0003", + "\u0002\u0002\u0002\u09cc\u09cd\u0003\u0002\u0002\u0002\u09cd\u09d3\u0003", + "\u0002\u0002\u0002\u09ce\u09cf\u0007\u016a\u0002\u0002\u09cf\u09d0\u0005", + "\u011a\u008e\u0002\u09d0\u09d1\u0007\u016d\u0002\u0002\u09d1\u09d3\u0003", + "\u0002\u0002\u0002\u09d2\u09ca\u0003\u0002\u0002\u0002\u09d2\u09ce\u0003", + "\u0002\u0002\u0002\u09d3\u09d8\u0003\u0002\u0002\u0002\u09d4\u09d6\u0007", + "\u000b\u0002\u0002\u09d5\u09d4\u0003\u0002\u0002\u0002\u09d5\u09d6\u0003", + "\u0002\u0002\u0002\u09d6\u09d7\u0003\u0002\u0002\u0002\u09d7\u09d9\u0005", + "\u01b8\u00dd\u0002\u09d8\u09d5\u0003\u0002\u0002\u0002\u09d8\u09d9\u0003", + "\u0002\u0002\u0002\u09d9\u015f\u0003\u0002\u0002\u0002\u09da\u09db\u0007", + "[\u0002\u0002\u09db\u09dc\u0005\u00b2Z\u0002\u09dc\u0161\u0003\u0002", + "\u0002\u0002\u09dd\u09de\u0007\u00b0\u0002\u0002\u09de\u09df\u0007\u0094", + "\u0002\u0002\u09df\u09e0\u0005\u0164\u00b3\u0002\u09e0\u09e1\u0007\u012c", + "\u0002\u0002\u09e1\u09e2\u0005\u0164\u00b3\u0002\u09e2\u09e3\u0007\u00c5", + "\u0002\u0002\u09e3\u09e5\u0005\u0170\u00b9\u0002\u09e4\u09e6\u0005\u0166", + "\u00b4\u0002\u09e5\u09e4\u0003\u0002\u0002\u0002\u09e6\u09e7\u0003\u0002", + "\u0002\u0002\u09e7\u09e5\u0003\u0002\u0002\u0002\u09e7\u09e8\u0003\u0002", + "\u0002\u0002\u09e8\u0163\u0003\u0002\u0002\u0002\u09e9\u09ef\u0005\u014a", + "\u00a6\u0002\u09ea\u09eb\u0007\u016a\u0002\u0002\u09eb\u09ec\u0005\u011a", + "\u008e\u0002\u09ec\u09ed\u0007\u016d\u0002\u0002\u09ed\u09ef\u0003\u0002", + "\u0002\u0002\u09ee\u09e9\u0003\u0002\u0002\u0002\u09ee\u09ea\u0003\u0002", + "\u0002\u0002\u09ef\u09f4\u0003\u0002\u0002\u0002\u09f0\u09f2\u0007\u000b", + "\u0002\u0002\u09f1\u09f0\u0003\u0002\u0002\u0002\u09f1\u09f2\u0003\u0002", + "\u0002\u0002\u09f2\u09f3\u0003\u0002\u0002\u0002\u09f3\u09f5\u0005\u01b8", + "\u00dd\u0002\u09f4\u09f1\u0003\u0002\u0002\u0002\u09f4\u09f5\u0003\u0002", + "\u0002\u0002\u09f5\u0165\u0003\u0002\u0002\u0002\u09f6\u09f8\u0007\u0134", + "\u0002\u0002\u09f7\u09f9\u0007\u00be\u0002\u0002\u09f8\u09f7\u0003\u0002", + "\u0002\u0002\u09f8\u09f9\u0003\u0002\u0002\u0002\u09f9\u09fa\u0003\u0002", + "\u0002\u0002\u09fa\u09fd\u0007\u00ad\u0002\u0002\u09fb\u09fc\u0007\b", + "\u0002\u0002\u09fc\u09fe\u0005\u0170\u00b9\u0002\u09fd\u09fb\u0003\u0002", + "\u0002\u0002\u09fd\u09fe\u0003\u0002\u0002\u0002\u09fe\u09ff\u0003\u0002", + "\u0002\u0002\u09ff\u0a00\u0007\u011d\u0002\u0002\u0a00\u0a04\u0005\u0168", + "\u00b5\u0002\u0a01\u0a02\u0007[\u0002\u0002\u0a02\u0a04\u0007\u0084", + "\u0002\u0002\u0a03\u09f6\u0003\u0002\u0002\u0002\u0a03\u0a01\u0003\u0002", + "\u0002\u0002\u0a04\u0167\u0003\u0002\u0002\u0002\u0a05\u0a07\u0007\u008c", + "\u0002\u0002\u0a06\u0a08\u0005\u00b4[\u0002\u0a07\u0a06\u0003\u0002", + "\u0002\u0002\u0a07\u0a08\u0003\u0002\u0002\u0002\u0a08\u0a09\u0003\u0002", + "\u0002\u0002\u0a09\u0a0a\u0007\u012e\u0002\u0002\u0a0a\u0a1a\u0005\u00b8", + "]\u0002\u0a0b\u0a0c\u0007\u0129\u0002\u0002\u0a0c\u0a0d\u0007\u00fd", + "\u0002\u0002\u0a0d\u0a12\u0005\u001c\u000f\u0002\u0a0e\u0a0f\u0007\u0157", + "\u0002\u0002\u0a0f\u0a11\u0005\u001c\u000f\u0002\u0a10\u0a0e\u0003\u0002", + "\u0002\u0002\u0a11\u0a14\u0003\u0002\u0002\u0002\u0a12\u0a10\u0003\u0002", + "\u0002\u0002\u0a12\u0a13\u0003\u0002\u0002\u0002\u0a13\u0a16\u0003\u0002", + "\u0002\u0002\u0a14\u0a12\u0003\u0002\u0002\u0002\u0a15\u0a17\u0005\u014c", + "\u00a7\u0002\u0a16\u0a15\u0003\u0002\u0002\u0002\u0a16\u0a17\u0003\u0002", + "\u0002\u0002\u0a17\u0a1a\u0003\u0002\u0002\u0002\u0a18\u0a1a\u0007M", + "\u0002\u0002\u0a19\u0a05\u0003\u0002\u0002\u0002\u0a19\u0a0b\u0003\u0002", + "\u0002\u0002\u0a19\u0a18\u0003\u0002\u0002\u0002\u0a1a\u0169\u0003\u0002", + "\u0002\u0002\u0a1b\u0a1d\u0007M\u0002\u0002\u0a1c\u0a1e\u0007t\u0002", + "\u0002\u0a1d\u0a1c\u0003\u0002\u0002\u0002\u0a1d\u0a1e\u0003\u0002\u0002", + "\u0002\u0a1e\u0a1f\u0003\u0002\u0002\u0002\u0a1f\u0a21\u0005\u014a\u00a6", + "\u0002\u0a20\u0a22\u0005\u016c\u00b7\u0002\u0a21\u0a20\u0003\u0002\u0002", + "\u0002\u0a21\u0a22\u0003\u0002\u0002\u0002\u0a22\u0a25\u0003\u0002\u0002", + "\u0002\u0a23\u0a26\u0005\u014c\u00a7\u0002\u0a24\u0a26\u0007\u0005\u0002", + "\u0002\u0a25\u0a23\u0003\u0002\u0002\u0002\u0a25\u0a24\u0003\u0002\u0002", + "\u0002\u0a25\u0a26\u0003\u0002\u0002\u0002\u0a26\u016b\u0003\u0002\u0002", + "\u0002\u0a27\u0a29\u0006\u00b7\u0007\u0002\u0a28\u0a2a\u0007\u000b\u0002", + "\u0002\u0a29\u0a28\u0003\u0002\u0002\u0002\u0a29\u0a2a\u0003\u0002\u0002", + "\u0002\u0a2a\u0a2b\u0003\u0002\u0002\u0002\u0a2b\u0a2c\u0005\u01b8\u00dd", + "\u0002\u0a2c\u016d\u0003\u0002\u0002\u0002\u0a2d\u0a2f\t*\u0002\u0002", + "\u0a2e\u0a30\u0007\u0118\u0002\u0002\u0a2f\u0a2e\u0003\u0002\u0002\u0002", + "\u0a2f\u0a30\u0003\u0002\u0002\u0002\u0a30\u0a31\u0003\u0002\u0002\u0002", + "\u0a31\u0a32\u0005\u014a\u00a6\u0002\u0a32\u016f\u0003\u0002\u0002\u0002", + "\u0a33\u0a35\b\u00b9\u0001\u0002\u0a34\u0a36\u0007\u00be\u0002\u0002", + "\u0a35\u0a34\u0003\u0002\u0002\u0002\u0a35\u0a36\u0003\u0002\u0002\u0002", + "\u0a36\u0a37\u0003\u0002\u0002\u0002\u0a37\u0a38\u0007\u016a\u0002\u0002", + "\u0a38\u0a39\u0005\u0170\u00b9\u0002\u0a39\u0a3a\u0007\u016d\u0002\u0002", + "\u0a3a\u0a3d\u0003\u0002\u0002\u0002\u0a3b\u0a3d\u0005\u0172\u00ba\u0002", + "\u0a3c\u0a33\u0003\u0002\u0002\u0002\u0a3c\u0a3b\u0003\u0002\u0002\u0002", + "\u0a3d\u0a44\u0003\u0002\u0002\u0002\u0a3e\u0a3f\f\u0004\u0002\u0002", + "\u0a3f\u0a40\u0005\u017c\u00bf\u0002\u0a40\u0a41\u0005\u0170\u00b9\u0005", + "\u0a41\u0a43\u0003\u0002\u0002\u0002\u0a42\u0a3e\u0003\u0002\u0002\u0002", + "\u0a43\u0a46\u0003\u0002\u0002\u0002\u0a44\u0a42\u0003\u0002\u0002\u0002", + "\u0a44\u0a45\u0003\u0002\u0002\u0002\u0a45\u0171\u0003\u0002\u0002\u0002", + "\u0a46\u0a44\u0003\u0002\u0002\u0002\u0a47\u0a4b\u0005\u0174\u00bb\u0002", + "\u0a48\u0a4b\u0005\u017a\u00be\u0002\u0a49\u0a4b\u0005\u0180\u00c1\u0002", + "\u0a4a\u0a47\u0003\u0002\u0002\u0002\u0a4a\u0a48\u0003\u0002\u0002\u0002", + "\u0a4a\u0a49\u0003\u0002\u0002\u0002\u0a4b\u0173\u0003\u0002\u0002\u0002", + "\u0a4c\u0a4d\u0005\u0180\u00c1\u0002\u0a4d\u0a4f\u0007\u0096\u0002\u0002", + "\u0a4e\u0a50\u0007\u00be\u0002\u0002\u0a4f\u0a4e\u0003\u0002\u0002\u0002", + "\u0a4f\u0a50\u0003\u0002\u0002\u0002\u0a50\u0a51\u0003\u0002\u0002\u0002", + "\u0a51\u0a52\u0007\u00c0\u0002\u0002\u0a52\u0a64\u0003\u0002\u0002\u0002", + "\u0a53\u0a54\u0005\u0180\u00c1\u0002\u0a54\u0a55\u0007\u0013\u0002\u0002", + "\u0a55\u0a56\u0005\u0180\u00c1\u0002\u0a56\u0a57\u0007\b\u0002\u0002", + "\u0a57\u0a58\u0005\u0180\u00c1\u0002\u0a58\u0a64\u0003\u0002\u0002\u0002", + "\u0a59\u0a5b\u0007\u00be\u0002\u0002\u0a5a\u0a59\u0003\u0002\u0002\u0002", + "\u0a5a\u0a5b\u0003\u0002\u0002\u0002\u0a5b\u0a5c\u0003\u0002\u0002\u0002", + "\u0a5c\u0a5d\u0007g\u0002\u0002\u0a5d\u0a5e\u0007\u016a\u0002\u0002", + "\u0a5e\u0a5f\u0005\u011a\u008e\u0002\u0a5f\u0a60\u0007\u016d\u0002\u0002", + "\u0a60\u0a64\u0003\u0002\u0002\u0002\u0a61\u0a64\u0005\u0176\u00bc\u0002", + "\u0a62\u0a64\u0005\u0178\u00bd\u0002\u0a63\u0a4c\u0003\u0002\u0002\u0002", + "\u0a63\u0a53\u0003\u0002\u0002\u0002\u0a63\u0a5a\u0003\u0002\u0002\u0002", + "\u0a63\u0a61\u0003\u0002\u0002\u0002\u0a63\u0a62\u0003\u0002\u0002\u0002", + "\u0a64\u0175\u0003\u0002\u0002\u0002\u0a65\u0a67\u0005\u0180\u00c1\u0002", + "\u0a66\u0a68\u0007\u00be\u0002\u0002\u0a67\u0a66\u0003\u0002\u0002\u0002", + "\u0a67\u0a68\u0003\u0002\u0002\u0002\u0a68\u0a69\u0003\u0002\u0002\u0002", + "\u0a69\u0a6a\u0007\u0086\u0002\u0002\u0a6a\u0a74\u0007\u016a\u0002\u0002", + "\u0a6b\u0a70\u0005\u0180\u00c1\u0002\u0a6c\u0a6d\u0007\u0157\u0002\u0002", + "\u0a6d\u0a6f\u0005\u0180\u00c1\u0002\u0a6e\u0a6c\u0003\u0002\u0002\u0002", + "\u0a6f\u0a72\u0003\u0002\u0002\u0002\u0a70\u0a6e\u0003\u0002\u0002\u0002", + "\u0a70\u0a71\u0003\u0002\u0002\u0002\u0a71\u0a75\u0003\u0002\u0002\u0002", + "\u0a72\u0a70\u0003\u0002\u0002\u0002\u0a73\u0a75\u0005\u011a\u008e\u0002", + "\u0a74\u0a6b\u0003\u0002\u0002\u0002\u0a74\u0a73\u0003\u0002\u0002\u0002", + "\u0a75\u0a76\u0003\u0002\u0002\u0002\u0a76\u0a77\u0007\u016d\u0002\u0002", + "\u0a77\u0177\u0003\u0002\u0002\u0002\u0a78\u0a79\u0007\u016a\u0002\u0002", + "\u0a79\u0a7e\u0005\u0180\u00c1\u0002\u0a7a\u0a7b\u0007\u0157\u0002\u0002", + "\u0a7b\u0a7d\u0005\u0180\u00c1\u0002\u0a7c\u0a7a\u0003\u0002\u0002\u0002", + "\u0a7d\u0a80\u0003\u0002\u0002\u0002\u0a7e\u0a7c\u0003\u0002\u0002\u0002", + "\u0a7e\u0a7f\u0003\u0002\u0002\u0002\u0a7f\u0a81\u0003\u0002\u0002\u0002", + "\u0a80\u0a7e\u0003\u0002\u0002\u0002\u0a81\u0a83\u0007\u016d\u0002\u0002", + "\u0a82\u0a84\u0007\u00be\u0002\u0002\u0a83\u0a82\u0003\u0002\u0002\u0002", + "\u0a83\u0a84\u0003\u0002\u0002\u0002\u0a84\u0a85\u0003\u0002\u0002\u0002", + "\u0a85\u0a86\u0007\u0086\u0002\u0002\u0a86\u0a87\u0007\u016a\u0002\u0002", + "\u0a87\u0a88\u0005\u011a\u008e\u0002\u0a88\u0a89\u0007\u016d\u0002\u0002", + "\u0a89\u0179\u0003\u0002\u0002\u0002\u0a8a\u0a8b\u0005\u0180\u00c1\u0002", + "\u0a8b\u0a8c\u0005\u017e\u00c0\u0002\u0a8c\u0a8d\u0005\u0180\u00c1\u0002", + "\u0a8d\u017b\u0003\u0002\u0002\u0002\u0a8e\u0a8f\t+\u0002\u0002\u0a8f", + "\u017d\u0003\u0002\u0002\u0002\u0a90\u0a9d\u0007\u015c\u0002\u0002\u0a91", + "\u0a9d\u0007\u015d\u0002\u0002\u0a92\u0a9d\u0007\u0160\u0002\u0002\u0a93", + "\u0a9d\u0007\u0161\u0002\u0002\u0a94\u0a9d\u0007\u0164\u0002\u0002\u0a95", + "\u0a9d\u0007\u0165\u0002\u0002\u0a96\u0a9d\u0007\u0162\u0002\u0002\u0a97", + "\u0a9d\u0007\u0163\u0002\u0002\u0a98\u0a9a\u0007\u00be\u0002\u0002\u0a99", + "\u0a98\u0003\u0002\u0002\u0002\u0a99\u0a9a\u0003\u0002\u0002\u0002\u0a9a", + "\u0a9b\u0003\u0002\u0002\u0002\u0a9b\u0a9d\t,\u0002\u0002\u0a9c\u0a90", + "\u0003\u0002\u0002\u0002\u0a9c\u0a91\u0003\u0002\u0002\u0002\u0a9c\u0a92", + "\u0003\u0002\u0002\u0002\u0a9c\u0a93\u0003\u0002\u0002\u0002\u0a9c\u0a94", + "\u0003\u0002\u0002\u0002\u0a9c\u0a95\u0003\u0002\u0002\u0002\u0a9c\u0a96", + "\u0003\u0002\u0002\u0002\u0a9c\u0a97\u0003\u0002\u0002\u0002\u0a9c\u0a99", + "\u0003\u0002\u0002\u0002\u0a9d\u017f\u0003\u0002\u0002\u0002\u0a9e\u0a9f", + "\b\u00c1\u0001\u0002\u0a9f\u0aa0\u0007\u016a\u0002\u0002\u0aa0\u0aa1", + "\u0005\u011a\u008e\u0002\u0aa1\u0aa2\u0007\u016d\u0002\u0002\u0aa2\u0ab0", + "\u0003\u0002\u0002\u0002\u0aa3\u0aa4\u0007\u016a\u0002\u0002\u0aa4\u0aa5", + "\u0005\u0180\u00c1\u0002\u0aa5\u0aa6\u0007\u016d\u0002\u0002\u0aa6\u0ab0", + "\u0003\u0002\u0002\u0002\u0aa7\u0ab0\u0005\u0184\u00c3\u0002\u0aa8\u0ab0", + "\u0005\u0188\u00c5\u0002\u0aa9\u0ab0\u0005\u018c\u00c7\u0002\u0aaa\u0ab0", + "\u0005\u0192\u00ca\u0002\u0aab\u0ab0\u0005\u0194\u00cb\u0002\u0aac\u0ab0", + "\u0005\u019c\u00cf\u0002\u0aad\u0ab0\u0005\u019e\u00d0\u0002\u0aae\u0ab0", + "\u0005\u0182\u00c2\u0002\u0aaf\u0a9e\u0003\u0002\u0002\u0002\u0aaf\u0aa3", + "\u0003\u0002\u0002\u0002\u0aaf\u0aa7\u0003\u0002\u0002\u0002\u0aaf\u0aa8", + "\u0003\u0002\u0002\u0002\u0aaf\u0aa9\u0003\u0002\u0002\u0002\u0aaf\u0aaa", + "\u0003\u0002\u0002\u0002\u0aaf\u0aab\u0003\u0002\u0002\u0002\u0aaf\u0aac", + "\u0003\u0002\u0002\u0002\u0aaf\u0aad\u0003\u0002\u0002\u0002\u0aaf\u0aae", + "\u0003\u0002\u0002\u0002\u0ab0\u0ac1\u0003\u0002\u0002\u0002\u0ab1\u0ab2", + "\f\u0010\u0002\u0002\u0ab2\u0ab3\u0007\u0166\u0002\u0002\u0ab3\u0ac0", + "\u0005\u0180\u00c1\u0011\u0ab4\u0ab5\f\u000f\u0002\u0002\u0ab5\u0ab6", + "\u0007\u0159\u0002\u0002\u0ab6\u0ac0\u0005\u0180\u00c1\u0010\u0ab7\u0ab8", + "\f\u000e\u0002\u0002\u0ab8\u0ab9\u0007\u0155\u0002\u0002\u0ab9\u0ac0", + "\u0005\u0180\u00c1\u000f\u0aba\u0abb\f\r\u0002\u0002\u0abb\u0abc\u0007", + "\u0170\u0002\u0002\u0abc\u0ac0\u0005\u0180\u00c1\u000e\u0abd\u0abe\f", + "\u0011\u0002\u0002\u0abe\u0ac0\u0005\u0186\u00c4\u0002\u0abf\u0ab1\u0003", + "\u0002\u0002\u0002\u0abf\u0ab4\u0003\u0002\u0002\u0002\u0abf\u0ab7\u0003", + "\u0002\u0002\u0002\u0abf\u0aba\u0003\u0002\u0002\u0002\u0abf\u0abd\u0003", + "\u0002\u0002\u0002\u0ac0\u0ac3\u0003\u0002\u0002\u0002\u0ac1\u0abf\u0003", + "\u0002\u0002\u0002\u0ac1\u0ac2\u0003\u0002\u0002\u0002\u0ac2\u0181\u0003", + "\u0002\u0002\u0002\u0ac3\u0ac1\u0003\u0002\u0002\u0002\u0ac4\u0acd\u0005", + "\u01b4\u00db\u0002\u0ac5\u0acd\u0005\u01b6\u00dc\u0002\u0ac6\u0acd\u0005", + "\u01c0\u00e1\u0002\u0ac7\u0acd\u0005\u01b8\u00dd\u0002\u0ac8\u0acd\u0005", + "\u01ba\u00de\u0002\u0ac9\u0acd\u0005\u01be\u00e0\u0002\u0aca\u0acd\u0005", + "\u01bc\u00df\u0002\u0acb\u0acd\u0005\u01c2\u00e2\u0002\u0acc\u0ac4\u0003", + "\u0002\u0002\u0002\u0acc\u0ac5\u0003\u0002\u0002\u0002\u0acc\u0ac6\u0003", + "\u0002\u0002\u0002\u0acc\u0ac7\u0003\u0002\u0002\u0002\u0acc\u0ac8\u0003", + "\u0002\u0002\u0002\u0acc\u0ac9\u0003\u0002\u0002\u0002\u0acc\u0aca\u0003", + "\u0002\u0002\u0002\u0acc\u0acb\u0003\u0002\u0002\u0002\u0acd\u0183\u0003", + "\u0002\u0002\u0002\u0ace\u0acf\u0007\u0093\u0002\u0002\u0acf\u0ad0\u0005", + "\u0180\u00c1\u0002\u0ad0\u0ad1\u0005\u0186\u00c4\u0002\u0ad1\u0185\u0003", + "\u0002\u0002\u0002\u0ad2\u0ad3\t-\u0002\u0002\u0ad3\u0187\u0003\u0002", + "\u0002\u0002\u0ad4\u0ad5\u0005\u018a\u00c6\u0002\u0ad5\u0ad6\t.\u0002", + "\u0002\u0ad6\u0adb\u0005\u018a\u00c6\u0002\u0ad7\u0ad8\t.\u0002\u0002", + "\u0ad8\u0ada\u0005\u018a\u00c6\u0002\u0ad9\u0ad7\u0003\u0002\u0002\u0002", + "\u0ada\u0add\u0003\u0002\u0002\u0002\u0adb\u0ad9\u0003\u0002\u0002\u0002", + "\u0adb\u0adc\u0003\u0002\u0002\u0002\u0adc\u0189\u0003\u0002\u0002\u0002", + "\u0add\u0adb\u0003\u0002\u0002\u0002\u0ade\u0adf\u0007\u016a\u0002\u0002", + "\u0adf\u0ae0\u0005\u0180\u00c1\u0002\u0ae0\u0ae1\u0007\u016d\u0002\u0002", + "\u0ae1\u0ae8\u0003\u0002\u0002\u0002\u0ae2\u0ae8\u0005\u018c\u00c7\u0002", + "\u0ae3\u0ae8\u0005\u0194\u00cb\u0002\u0ae4\u0ae8\u0005\u019c\u00cf\u0002", + "\u0ae5\u0ae8\u0005\u019e\u00d0\u0002\u0ae6\u0ae8\u0005\u0182\u00c2\u0002", + "\u0ae7\u0ade\u0003\u0002\u0002\u0002\u0ae7\u0ae2\u0003\u0002\u0002\u0002", + "\u0ae7\u0ae3\u0003\u0002\u0002\u0002\u0ae7\u0ae4\u0003\u0002\u0002\u0002", + "\u0ae7\u0ae5\u0003\u0002\u0002\u0002\u0ae7\u0ae6\u0003\u0002\u0002\u0002", + "\u0ae8\u018b\u0003\u0002\u0002\u0002\u0ae9\u0aec\u0005\u018e\u00c8\u0002", + "\u0aea\u0aec\u0005\u0190\u00c9\u0002\u0aeb\u0ae9\u0003\u0002\u0002\u0002", + "\u0aeb\u0aea\u0003\u0002\u0002\u0002\u0aec\u018d\u0003\u0002\u0002\u0002", + "\u0aed\u0aee\u0007 \u0002\u0002\u0aee\u0af4\u0005\u0180\u00c1\u0002", + "\u0aef\u0af0\u0007\u0134\u0002\u0002\u0af0\u0af1\u0005\u0180\u00c1\u0002", + "\u0af1\u0af2\u0007\u011d\u0002\u0002\u0af2\u0af3\u0005\u0180\u00c1\u0002", + "\u0af3\u0af5\u0003\u0002\u0002\u0002\u0af4\u0aef\u0003\u0002\u0002\u0002", + "\u0af5\u0af6\u0003\u0002\u0002\u0002\u0af6\u0af4\u0003\u0002\u0002\u0002", + "\u0af6\u0af7\u0003\u0002\u0002\u0002\u0af7\u0afa\u0003\u0002\u0002\u0002", + "\u0af8\u0af9\u0007[\u0002\u0002\u0af9\u0afb\u0005\u0180\u00c1\u0002", + "\u0afa\u0af8\u0003\u0002\u0002\u0002\u0afa\u0afb\u0003\u0002\u0002\u0002", + "\u0afb\u0afc\u0003\u0002\u0002\u0002\u0afc\u0afd\u0007_\u0002\u0002", + "\u0afd\u018f\u0003\u0002\u0002\u0002\u0afe\u0b04\u0007 \u0002\u0002", + "\u0aff\u0b00\u0007\u0134\u0002\u0002\u0b00\u0b01\u0005\u0170\u00b9\u0002", + "\u0b01\u0b02\u0007\u011d\u0002\u0002\u0b02\u0b03\u0005\u0180\u00c1\u0002", + "\u0b03\u0b05\u0003\u0002\u0002\u0002\u0b04\u0aff\u0003\u0002\u0002\u0002", + "\u0b05\u0b06\u0003\u0002\u0002\u0002\u0b06\u0b04\u0003\u0002\u0002\u0002", + "\u0b06\u0b07\u0003\u0002\u0002\u0002\u0b07\u0b0a\u0003\u0002\u0002\u0002", + "\u0b08\u0b09\u0007[\u0002\u0002\u0b09\u0b0b\u0005\u0180\u00c1\u0002", + "\u0b0a\u0b08\u0003\u0002\u0002\u0002\u0b0a\u0b0b\u0003\u0002\u0002\u0002", + "\u0b0b\u0b0c\u0003\u0002\u0002\u0002\u0b0c\u0b0d\u0007_\u0002\u0002", + "\u0b0d\u0191\u0003\u0002\u0002\u0002\u0b0e\u0b0f\u0005\u01b8\u00dd\u0002", + "\u0b0f\u0b10\u0007\u0167\u0002\u0002\u0b10\u0b11\t/\u0002\u0002\u0b11", + "\u0193\u0003\u0002\u0002\u0002\u0b12\u0b13\u0007\u0010\u0002\u0002\u0b13", + "\u0b15\u0007\u016a\u0002\u0002\u0b14\u0b16\u0005\u0196\u00cc\u0002\u0b15", + "\u0b14\u0003\u0002\u0002\u0002\u0b15\u0b16\u0003\u0002\u0002\u0002\u0b16", + "\u0b17\u0003\u0002\u0002\u0002\u0b17\u0b18\u0005\u0180\u00c1\u0002\u0b18", + "\u0b1a\u0007\u016d\u0002\u0002\u0b19\u0b1b\u0005\u0198\u00cd\u0002\u0b1a", + "\u0b19\u0003\u0002\u0002\u0002\u0b1a\u0b1b\u0003\u0002\u0002\u0002\u0b1b", + "\u0bab\u0003\u0002\u0002\u0002\u0b1c\u0b1d\u00076\u0002\u0002\u0b1d", + "\u0b23\u0007\u016a\u0002\u0002\u0b1e\u0b20\u0005\u0196\u00cc\u0002\u0b1f", + "\u0b1e\u0003\u0002\u0002\u0002\u0b1f\u0b20\u0003\u0002\u0002\u0002\u0b20", + "\u0b21\u0003\u0002\u0002\u0002\u0b21\u0b24\u0005\u0180\u00c1\u0002\u0b22", + "\u0b24\u0007\u0166\u0002\u0002\u0b23\u0b1f\u0003\u0002\u0002\u0002\u0b23", + "\u0b22\u0003\u0002\u0002\u0002\u0b24\u0b25\u0003\u0002\u0002\u0002\u0b25", + "\u0b27\u0007\u016d\u0002\u0002\u0b26\u0b28\u0005\u0198\u00cd\u0002\u0b27", + "\u0b26\u0003\u0002\u0002\u0002\u0b27\u0b28\u0003\u0002\u0002\u0002\u0b28", + "\u0bab\u0003\u0002\u0002\u0002\u0b29\u0b2a\u00077\u0002\u0002\u0b2a", + "\u0b30\u0007\u016a\u0002\u0002\u0b2b\u0b2d\u0005\u0196\u00cc\u0002\u0b2c", + "\u0b2b\u0003\u0002\u0002\u0002\u0b2c\u0b2d\u0003\u0002\u0002\u0002\u0b2d", + "\u0b2e\u0003\u0002\u0002\u0002\u0b2e\u0b31\u0005\u0180\u00c1\u0002\u0b2f", + "\u0b31\u0007\u0166\u0002\u0002\u0b30\u0b2c\u0003\u0002\u0002\u0002\u0b30", + "\u0b2f\u0003\u0002\u0002\u0002\u0b31\u0b32\u0003\u0002\u0002\u0002\u0b32", + "\u0b34\u0007\u016d\u0002\u0002\u0b33\u0b35\u0005\u0198\u00cd\u0002\u0b34", + "\u0b33\u0003\u0002\u0002\u0002\u0b34\u0b35\u0003\u0002\u0002\u0002\u0b35", + "\u0bab\u0003\u0002\u0002\u0002\u0b36\u0b37\u0007\u013e\u0002\u0002\u0b37", + "\u0b38\u0007\u016a\u0002\u0002\u0b38\u0b39\u0007\u016d\u0002\u0002\u0b39", + "\u0bab\u0005\u0198\u00cd\u0002\u0b3a\u0b3b\u0007\u0142\u0002\u0002\u0b3b", + "\u0b3c\u0007\u016a\u0002\u0002\u0b3c\u0b3d\u0007\u016d\u0002\u0002\u0b3d", + "\u0bab\u0005\u0198\u00cd\u0002\u0b3e\u0b3f\u0007\u0143\u0002\u0002\u0b3f", + "\u0b40\u0007\u016a\u0002\u0002\u0b40\u0b41\u0005\u0180\u00c1\u0002\u0b41", + "\u0b42\u0007\u016d\u0002\u0002\u0b42\u0b43\u0005\u0198\u00cd\u0002\u0b43", + "\u0bab\u0003\u0002\u0002\u0002\u0b44\u0b45\u0007\u0144\u0002\u0002\u0b45", + "\u0b46\u0007\u016a\u0002\u0002\u0b46\u0b4d\u0005\u0180\u00c1\u0002\u0b47", + "\u0b48\u0007\u0157\u0002\u0002\u0b48\u0b4b\u0005\u0180\u00c1\u0002\u0b49", + "\u0b4a\u0007\u0157\u0002\u0002\u0b4a\u0b4c\u0005\u0180\u00c1\u0002\u0b4b", + "\u0b49\u0003\u0002\u0002\u0002\u0b4b\u0b4c\u0003\u0002\u0002\u0002\u0b4c", + "\u0b4e\u0003\u0002\u0002\u0002\u0b4d\u0b47\u0003\u0002\u0002\u0002\u0b4d", + "\u0b4e\u0003\u0002\u0002\u0002\u0b4e\u0b4f\u0003\u0002\u0002\u0002\u0b4f", + "\u0b50\u0007\u016d\u0002\u0002\u0b50\u0b51\u0005\u0198\u00cd\u0002\u0b51", + "\u0bab\u0003\u0002\u0002\u0002\u0b52\u0b53\u0007\u0145\u0002\u0002\u0b53", + "\u0b54\u0007\u016a\u0002\u0002\u0b54\u0b55\u0005\u0180\u00c1\u0002\u0b55", + "\u0b56\u0007\u016d\u0002\u0002\u0b56\u0b57\u0005\u0198\u00cd\u0002\u0b57", + "\u0bab\u0003\u0002\u0002\u0002\u0b58\u0b59\u0007\u0146\u0002\u0002\u0b59", + "\u0b5a\u0007\u016a\u0002\u0002\u0b5a\u0b61\u0005\u0180\u00c1\u0002\u0b5b", + "\u0b5c\u0007\u0157\u0002\u0002\u0b5c\u0b5f\u0005\u0180\u00c1\u0002\u0b5d", + "\u0b5e\u0007\u0157\u0002\u0002\u0b5e\u0b60\u0005\u0180\u00c1\u0002\u0b5f", + "\u0b5d\u0003\u0002\u0002\u0002\u0b5f\u0b60\u0003\u0002\u0002\u0002\u0b60", + "\u0b62\u0003\u0002\u0002\u0002\u0b61\u0b5b\u0003\u0002\u0002\u0002\u0b61", + "\u0b62\u0003\u0002\u0002\u0002\u0b62\u0b63\u0003\u0002\u0002\u0002\u0b63", + "\u0b64\u0007\u016d\u0002\u0002\u0b64\u0b65\u0005\u0198\u00cd\u0002\u0b65", + "\u0bab\u0003\u0002\u0002\u0002\u0b66\u0b67\u0007\u00ae\u0002\u0002\u0b67", + "\u0b69\u0007\u016a\u0002\u0002\u0b68\u0b6a\u0005\u0196\u00cc\u0002\u0b69", + "\u0b68\u0003\u0002\u0002\u0002\u0b69\u0b6a\u0003\u0002\u0002\u0002\u0b6a", + "\u0b6b\u0003\u0002\u0002\u0002\u0b6b\u0b6c\u0005\u0180\u00c1\u0002\u0b6c", + "\u0b6e\u0007\u016d\u0002\u0002\u0b6d\u0b6f\u0005\u0198\u00cd\u0002\u0b6e", + "\u0b6d\u0003\u0002\u0002\u0002\u0b6e\u0b6f\u0003\u0002\u0002\u0002\u0b6f", + "\u0bab\u0003\u0002\u0002\u0002\u0b70\u0b71\u0007\u00b4\u0002\u0002\u0b71", + "\u0b73\u0007\u016a\u0002\u0002\u0b72\u0b74\u0005\u0196\u00cc\u0002\u0b73", + "\u0b72\u0003\u0002\u0002\u0002\u0b73\u0b74\u0003\u0002\u0002\u0002\u0b74", + "\u0b75\u0003\u0002\u0002\u0002\u0b75\u0b76\u0005\u0180\u00c1\u0002\u0b76", + "\u0b78\u0007\u016d\u0002\u0002\u0b77\u0b79\u0005\u0198\u00cd\u0002\u0b78", + "\u0b77\u0003\u0002\u0002\u0002\u0b78\u0b79\u0003\u0002\u0002\u0002\u0b79", + "\u0bab\u0003\u0002\u0002\u0002\u0b7a\u0b7b\u0007\u014f\u0002\u0002\u0b7b", + "\u0b7c\u0007\u016a\u0002\u0002\u0b7c\u0b7d\u0007\u016d\u0002\u0002\u0b7d", + "\u0bab\u0005\u0198\u00cd\u0002\u0b7e\u0b7f\u0007\u0150\u0002\u0002\u0b7f", + "\u0b80\u0007\u016a\u0002\u0002\u0b80\u0b81\u0007\u016d\u0002\u0002\u0b81", + "\u0bab\u0005\u0198\u00cd\u0002\u0b82\u0b83\u0007\u0151\u0002\u0002\u0b83", + "\u0b85\u0007\u016a\u0002\u0002\u0b84\u0b86\u0005\u0196\u00cc\u0002\u0b85", + "\u0b84\u0003\u0002\u0002\u0002\u0b85\u0b86\u0003\u0002\u0002\u0002\u0b86", + "\u0b87\u0003\u0002\u0002\u0002\u0b87\u0b88\u0005\u0180\u00c1\u0002\u0b88", + "\u0b8a\u0007\u016d\u0002\u0002\u0b89\u0b8b\u0005\u0198\u00cd\u0002\u0b8a", + "\u0b89\u0003\u0002\u0002\u0002\u0b8a\u0b8b\u0003\u0002\u0002\u0002\u0b8b", + "\u0bab\u0003\u0002\u0002\u0002\u0b8c\u0b8d\u0007\u0115\u0002\u0002\u0b8d", + "\u0b8f\u0007\u016a\u0002\u0002\u0b8e\u0b90\u0005\u0196\u00cc\u0002\u0b8f", + "\u0b8e\u0003\u0002\u0002\u0002\u0b8f\u0b90\u0003\u0002\u0002\u0002\u0b90", + "\u0b91\u0003\u0002\u0002\u0002\u0b91\u0b92\u0005\u0180\u00c1\u0002\u0b92", + "\u0b94\u0007\u016d\u0002\u0002\u0b93\u0b95\u0005\u0198\u00cd\u0002\u0b94", + "\u0b93\u0003\u0002\u0002\u0002\u0b94\u0b95\u0003\u0002\u0002\u0002\u0b95", + "\u0bab\u0003\u0002\u0002\u0002\u0b96\u0b97\u0007\u012f\u0002\u0002\u0b97", + "\u0b99\u0007\u016a\u0002\u0002\u0b98\u0b9a\u0005\u0196\u00cc\u0002\u0b99", + "\u0b98\u0003\u0002\u0002\u0002\u0b99\u0b9a\u0003\u0002\u0002\u0002\u0b9a", + "\u0b9b\u0003\u0002\u0002\u0002\u0b9b\u0b9c\u0005\u0180\u00c1\u0002\u0b9c", + "\u0b9e\u0007\u016d\u0002\u0002\u0b9d\u0b9f\u0005\u0198\u00cd\u0002\u0b9e", + "\u0b9d\u0003\u0002\u0002\u0002\u0b9e\u0b9f\u0003\u0002\u0002\u0002\u0b9f", + "\u0bab\u0003\u0002\u0002\u0002\u0ba0\u0ba1\u0007\u0153\u0002\u0002\u0ba1", + "\u0ba3\u0007\u016a\u0002\u0002\u0ba2\u0ba4\u0005\u0196\u00cc\u0002\u0ba3", + "\u0ba2\u0003\u0002\u0002\u0002\u0ba3\u0ba4\u0003\u0002\u0002\u0002\u0ba4", + "\u0ba5\u0003\u0002\u0002\u0002\u0ba5\u0ba6\u0005\u0180\u00c1\u0002\u0ba6", + "\u0ba8\u0007\u016d\u0002\u0002\u0ba7\u0ba9\u0005\u0198\u00cd\u0002\u0ba8", + "\u0ba7\u0003\u0002\u0002\u0002\u0ba8\u0ba9\u0003\u0002\u0002\u0002\u0ba9", + "\u0bab\u0003\u0002\u0002\u0002\u0baa\u0b12\u0003\u0002\u0002\u0002\u0baa", + "\u0b1c\u0003\u0002\u0002\u0002\u0baa\u0b29\u0003\u0002\u0002\u0002\u0baa", + "\u0b36\u0003\u0002\u0002\u0002\u0baa\u0b3a\u0003\u0002\u0002\u0002\u0baa", + "\u0b3e\u0003\u0002\u0002\u0002\u0baa\u0b44\u0003\u0002\u0002\u0002\u0baa", + "\u0b52\u0003\u0002\u0002\u0002\u0baa\u0b58\u0003\u0002\u0002\u0002\u0baa", + "\u0b66\u0003\u0002\u0002\u0002\u0baa\u0b70\u0003\u0002\u0002\u0002\u0baa", + "\u0b7a\u0003\u0002\u0002\u0002\u0baa\u0b7e\u0003\u0002\u0002\u0002\u0baa", + "\u0b82\u0003\u0002\u0002\u0002\u0baa\u0b8c\u0003\u0002\u0002\u0002\u0baa", + "\u0b96\u0003\u0002\u0002\u0002\u0baa\u0ba0\u0003\u0002\u0002\u0002\u0bab", + "\u0195\u0003\u0002\u0002\u0002\u0bac\u0bad\t&\u0002\u0002\u0bad\u0197", + "\u0003\u0002\u0002\u0002\u0bae\u0baf\u0007\u00cc\u0002\u0002\u0baf\u0bb1", + "\u0007\u016a\u0002\u0002\u0bb0\u0bb2\u0005\u019a\u00ce\u0002\u0bb1\u0bb0", + "\u0003\u0002\u0002\u0002\u0bb1\u0bb2\u0003\u0002\u0002\u0002\u0bb2\u0bb4", + "\u0003\u0002\u0002\u0002\u0bb3\u0bb5\u0005\u0154\u00ab\u0002\u0bb4\u0bb3", + "\u0003\u0002\u0002\u0002\u0bb4\u0bb5\u0003\u0002\u0002\u0002\u0bb5\u0bb6", + "\u0003\u0002\u0002\u0002\u0bb6\u0bb7\u0007\u016d\u0002\u0002\u0bb7\u0199", + "\u0003\u0002\u0002\u0002\u0bb8\u0bb9\u0007\u00d0\u0002\u0002\u0bb9\u0bba", + "\u0007\u001b\u0002\u0002\u0bba\u0bbf\u0005\u0180\u00c1\u0002\u0bbb\u0bbc", + "\u0007\u0157\u0002\u0002\u0bbc\u0bbe\u0005\u0180\u00c1\u0002\u0bbd\u0bbb", + "\u0003\u0002\u0002\u0002\u0bbe\u0bc1\u0003\u0002\u0002\u0002\u0bbf\u0bbd", + "\u0003\u0002\u0002\u0002\u0bbf\u0bc0\u0003\u0002\u0002\u0002\u0bc0\u019b", + "\u0003\u0002\u0002\u0002\u0bc1\u0bbf\u0003\u0002\u0002\u0002\u0bc2\u0c8b", + "\u0007\u013d\u0002\u0002\u0bc3\u0bc4\u0007\"\u0002\u0002\u0bc4\u0bc5", + "\u0007\u016a\u0002\u0002\u0bc5\u0bc6\u0005\u0180\u00c1\u0002\u0bc6\u0bc7", + "\u0007\u000b\u0002\u0002\u0bc7\u0bc9\u0005x=\u0002\u0bc8\u0bca\u0005", + "z>\u0002\u0bc9\u0bc8\u0003\u0002\u0002\u0002\u0bc9\u0bca\u0003\u0002", + "\u0002\u0002\u0bca\u0bcb\u0003\u0002\u0002\u0002\u0bcb\u0bcc\u0007\u016d", + "\u0002\u0002\u0bcc\u0c8b\u0003\u0002\u0002\u0002\u0bcd\u0bce\u00076", + "\u0002\u0002\u0bce\u0bd1\u0007\u016a\u0002\u0002\u0bcf\u0bd2\u0005\u0180", + "\u00c1\u0002\u0bd0\u0bd2\u0007\u0166\u0002\u0002\u0bd1\u0bcf\u0003\u0002", + "\u0002\u0002\u0bd1\u0bd0\u0003\u0002\u0002\u0002\u0bd2\u0bd3\u0003\u0002", + "\u0002\u0002\u0bd3\u0c8b\u0007\u016d\u0002\u0002\u0bd4\u0c8b\u0007\u013f", + "\u0002\u0002\u0bd5\u0bd6\u0007<\u0002\u0002\u0bd6\u0c8b\u0007A\u0002", + "\u0002\u0bd7\u0bdb\u0007\u0140\u0002\u0002\u0bd8\u0bd9\u0007<\u0002", + "\u0002\u0bd9\u0bdb\u0007\u011e\u0002\u0002\u0bda\u0bd7\u0003\u0002\u0002", + "\u0002\u0bda\u0bd8\u0003\u0002\u0002\u0002\u0bdb\u0be0\u0003\u0002\u0002", + "\u0002\u0bdc\u0bdd\u0007\u016a\u0002\u0002\u0bdd\u0bde\u0005\u0180\u00c1", + "\u0002\u0bde\u0bdf\u0007\u016d\u0002\u0002\u0bdf\u0be1\u0003\u0002\u0002", + "\u0002\u0be0\u0bdc\u0003\u0002\u0002\u0002\u0be0\u0be1\u0003\u0002\u0002", + "\u0002\u0be1\u0c8b\u0003\u0002\u0002\u0002\u0be2\u0c8b\u0007\u0141\u0002", + "\u0002\u0be3\u0be4\u0007<\u0002\u0002\u0be4\u0c8b\u0007\u0154\u0002", + "\u0002\u0be5\u0be6\u0007\u0147\u0002\u0002\u0be6\u0be7\u0007\u016a\u0002", + "\u0002\u0be7\u0bf4\u0005\u0180\u00c1\u0002\u0be8\u0be9\u0007\u0157\u0002", + "\u0002\u0be9\u0bf1\u0005\u0180\u00c1\u0002\u0bea\u0beb\u0007\u0157\u0002", + "\u0002\u0beb\u0bec\u0005\u0180\u00c1\u0002\u0bec\u0bed\u0007\u015c\u0002", + "\u0002\u0bed\u0bee\u0005\u0180\u00c1\u0002\u0bee\u0bf0\u0003\u0002\u0002", + "\u0002\u0bef\u0bea\u0003\u0002\u0002\u0002\u0bf0\u0bf3\u0003\u0002\u0002", + "\u0002\u0bf1\u0bef\u0003\u0002\u0002\u0002\u0bf1\u0bf2\u0003\u0002\u0002", + "\u0002\u0bf2\u0bf5\u0003\u0002\u0002\u0002\u0bf3\u0bf1\u0003\u0002\u0002", + "\u0002\u0bf4\u0be8\u0003\u0002\u0002\u0002\u0bf4\u0bf5\u0003\u0002\u0002", + "\u0002\u0bf5\u0bf6\u0003\u0002\u0002\u0002\u0bf6\u0bf7\u0007\u016d\u0002", + "\u0002\u0bf7\u0c8b\u0003\u0002\u0002\u0002\u0bf8\u0bf9\u0007\u0148\u0002", + "\u0002\u0bf9\u0bfa\u0007\u016a\u0002\u0002\u0bfa\u0c07\u0005\u0180\u00c1", + "\u0002\u0bfb\u0bfc\u0007\u0157\u0002\u0002\u0bfc\u0c04\u0005\u0180\u00c1", + "\u0002\u0bfd\u0bfe\u0007\u0157\u0002\u0002\u0bfe\u0bff\u0005\u0180\u00c1", + "\u0002\u0bff\u0c00\u0007\u015c\u0002\u0002\u0c00\u0c01\u0005\u0180\u00c1", + "\u0002\u0c01\u0c03\u0003\u0002\u0002\u0002\u0c02\u0bfd\u0003\u0002\u0002", + "\u0002\u0c03\u0c06\u0003\u0002\u0002\u0002\u0c04\u0c02\u0003\u0002\u0002", + "\u0002\u0c04\u0c05\u0003\u0002\u0002\u0002\u0c05\u0c08\u0003\u0002\u0002", + "\u0002\u0c06\u0c04\u0003\u0002\u0002\u0002\u0c07\u0bfb\u0003\u0002\u0002", + "\u0002\u0c07\u0c08\u0003\u0002\u0002\u0002\u0c08\u0c09\u0003\u0002\u0002", + "\u0002\u0c09\u0c0a\u0007\u016d\u0002\u0002\u0c0a\u0c8b\u0003\u0002\u0002", + "\u0002\u0c0b\u0c0c\u0007\u0149\u0002\u0002\u0c0c\u0c0d\u0007\u016a\u0002", + "\u0002\u0c0d\u0c1a\u0005\u0180\u00c1\u0002\u0c0e\u0c0f\u0007\u0157\u0002", + "\u0002\u0c0f\u0c17\u0005\u0180\u00c1\u0002\u0c10\u0c11\u0007\u0157\u0002", + "\u0002\u0c11\u0c12\u0005\u0180\u00c1\u0002\u0c12\u0c13\u0007\u015c\u0002", + "\u0002\u0c13\u0c14\u0005\u0180\u00c1\u0002\u0c14\u0c16\u0003\u0002\u0002", + "\u0002\u0c15\u0c10\u0003\u0002\u0002\u0002\u0c16\u0c19\u0003\u0002\u0002", + "\u0002\u0c17\u0c15\u0003\u0002\u0002\u0002\u0c17\u0c18\u0003\u0002\u0002", + "\u0002\u0c18\u0c1b\u0003\u0002\u0002\u0002\u0c19\u0c17\u0003\u0002\u0002", + "\u0002\u0c1a\u0c0e\u0003\u0002\u0002\u0002\u0c1a\u0c1b\u0003\u0002\u0002", + "\u0002\u0c1b\u0c1c\u0003\u0002\u0002\u0002\u0c1c\u0c1d\u0007\u016d\u0002", + "\u0002\u0c1d\u0c8b\u0003\u0002\u0002\u0002\u0c1e\u0c1f\u0007\u014a\u0002", + "\u0002\u0c1f\u0c20\u0007\u016a\u0002\u0002\u0c20\u0c2d\u0005\u0180\u00c1", + "\u0002\u0c21\u0c22\u0007\u0157\u0002\u0002\u0c22\u0c2a\u0005\u0180\u00c1", + "\u0002\u0c23\u0c24\u0007\u0157\u0002\u0002\u0c24\u0c25\u0005\u0180\u00c1", + "\u0002\u0c25\u0c26\u0007\u015c\u0002\u0002\u0c26\u0c27\u0005\u0180\u00c1", + "\u0002\u0c27\u0c29\u0003\u0002\u0002\u0002\u0c28\u0c23\u0003\u0002\u0002", + "\u0002\u0c29\u0c2c\u0003\u0002\u0002\u0002\u0c2a\u0c28\u0003\u0002\u0002", + "\u0002\u0c2a\u0c2b\u0003\u0002\u0002\u0002\u0c2b\u0c2e\u0003\u0002\u0002", + "\u0002\u0c2c\u0c2a\u0003\u0002\u0002\u0002\u0c2d\u0c21\u0003\u0002\u0002", + "\u0002\u0c2d\u0c2e\u0003\u0002\u0002\u0002\u0c2e\u0c2f\u0003\u0002\u0002", + "\u0002\u0c2f\u0c30\u0007\u016d\u0002\u0002\u0c30\u0c8b\u0003\u0002\u0002", + "\u0002\u0c31\u0c32\u0007\u014b\u0002\u0002\u0c32\u0c33\u0007\u016a\u0002", + "\u0002\u0c33\u0c40\u0005\u0180\u00c1\u0002\u0c34\u0c35\u0007\u0157\u0002", + "\u0002\u0c35\u0c3d\u0005\u0180\u00c1\u0002\u0c36\u0c37\u0007\u0157\u0002", + "\u0002\u0c37\u0c38\u0005\u0180\u00c1\u0002\u0c38\u0c39\u0007\u015c\u0002", + "\u0002\u0c39\u0c3a\u0005\u0180\u00c1\u0002\u0c3a\u0c3c\u0003\u0002\u0002", + "\u0002\u0c3b\u0c36\u0003\u0002\u0002\u0002\u0c3c\u0c3f\u0003\u0002\u0002", + "\u0002\u0c3d\u0c3b\u0003\u0002\u0002\u0002\u0c3d\u0c3e\u0003\u0002\u0002", + "\u0002\u0c3e\u0c41\u0003\u0002\u0002\u0002\u0c3f\u0c3d\u0003\u0002\u0002", + "\u0002\u0c40\u0c34\u0003\u0002\u0002\u0002\u0c40\u0c41\u0003\u0002\u0002", + "\u0002\u0c41\u0c42\u0003\u0002\u0002\u0002\u0c42\u0c43\u0007\u016d\u0002", + "\u0002\u0c43\u0c8b\u0003\u0002\u0002\u0002\u0c44\u0c45\u0007\u014c\u0002", + "\u0002\u0c45\u0c46\u0007\u016a\u0002\u0002\u0c46\u0c53\u0005\u0180\u00c1", + "\u0002\u0c47\u0c48\u0007\u0157\u0002\u0002\u0c48\u0c50\u0005\u0180\u00c1", + "\u0002\u0c49\u0c4a\u0007\u0157\u0002\u0002\u0c4a\u0c4b\u0005\u0180\u00c1", + "\u0002\u0c4b\u0c4c\u0007\u015c\u0002\u0002\u0c4c\u0c4d\u0005\u0180\u00c1", + "\u0002\u0c4d\u0c4f\u0003\u0002\u0002\u0002\u0c4e\u0c49\u0003\u0002\u0002", + "\u0002\u0c4f\u0c52\u0003\u0002\u0002\u0002\u0c50\u0c4e\u0003\u0002\u0002", + "\u0002\u0c50\u0c51\u0003\u0002\u0002\u0002\u0c51\u0c54\u0003\u0002\u0002", + "\u0002\u0c52\u0c50\u0003\u0002\u0002\u0002\u0c53\u0c47\u0003\u0002\u0002", + "\u0002\u0c53\u0c54\u0003\u0002\u0002\u0002\u0c54\u0c55\u0003\u0002\u0002", + "\u0002\u0c55\u0c56\u0007\u016d\u0002\u0002\u0c56\u0c8b\u0003\u0002\u0002", + "\u0002\u0c57\u0c58\u0007\u014d\u0002\u0002\u0c58\u0c59\u0007\u016a\u0002", + "\u0002\u0c59\u0c61\u0005\u0180\u00c1\u0002\u0c5a\u0c5b\u0007\u0157\u0002", + "\u0002\u0c5b\u0c5c\u0005\u0180\u00c1\u0002\u0c5c\u0c5d\u0007\u015c\u0002", + "\u0002\u0c5d\u0c5e\u0005\u0180\u00c1\u0002\u0c5e\u0c60\u0003\u0002\u0002", + "\u0002\u0c5f\u0c5a\u0003\u0002\u0002\u0002\u0c60\u0c63\u0003\u0002\u0002", + "\u0002\u0c61\u0c5f\u0003\u0002\u0002\u0002\u0c61\u0c62\u0003\u0002\u0002", + "\u0002\u0c62\u0c64\u0003\u0002\u0002\u0002\u0c63\u0c61\u0003\u0002\u0002", + "\u0002\u0c64\u0c65\u0007\u016d\u0002\u0002\u0c65\u0c8b\u0003\u0002\u0002", + "\u0002\u0c66\u0c67\u0007\u014e\u0002\u0002\u0c67\u0c68\u0007\u016a\u0002", + "\u0002\u0c68\u0c6e\u0005\u0180\u00c1\u0002\u0c69\u0c6a\u0007\u0157\u0002", + "\u0002\u0c6a\u0c6b\u0005\u0180\u00c1\u0002\u0c6b\u0c6c\u0007\u015c\u0002", + "\u0002\u0c6c\u0c6d\u0005\u0180\u00c1\u0002\u0c6d\u0c6f\u0003\u0002\u0002", + "\u0002\u0c6e\u0c69\u0003\u0002\u0002\u0002\u0c6f\u0c70\u0003\u0002\u0002", + "\u0002\u0c70\u0c6e\u0003\u0002\u0002\u0002\u0c70\u0c71\u0003\u0002\u0002", + "\u0002\u0c71\u0c74\u0003\u0002\u0002\u0002\u0c72\u0c73\u0007\u0157\u0002", + "\u0002\u0c73\u0c75\u0005\u0180\u00c1\u0002\u0c74\u0c72\u0003\u0002\u0002", + "\u0002\u0c74\u0c75\u0003\u0002\u0002\u0002\u0c75\u0c76\u0003\u0002\u0002", + "\u0002\u0c76\u0c77\u0007\u016d\u0002\u0002\u0c77\u0c8b\u0003\u0002\u0002", + "\u0002\u0c78\u0c79\u0007\u00f5\u0002\u0002\u0c79\u0c7a\u0007\u016a\u0002", + "\u0002\u0c7a\u0c7b\u0005\u0180\u00c1\u0002\u0c7b\u0c7c\u0007\u016d\u0002", + "\u0002\u0c7c\u0c8b\u0003\u0002\u0002\u0002\u0c7d\u0c7e\u0007\u0114\u0002", + "\u0002\u0c7e\u0c7f\u0007\u016a\u0002\u0002\u0c7f\u0c80\u0005\u0180\u00c1", + "\u0002\u0c80\u0c81\u0007t\u0002\u0002\u0c81\u0c84\u0005\u0180\u00c1", + "\u0002\u0c82\u0c83\u0007p\u0002\u0002\u0c83\u0c85\u0005\u0180\u00c1", + "\u0002\u0c84\u0c82\u0003\u0002\u0002\u0002\u0c84\u0c85\u0003\u0002\u0002", + "\u0002\u0c85\u0c86\u0003\u0002\u0002\u0002\u0c86\u0c87\u0007\u016d\u0002", + "\u0002\u0c87\u0c8b\u0003\u0002\u0002\u0002\u0c88\u0c8b\u0007\u0152\u0002", + "\u0002\u0c89\u0c8b\u0007\u0154\u0002\u0002\u0c8a\u0bc2\u0003\u0002\u0002", + "\u0002\u0c8a\u0bc3\u0003\u0002\u0002\u0002\u0c8a\u0bcd\u0003\u0002\u0002", + "\u0002\u0c8a\u0bd4\u0003\u0002\u0002\u0002\u0c8a\u0bd5\u0003\u0002\u0002", + "\u0002\u0c8a\u0bda\u0003\u0002\u0002\u0002\u0c8a\u0be2\u0003\u0002\u0002", + "\u0002\u0c8a\u0be3\u0003\u0002\u0002\u0002\u0c8a\u0be5\u0003\u0002\u0002", + "\u0002\u0c8a\u0bf8\u0003\u0002\u0002\u0002\u0c8a\u0c0b\u0003\u0002\u0002", + "\u0002\u0c8a\u0c1e\u0003\u0002\u0002\u0002\u0c8a\u0c31\u0003\u0002\u0002", + "\u0002\u0c8a\u0c44\u0003\u0002\u0002\u0002\u0c8a\u0c57\u0003\u0002\u0002", + "\u0002\u0c8a\u0c66\u0003\u0002\u0002\u0002\u0c8a\u0c78\u0003\u0002\u0002", + "\u0002\u0c8a\u0c7d\u0003\u0002\u0002\u0002\u0c8a\u0c88\u0003\u0002\u0002", + "\u0002\u0c8a\u0c89\u0003\u0002\u0002\u0002\u0c8b\u019d\u0003\u0002\u0002", + "\u0002\u0c8c\u0c8d\u0005\u01b8\u00dd\u0002\u0c8d\u0c8f\u0007\u016a\u0002", + "\u0002\u0c8e\u0c90\u0005\u01a0\u00d1\u0002\u0c8f\u0c8e\u0003\u0002\u0002", + "\u0002\u0c8f\u0c90\u0003\u0002\u0002\u0002\u0c90\u0c91\u0003\u0002\u0002", + "\u0002\u0c91\u0c92\u0007\u016d\u0002\u0002\u0c92\u019f\u0003\u0002\u0002", + "\u0002\u0c93\u0c98\u0005\u01a2\u00d2\u0002\u0c94\u0c95\u0007\u0157\u0002", + "\u0002\u0c95\u0c97\u0005\u01a2\u00d2\u0002\u0c96\u0c94\u0003\u0002\u0002", + "\u0002\u0c97\u0c9a\u0003\u0002\u0002\u0002\u0c98\u0c96\u0003\u0002\u0002", + "\u0002\u0c98\u0c99\u0003\u0002\u0002\u0002\u0c99\u01a1\u0003\u0002\u0002", + "\u0002\u0c9a\u0c98\u0003\u0002\u0002\u0002\u0c9b\u0ca1\u0006\u00d2\u000e", + "\u0002\u0c9c\u0c9d\u0005\u01b8\u00dd\u0002\u0c9d\u0c9f\u0007\u015c\u0002", + "\u0002\u0c9e\u0ca0\u0007\u0162\u0002\u0002\u0c9f\u0c9e\u0003\u0002\u0002", + "\u0002\u0c9f\u0ca0\u0003\u0002\u0002\u0002\u0ca0\u0ca2\u0003\u0002\u0002", + "\u0002\u0ca1\u0c9c\u0003\u0002\u0002\u0002\u0ca1\u0ca2\u0003\u0002\u0002", + "\u0002\u0ca2\u0ca3\u0003\u0002\u0002\u0002\u0ca3\u0ca4\u0005\u0180\u00c1", + "\u0002\u0ca4\u01a3\u0003\u0002\u0002\u0002\u0ca5\u0ca8\u0005\u011a\u008e", + "\u0002\u0ca6\u0ca8\u0005\u0180\u00c1\u0002\u0ca7\u0ca5\u0003\u0002\u0002", + "\u0002\u0ca7\u0ca6\u0003\u0002\u0002\u0002\u0ca8\u01a5\u0003\u0002\u0002", + "\u0002\u0ca9\u0cac\u0005\u01b2\u00da\u0002\u0caa\u0cac\u0005\u0180\u00c1", + "\u0002\u0cab\u0ca9\u0003\u0002\u0002\u0002\u0cab\u0caa\u0003\u0002\u0002", + "\u0002\u0cac\u01a7\u0003\u0002\u0002\u0002\u0cad\u0cb1\u0007\u0080\u0002", + "\u0002\u0cae\u0cb0\u0005\u01aa\u00d6\u0002\u0caf\u0cae\u0003\u0002\u0002", + "\u0002\u0cb0\u0cb3\u0003\u0002\u0002\u0002\u0cb1\u0caf\u0003\u0002\u0002", + "\u0002\u0cb1\u0cb2\u0003\u0002\u0002\u0002\u0cb2\u01a9\u0003\u0002\u0002", + "\u0002\u0cb3\u0cb1\u0003\u0002\u0002\u0002\u0cb4\u0cb5\u0007\u0170\u0002", + "\u0002\u0cb5\u0cb6\u0005\u01b8\u00dd\u0002\u0cb6\u0cb7\u0005\u0180\u00c1", + "\u0002\u0cb7\u0cc1\u0003\u0002\u0002\u0002\u0cb8\u0cb9\u0007\u0170\u0002", + "\u0002\u0cb9\u0cba\u0005\u01b8\u00dd\u0002\u0cba\u0cbb\u0007\u0171\u0002", + "\u0002\u0cbb\u0cbc\u0007\u015c\u0002\u0002\u0cbc\u0cbd\u0005\u0180\u00c1", + "\u0002\u0cbd\u0cc1\u0003\u0002\u0002\u0002\u0cbe\u0cbf\u0007\u0170\u0002", + "\u0002\u0cbf\u0cc1\u0005\u01b8\u00dd\u0002\u0cc0\u0cb4\u0003\u0002\u0002", + "\u0002\u0cc0\u0cb8\u0003\u0002\u0002\u0002\u0cc0\u0cbe\u0003\u0002\u0002", + "\u0002\u0cc1\u01ab\u0003\u0002\u0002\u0002\u0cc2\u0cc3\u0007\u015f\u0002", + "\u0002\u0cc3\u0cc4\u0005\u01ae\u00d8\u0002\u0cc4\u0cc5\u0007\u016f\u0002", + "\u0002\u0cc5\u0cc8\u0003\u0002\u0002\u0002\u0cc6\u0cc8\u0005\u01b0\u00d9", + "\u0002\u0cc7\u0cc2\u0003\u0002\u0002\u0002\u0cc7\u0cc6\u0003\u0002\u0002", + "\u0002\u0cc8\u01ad\u0003\u0002\u0002\u0002\u0cc9\u0ccb\u000b\u0002\u0002", + "\u0002\u0cca\u0cc9\u0003\u0002\u0002\u0002\u0ccb\u0cce\u0003\u0002\u0002", + "\u0002\u0ccc\u0ccd\u0003\u0002\u0002\u0002\u0ccc\u0cca\u0003\u0002\u0002", + "\u0002\u0ccd\u01af\u0003\u0002\u0002\u0002\u0cce\u0ccc\u0003\u0002\u0002", + "\u0002\u0ccf\u0cd0\u0007\u0081\u0002\u0002\u0cd0\u0cd1\u0005\u0180\u00c1", + "\u0002\u0cd1\u01b1\u0003\u0002\u0002\u0002\u0cd2\u0ce1\u0007\u0179\u0002", + "\u0002\u0cd3\u0cd7\u0007\u0159\u0002\u0002\u0cd4\u0cd5\u0007\u015a\u0002", + "\u0002\u0cd5\u0cd7\u0007\u0159\u0002\u0002\u0cd6\u0cd3\u0003\u0002\u0002", + "\u0002\u0cd6\u0cd4\u0003\u0002\u0002\u0002\u0cd6\u0cd7\u0003\u0002\u0002", + "\u0002\u0cd7\u0cd8\u0003\u0002\u0002\u0002\u0cd8\u0cdd\u0005\u01b8\u00dd", + "\u0002\u0cd9\u0cda\u0007\u0159\u0002\u0002\u0cda\u0cdc\u0005\u01b8\u00dd", + "\u0002\u0cdb\u0cd9\u0003\u0002\u0002\u0002\u0cdc\u0cdf\u0003\u0002\u0002", + "\u0002\u0cdd\u0cdb\u0003\u0002\u0002\u0002\u0cdd\u0cde\u0003\u0002\u0002", + "\u0002\u0cde\u0ce1\u0003\u0002\u0002\u0002\u0cdf\u0cdd\u0003\u0002\u0002", + "\u0002\u0ce0\u0cd2\u0003\u0002\u0002\u0002\u0ce0\u0cd6\u0003\u0002\u0002", + "\u0002\u0ce1\u01b3\u0003\u0002\u0002\u0002\u0ce2\u0ce3\u0007A\u0002", + "\u0002\u0ce3\u0ce4\u0005\u01ba\u00de\u0002\u0ce4\u01b5\u0003\u0002\u0002", + "\u0002\u0ce5\u0ce6\u0007\u011e\u0002\u0002\u0ce6\u0ce7\u0005\u01ba\u00de", + "\u0002\u0ce7\u01b7\u0003\u0002\u0002\u0002\u0ce8\u0ceb\u0007\u0171\u0002", + "\u0002\u0ce9\u0ceb\u0005\u01c4\u00e3\u0002\u0cea\u0ce8\u0003\u0002\u0002", + "\u0002\u0cea\u0ce9\u0003\u0002\u0002\u0002\u0ceb\u0cf3\u0003\u0002\u0002", + "\u0002\u0cec\u0cef\u0007\u015a\u0002\u0002\u0ced\u0cf0\u0007\u0171\u0002", + "\u0002\u0cee\u0cf0\u0005\u01c4\u00e3\u0002\u0cef\u0ced\u0003\u0002\u0002", + "\u0002\u0cef\u0cee\u0003\u0002\u0002\u0002\u0cf0\u0cf2\u0003\u0002\u0002", + "\u0002\u0cf1\u0cec\u0003\u0002\u0002\u0002\u0cf2\u0cf5\u0003\u0002\u0002", + "\u0002\u0cf3\u0cf1\u0003\u0002\u0002\u0002\u0cf3\u0cf4\u0003\u0002\u0002", + "\u0002\u0cf4\u01b9\u0003\u0002\u0002\u0002\u0cf5\u0cf3\u0003\u0002\u0002", + "\u0002\u0cf6\u0cf9\u0007\u0172\u0002\u0002\u0cf7\u0cf9\u0007\u0173\u0002", + "\u0002\u0cf8\u0cf6\u0003\u0002\u0002\u0002\u0cf8\u0cf7\u0003\u0002\u0002", + "\u0002\u0cf9\u01bb\u0003\u0002\u0002\u0002\u0cfa\u0cfc\t0\u0002\u0002", + "\u0cfb\u0cfa\u0003\u0002\u0002\u0002\u0cfb\u0cfc\u0003\u0002\u0002\u0002", + "\u0cfc\u0cfd\u0003\u0002\u0002\u0002\u0cfd\u0cfe\u0007\u0174\u0002\u0002", + "\u0cfe\u01bd\u0003\u0002\u0002\u0002\u0cff\u0d01\t0\u0002\u0002\u0d00", + "\u0cff\u0003\u0002\u0002\u0002\u0d00\u0d01\u0003\u0002\u0002\u0002\u0d01", + "\u0d02\u0003\u0002\u0002\u0002\u0d02\u0d03\u0007\u0175\u0002\u0002\u0d03", + "\u01bf\u0003\u0002\u0002\u0002\u0d04\u0d05\t1\u0002\u0002\u0d05\u01c1", + "\u0003\u0002\u0002\u0002\u0d06\u0d07\u0007\u00c0\u0002\u0002\u0d07\u01c3", + "\u0003\u0002\u0002\u0002\u0d08\u0d09\t2\u0002\u0002\u0d09\u01c5\u0003", + "\u0002\u0002\u0002\u01a9\u01cb\u01ce\u01d2\u01d5\u01da\u01e1\u01e7\u01e9", + "\u01f2\u01f5\u01f7\u0236\u023e\u024e\u0255\u0258\u025d\u0261\u026a\u026f", + "\u0277\u027c\u0285\u0291\u0296\u0299\u02a7\u02ae\u02b7\u02c8\u02cc\u02d4", + "\u02df\u02e9\u02f1\u02f8\u02fc\u0300\u0305\u0309\u030e\u0312\u0316\u0320", + "\u0324\u0329\u032e\u0332\u033f\u0344\u034a\u0353\u0357\u035f\u0362\u0367", + "\u036c\u0373\u037a\u037d\u0384\u038a\u038f\u0395\u039a\u039d\u03a3\u03b1", + "\u03bb\u03c1\u03c6\u03cb\u03d0\u03d4\u03d9\u03dc\u03e6\u03f2\u03f9\u03fc", + "\u0408\u040d\u0412\u0415\u041c\u0428\u0435\u0437\u043c\u043f\u044e\u0454", + "\u045f\u0462\u046c\u0473\u0479\u0481\u048b\u049f\u04a5\u04a9\u04ae\u04b2", + "\u04b7\u04ba\u04bf\u04c2\u04ce\u04d5\u04da\u04df\u04e3\u04e8\u04eb\u04f5", + "\u0501\u0508\u0510\u051e\u053d\u053f\u0544\u0548\u054d\u0554\u0557\u055a", + "\u055f\u0563\u0565\u056c\u0572\u0579\u057f\u0582\u0587\u058b\u058e\u0595", + "\u059b\u059e\u05a8\u05b1\u05b8\u05bf\u05c1\u05c7\u05ca\u05d5\u05de\u05e4", + "\u05ea\u05ed\u05f2\u05f5\u05f8\u05fb\u05fe\u0604\u060e\u0619\u061c\u0623", + "\u0628\u062d\u0631\u0639\u063d\u0642\u0646\u0648\u064d\u0655\u065a\u0660", + "\u0667\u066a\u0671\u0679\u0681\u0684\u0687\u068c\u0695\u0699\u06a3\u06b6", + "\u06bd\u06bf\u06c3\u06c7\u06cf\u06da\u06e3\u06eb\u06f3\u06f7\u06ff\u0711", + "\u071f\u0726\u072a\u0731\u0733\u0737\u0740\u0748\u0751\u0761\u0767\u076b", + "\u0775\u077d\u0786\u078a\u0790\u0795\u0799\u07a3\u07a9\u07ad\u07b9\u07c0", + "\u07d0\u07d7\u07e1\u07e4\u07e8\u07ef\u07f6\u07f8\u07fc\u0800\u0805\u0808", + "\u080c\u080f\u081a\u081d\u0828\u082e\u0832\u0834\u0838\u0841\u0848\u084c", + "\u0850\u0857\u085b\u0863\u0869\u086d\u0878\u087f\u088c\u0894\u0898\u08a2", + "\u08a7\u08b4\u08bf\u08c7\u08cb\u08cf\u08d3\u08d5\u08da\u08dd\u08e0\u08e3", + "\u08e7\u08ea\u08ed\u08f0\u08f3\u08fa\u0905\u0909\u090c\u0910\u0917\u091b", + "\u0925\u092d\u0933\u0937\u093d\u0946\u0949\u094e\u0951\u095b\u0960\u0969", + "\u096e\u0972\u097b\u097f\u098d\u099a\u099f\u09a3\u09a9\u09b4\u09b6\u09bd", + "\u09c0\u09c7\u09cc\u09d2\u09d5\u09d8\u09e7\u09ee\u09f1\u09f4\u09f8\u09fd", + "\u0a03\u0a07\u0a12\u0a16\u0a19\u0a1d\u0a21\u0a25\u0a29\u0a2f\u0a35\u0a3c", + "\u0a44\u0a4a\u0a4f\u0a5a\u0a63\u0a67\u0a70\u0a74\u0a7e\u0a83\u0a99\u0a9c", + "\u0aaf\u0abf\u0ac1\u0acc\u0adb\u0ae7\u0aeb\u0af6\u0afa\u0b06\u0b0a\u0b15", + "\u0b1a\u0b1f\u0b23\u0b27\u0b2c\u0b30\u0b34\u0b4b\u0b4d\u0b5f\u0b61\u0b69", + "\u0b6e\u0b73\u0b78\u0b85\u0b8a\u0b8f\u0b94\u0b99\u0b9e\u0ba3\u0ba8\u0baa", + "\u0bb1\u0bb4\u0bbf\u0bc9\u0bd1\u0bda\u0be0\u0bf1\u0bf4\u0c04\u0c07\u0c17", + "\u0c1a\u0c2a\u0c2d\u0c3d\u0c40\u0c50\u0c53\u0c61\u0c70\u0c74\u0c84\u0c8a", + "\u0c8f\u0c98\u0c9f\u0ca1\u0ca7\u0cab\u0cb1\u0cc0\u0cc7\u0ccc\u0cd6\u0cdd", + "\u0ce0\u0cea\u0cef\u0cf3\u0cf8\u0cfb\u0d00"].join(""); var atn = new antlr4.atn.ATNDeserializer().deserialize(serializedATN); @@ -2428,92 +2428,133 @@ var decisionsToDFA = atn.decisionToState.map( function(ds, index) { return new a var sharedContextCache = new antlr4.PredictionContextCache(); -var literalNames = [ null, "'@'", "'#'", "'/'", "'%'", "'.'", "'*'", "'!'", - "';'", "'-'", "'+'" ]; +var literalNames = [ null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, "'+'", "':'", "','", + "'||'", "'/'", "'.'", "'..'", "'='", "'=='", "'#'", + "'!'", "'<>'", "'!='", "'>'", "'>='", "'<'", "'<='", + "'*'", "'%'", "'@'", "'{'", "'('", "'['", "'}'", "')'", + "']'", "';'", "'-'" ]; -var symbolicNames = [ null, null, null, null, null, null, null, null, null, - null, null, "T_GO", "T_BEGIN", "T_SEMICOLON", "T_END", - "T_EXCEPTION", "T_WHEN", "L_ID", "T_THEN", "T_NULL", - "T_SET", "T_COMMA", "T_COLON", "T_EQUAL", "T_OPEN_P", - "T_CLOSE_P", "T_ALLOCATE", "T_CURSOR", "T_FOR", "T_RESULT", - "T_PROCEDURE", "T_ASSOCIATE", "T_LOCATOR", "T_LOCATORS", - "T_WITH", "T_TRANSACTION", "T_BREAK", "T_CALL", "T_DECLARE", - "T_AS", "T_CONSTANT", "T_CONDITION", "T_IS", "T_RETURN", - "T_ONLY", "T_TO", "T_CALLER", "T_CLIENT", "T_WITHOUT", - "T_CONTINUE", "T_EXIT", "T_HANDLER", "T_SQLEXCEPTION", - "T_SQLWARNING", "T_NOT", "T_FOUND", "T_GLOBAL", "T_TEMPORARY", - "T_TABLE", "T_CREATE", "T_IF", "T_EXISTS", "T_LOCAL", - "T_MULTISET", "T_VOLATILE", "T_LIKE", "T_CONSTRAINT", - "T_PRIMARY", "T_KEY", "T_UNIQUE", "T_REFERENCES", - "T_IDENTITY", "L_INT", "T_AUTO_INCREMENT", "T_ENABLE", - "T_CLUSTERED", "T_ASC", "T_DESC", "T_FOREIGN", "T_ON", - "T_UPDATE", "T_DELETE", "T_NO", "T_ACTION", "T_RESTRICT", - "T_DEFAULT", "T_CASCADE", "T_LOG", "T_FALLBACK", "T_COMMIT", - "T_PRESERVE", "T_ROWS", "T_SEGMENT", "T_CREATION", - "T_IMMEDIATE", "T_DEFERRED", "T_PCTFREE", "T_PCTUSED", - "T_INITRANS", "T_MAXTRANS", "T_NOCOMPRESS", "T_LOGGING", - "T_NOLOGGING", "T_STORAGE", "T_TABLESPACE", "T_INDEX", - "T_IN", "T_REPLACE", "T_DISTRIBUTE", "T_BY", "T_HASH", - "T_LOGGED", "T_COMPRESS", "T_YES", "T_DEFINITION", - "T_DROP", "T_DATA", "T_STORED", "T_ROW", "T_FORMAT", - "T_DELIMITED", "T_FIELDS", "T_TERMINATED", "T_ESCAPED", - "T_COLLECTION", "T_ITEMS", "T_MAP", "T_KEYS", "T_LINES", - "T_DEFINED", "T_TEXTIMAGE_ON", "T_COMMENT", "T_CHARACTER", - "T_CHARSET", "T_ENGINE", "T_ALTER", "T_ADD2", "T_CHAR", - "T_BIGINT", "T_BINARY_DOUBLE", "T_BINARY_FLOAT", "T_BINARY_INTEGER", - "T_BIT", "T_DATE", "T_DATETIME", "T_DEC", "T_DECIMAL", - "T_DOUBLE", "T_PRECISION", "T_FLOAT", "T_INT", "T_INT2", - "T_INT4", "T_INT8", "T_INTEGER", "T_NCHAR", "T_NVARCHAR", - "T_NUMBER", "T_NUMERIC", "T_PLS_INTEGER", "T_REAL", - "T_RESULT_SET_LOCATOR", "T_VARYING", "T_SIMPLE_FLOAT", - "T_SIMPLE_DOUBLE", "T_SIMPLE_INTEGER", "T_SMALLINT", - "T_SMALLDATETIME", "T_STRING", "T_SYS_REFCURSOR", - "T_TIMESTAMP", "T_TINYINT", "T_VARCHAR", "T_VARCHAR2", - "T_XML", "T_TYPE", "T_ROWTYPE", "T_MAX", "T_BYTE", - "T_CASESPECIFIC", "T_CS", "T_DATABASE", "T_SCHEMA", - "T_LOCATION", "T_OR", "T_FUNCTION", "T_RETURNS", "T_PACKAGE", - "T_PROC", "T_BODY", "T_OUT", "T_INOUT", "T_LANGUAGE", - "T_SQL", "T_SECURITY", "T_CREATOR", "T_DEFINER", "T_INVOKER", - "T_OWNER", "T_DYNAMIC", "T_SETS", "T_EXEC", "T_EXECUTE", - "T_INTO", "T_ELSE", "T_ELSIF", "T_ELSEIF", "T_INCLUDE", - "T_INSERT", "T_OVERWRITE", "T_VALUES", "T_DIRECTORY", - "T_GET", "T_DIAGNOSTICS", "T_MESSAGE_TEXT", "T_ROW_COUNT", - "T_GRANT", "T_ROLE", "T_LEAVE", "T_OBJECT", "T_AT", - "T_OPEN", "T_FETCH", "T_FROM", "T_COLLECT", "T_STATISTICS", - "T_STATS", "T_COLUMN", "T_CLOSE", "T_CMP", "T_SUM", - "T_COPY", "T_HDFS", "T_BATCHSIZE", "T_DELIMITER", - "T_SQLINSERT", "T_IGNORE", "T_WORK", "T_PRINT", "T_QUIT", - "T_RAISE", "T_RESIGNAL", "T_SQLSTATE", "T_VALUE", - "T_ROLLBACK", "T_CURRENT", "T_CURRENT_SCHEMA", "T_ANSI_NULLS", - "T_ANSI_PADDING", "T_NOCOUNT", "T_QUOTED_IDENTIFIER", - "T_XACT_ABORT", "T_OFF", "T_QUERY_BAND", "T_NONE", - "T_SESSION", "T_SIGNAL", "T_SUMMARY", "T_TOP", "T_LIMIT", - "T_TRUNCATE", "T_USE", "T_WHILE", "T_DO", "T_LOOP", - "T_REVERSE", "T_DOT2", "T_STEP", "L_LABEL", "T_LESS", - "T_GREATER", "T_USING", "T_UNION", "T_ALL", "T_EXCEPT", - "T_INTERSECT", "T_SELECT", "T_SEL", "T_DISTINCT", - "T_TITLE", "L_S_STRING", "T_INNER", "T_JOIN", "T_LEFT", - "T_RIGHT", "T_FULL", "T_OUTER", "T_WHERE", "T_GROUP", - "T_HAVING", "T_QUALIFY", "T_ORDER", "T_RR", "T_RS", - "T_UR", "T_AND", "T_KEEP", "T_EXCLUSIVE", "T_SHARE", - "T_LOCKS", "T_MERGE", "T_MATCHED", "T_DESCRIBE", "T_BETWEEN", - "T_EQUAL2", "T_NOTEQUAL", "T_NOTEQUAL2", "T_LESSEQUAL", - "T_GREATEREQUAL", "T_RLIKE", "T_REGEXP", "T_MUL", - "T_DIV", "T_ADD", "T_SUB", "T_INTERVAL", "T_DAY", - "T_DAYS", "T_MICROSECOND", "T_MICROSECONDS", "T_SECOND", - "T_SECONDS", "T_PIPE", "T_CONCAT", "T_CASE", "T_ISOPEN", - "T_NOTFOUND", "T_AVG", "T_COUNT", "T_COUNT_BIG", "T_CUME_DIST", - "T_DENSE_RANK", "T_FIRST_VALUE", "T_LAG", "T_LAST_VALUE", - "T_LEAD", "T_MIN", "T_RANK", "T_ROW_NUMBER", "T_STDEV", - "T_VAR", "T_VARIANCE", "T_OVER", "T_PARTITION", "T_ACTIVITY_COUNT", - "T_CAST", "T_CURRENT_DATE", "T_CURRENT_TIMESTAMP", - "T_CURRENT_USER", "T_USER", "T_MAX_PART_STRING", "T_MIN_PART_STRING", - "T_MAX_PART_INT", "T_MIN_PART_INT", "T_MAX_PART_DATE", - "T_MIN_PART_DATE", "T_PART_COUNT", "T_PART_LOC", "T_TRIM", - "T_SUBSTRING", "T_SYSDATE", "T_HIVE", "T_HOST", "L_FILE", - "L_D_STRING", "L_DEC", "T_TRUE", "T_FALSE", "T_DIR", - "T_FILE", "T_FILES", "T_NEW", "T_PWD", "T_SESSIONS", - "T_SUBDIR" ]; +var symbolicNames = [ null, "T_ACTION", "T_ADD2", "T_ALL", "T_ALLOCATE", + "T_ALTER", "T_AND", "T_ANSI_NULLS", "T_ANSI_PADDING", + "T_AS", "T_ASC", "T_ASSOCIATE", "T_AT", "T_AUTO_INCREMENT", + "T_AVG", "T_BATCHSIZE", "T_BEGIN", "T_BETWEEN", "T_BIGINT", + "T_BINARY_DOUBLE", "T_BINARY_FLOAT", "T_BINARY_INTEGER", + "T_BIT", "T_BODY", "T_BREAK", "T_BY", "T_BYTE", "T_CALL", + "T_CALLER", "T_CASCADE", "T_CASE", "T_CASESPECIFIC", + "T_CAST", "T_CHAR", "T_CHARACTER", "T_CHARSET", "T_CLIENT", + "T_CLOSE", "T_CLUSTERED", "T_CMP", "T_COLLECT", "T_COLLECTION", + "T_COLUMN", "T_COMMENT", "T_CONSTANT", "T_COMMIT", + "T_COMPRESS", "T_CONCAT", "T_CONDITION", "T_CONSTRAINT", + "T_CONTINUE", "T_COPY", "T_COUNT", "T_COUNT_BIG", + "T_CREATE", "T_CREATION", "T_CREATOR", "T_CS", "T_CURRENT", + "T_CURRENT_SCHEMA", "T_CURSOR", "T_DATABASE", "T_DATA", + "T_DATE", "T_DATETIME", "T_DAY", "T_DAYS", "T_DEC", + "T_DECIMAL", "T_DECLARE", "T_DEFAULT", "T_DEFERRED", + "T_DEFINED", "T_DEFINER", "T_DEFINITION", "T_DELETE", + "T_DELIMITED", "T_DELIMITER", "T_DESC", "T_DESCRIBE", + "T_DIAGNOSTICS", "T_DIR", "T_DIRECTORY", "T_DISTINCT", + "T_DISTRIBUTE", "T_DO", "T_DOUBLE", "T_DROP", "T_DYNAMIC", + "T_ELSE", "T_ELSEIF", "T_ELSIF", "T_ENABLE", "T_END", + "T_ENGINE", "T_ESCAPED", "T_EXCEPT", "T_EXEC", "T_EXECUTE", + "T_EXCEPTION", "T_EXCLUSIVE", "T_EXISTS", "T_EXIT", + "T_FALLBACK", "T_FALSE", "T_FETCH", "T_FIELDS", "T_FILE", + "T_FILES", "T_FLOAT", "T_FOR", "T_FOREIGN", "T_FORMAT", + "T_FOUND", "T_FROM", "T_FULL", "T_FUNCTION", "T_GET", + "T_GLOBAL", "T_GO", "T_GRANT", "T_GROUP", "T_HANDLER", + "T_HASH", "T_HAVING", "T_HDFS", "T_HIVE", "T_HOST", + "T_IDENTITY", "T_IF", "T_IGNORE", "T_IMMEDIATE", "T_IN", + "T_INCLUDE", "T_INDEX", "T_INITRANS", "T_INNER", "T_INOUT", + "T_INSERT", "T_INT", "T_INT2", "T_INT4", "T_INT8", + "T_INTEGER", "T_INTERSECT", "T_INTERVAL", "T_INTO", + "T_INVOKER", "T_IS", "T_ISOPEN", "T_ITEMS", "T_JOIN", + "T_KEEP", "T_KEY", "T_KEYS", "T_LANGUAGE", "T_LEAVE", + "T_LEFT", "T_LIKE", "T_LIMIT", "T_LINES", "T_LOCAL", + "T_LOCATION", "T_LOCATOR", "T_LOCATORS", "T_LOCKS", + "T_LOG", "T_LOGGED", "T_LOGGING", "T_LOOP", "T_MAP", + "T_MATCHED", "T_MAX", "T_MAXTRANS", "T_MERGE", "T_MESSAGE_TEXT", + "T_MICROSECOND", "T_MICROSECONDS", "T_MIN", "T_MULTISET", + "T_NCHAR", "T_NEW", "T_NVARCHAR", "T_NO", "T_NOCOUNT", + "T_NOCOMPRESS", "T_NOLOGGING", "T_NONE", "T_NOT", + "T_NOTFOUND", "T_NULL", "T_NUMERIC", "T_NUMBER", "T_OBJECT", + "T_OFF", "T_ON", "T_ONLY", "T_OPEN", "T_OR", "T_ORDER", + "T_OUT", "T_OUTER", "T_OVER", "T_OVERWRITE", "T_OWNER", + "T_PACKAGE", "T_PARTITION", "T_PCTFREE", "T_PCTUSED", + "T_PLS_INTEGER", "T_PRECISION", "T_PRESERVE", "T_PRIMARY", + "T_PRINT", "T_PROC", "T_PROCEDURE", "T_QUALIFY", "T_QUERY_BAND", + "T_QUIT", "T_QUOTED_IDENTIFIER", "T_RAISE", "T_REAL", + "T_REFERENCES", "T_REGEXP", "T_REPLACE", "T_RESIGNAL", + "T_RESTRICT", "T_RESULT", "T_RESULT_SET_LOCATOR", + "T_RETURN", "T_RETURNS", "T_REVERSE", "T_RIGHT", "T_RLIKE", + "T_ROLE", "T_ROLLBACK", "T_ROW", "T_ROWS", "T_ROWTYPE", + "T_ROW_COUNT", "T_RR", "T_RS", "T_PWD", "T_TRIM", + "T_SCHEMA", "T_SECOND", "T_SECONDS", "T_SECURITY", + "T_SEGMENT", "T_SEL", "T_SELECT", "T_SET", "T_SESSION", + "T_SESSIONS", "T_SETS", "T_SHARE", "T_SIGNAL", "T_SIMPLE_DOUBLE", + "T_SIMPLE_FLOAT", "T_SIMPLE_INTEGER", "T_SMALLDATETIME", + "T_SMALLINT", "T_SQL", "T_SQLEXCEPTION", "T_SQLINSERT", + "T_SQLSTATE", "T_SQLWARNING", "T_STATS", "T_STATISTICS", + "T_STEP", "T_STORAGE", "T_STORED", "T_STRING", "T_SUBDIR", + "T_SUBSTRING", "T_SUM", "T_SUMMARY", "T_SYS_REFCURSOR", + "T_TABLE", "T_TABLESPACE", "T_TEMPORARY", "T_TERMINATED", + "T_TEXTIMAGE_ON", "T_THEN", "T_TIMESTAMP", "T_TINYINT", + "T_TITLE", "T_TO", "T_TOP", "T_TRANSACTION", "T_TRUE", + "T_TRUNCATE", "T_TYPE", "T_UNION", "T_UNIQUE", "T_UPDATE", + "T_UR", "T_USE", "T_USING", "T_VALUE", "T_VALUES", + "T_VAR", "T_VARCHAR", "T_VARCHAR2", "T_VARYING", "T_VOLATILE", + "T_WHEN", "T_WHERE", "T_WHILE", "T_WITH", "T_WITHOUT", + "T_WORK", "T_XACT_ABORT", "T_XML", "T_YES", "T_ACTIVITY_COUNT", + "T_CUME_DIST", "T_CURRENT_DATE", "T_CURRENT_TIMESTAMP", + "T_CURRENT_USER", "T_DENSE_RANK", "T_FIRST_VALUE", + "T_LAG", "T_LAST_VALUE", "T_LEAD", "T_MAX_PART_STRING", + "T_MIN_PART_STRING", "T_MAX_PART_INT", "T_MIN_PART_INT", + "T_MAX_PART_DATE", "T_MIN_PART_DATE", "T_PART_COUNT", + "T_PART_LOC", "T_RANK", "T_ROW_NUMBER", "T_STDEV", + "T_SYSDATE", "T_VARIANCE", "T_USER", "T_ADD", "T_COLON", + "T_COMMA", "T_PIPE", "T_DIV", "T_DOT", "T_DOT2", "T_EQUAL", + "T_EQUAL2", "T_SHARP", "T_NOTE", "T_NOTEQUAL", "T_NOTEQUAL2", + "T_GREATER", "T_GREATEREQUAL", "T_LESS", "T_LESSEQUAL", + "T_MUL", "T_PRECENT", "T_CALLS", "T_OPEN_B", "T_OPEN_P", + "T_OPEN_SB", "T_CLOSE_B", "T_CLOSE_P", "T_CLOSE_SB", + "T_SEMICOLON", "T_SUB", "L_ID", "L_S_STRING", "L_D_STRING", + "L_INT", "L_DEC", "L_WS", "L_M_COMMENT", "L_S_COMMENT", + "L_FILE", "L_LABEL" ]; var ruleNames = [ "program", "block", "begin_end_block", "single_block_stmt", "block_end", "proc_block", "stmt", "semicolon_stmt", @@ -2589,626 +2630,631 @@ var ruleNames = [ "program", "block", "begin_end_block", "single_block_stmt", "string", "int_number", "dec_number", "bool_literal", "null_const", "non_reserved_words" ]; -function HiveSqlParser (input) { +function HiveSql (input) { antlr4.Parser.call(this, input); this._interp = new antlr4.atn.ParserATNSimulator(this, atn, decisionsToDFA, sharedContextCache); this.ruleNames = ruleNames; this.literalNames = literalNames; this.symbolicNames = symbolicNames; + + this._input = input; + return this; } -HiveSqlParser.prototype = Object.create(antlr4.Parser.prototype); -HiveSqlParser.prototype.constructor = HiveSqlParser; +HiveSql.prototype = Object.create(antlr4.Parser.prototype); +HiveSql.prototype.constructor = HiveSql; -Object.defineProperty(HiveSqlParser.prototype, "atn", { +Object.defineProperty(HiveSql.prototype, "atn", { get : function() { return atn; } }); -HiveSqlParser.EOF = antlr4.Token.EOF; -HiveSqlParser.T__0 = 1; -HiveSqlParser.T__1 = 2; -HiveSqlParser.T__2 = 3; -HiveSqlParser.T__3 = 4; -HiveSqlParser.T__4 = 5; -HiveSqlParser.T__5 = 6; -HiveSqlParser.T__6 = 7; -HiveSqlParser.T__7 = 8; -HiveSqlParser.T__8 = 9; -HiveSqlParser.T__9 = 10; -HiveSqlParser.T_GO = 11; -HiveSqlParser.T_BEGIN = 12; -HiveSqlParser.T_SEMICOLON = 13; -HiveSqlParser.T_END = 14; -HiveSqlParser.T_EXCEPTION = 15; -HiveSqlParser.T_WHEN = 16; -HiveSqlParser.L_ID = 17; -HiveSqlParser.T_THEN = 18; -HiveSqlParser.T_NULL = 19; -HiveSqlParser.T_SET = 20; -HiveSqlParser.T_COMMA = 21; -HiveSqlParser.T_COLON = 22; -HiveSqlParser.T_EQUAL = 23; -HiveSqlParser.T_OPEN_P = 24; -HiveSqlParser.T_CLOSE_P = 25; -HiveSqlParser.T_ALLOCATE = 26; -HiveSqlParser.T_CURSOR = 27; -HiveSqlParser.T_FOR = 28; -HiveSqlParser.T_RESULT = 29; -HiveSqlParser.T_PROCEDURE = 30; -HiveSqlParser.T_ASSOCIATE = 31; -HiveSqlParser.T_LOCATOR = 32; -HiveSqlParser.T_LOCATORS = 33; -HiveSqlParser.T_WITH = 34; -HiveSqlParser.T_TRANSACTION = 35; -HiveSqlParser.T_BREAK = 36; -HiveSqlParser.T_CALL = 37; -HiveSqlParser.T_DECLARE = 38; -HiveSqlParser.T_AS = 39; -HiveSqlParser.T_CONSTANT = 40; -HiveSqlParser.T_CONDITION = 41; -HiveSqlParser.T_IS = 42; -HiveSqlParser.T_RETURN = 43; -HiveSqlParser.T_ONLY = 44; -HiveSqlParser.T_TO = 45; -HiveSqlParser.T_CALLER = 46; -HiveSqlParser.T_CLIENT = 47; -HiveSqlParser.T_WITHOUT = 48; -HiveSqlParser.T_CONTINUE = 49; -HiveSqlParser.T_EXIT = 50; -HiveSqlParser.T_HANDLER = 51; -HiveSqlParser.T_SQLEXCEPTION = 52; -HiveSqlParser.T_SQLWARNING = 53; -HiveSqlParser.T_NOT = 54; -HiveSqlParser.T_FOUND = 55; -HiveSqlParser.T_GLOBAL = 56; -HiveSqlParser.T_TEMPORARY = 57; -HiveSqlParser.T_TABLE = 58; -HiveSqlParser.T_CREATE = 59; -HiveSqlParser.T_IF = 60; -HiveSqlParser.T_EXISTS = 61; -HiveSqlParser.T_LOCAL = 62; -HiveSqlParser.T_MULTISET = 63; -HiveSqlParser.T_VOLATILE = 64; -HiveSqlParser.T_LIKE = 65; -HiveSqlParser.T_CONSTRAINT = 66; -HiveSqlParser.T_PRIMARY = 67; -HiveSqlParser.T_KEY = 68; -HiveSqlParser.T_UNIQUE = 69; -HiveSqlParser.T_REFERENCES = 70; -HiveSqlParser.T_IDENTITY = 71; -HiveSqlParser.L_INT = 72; -HiveSqlParser.T_AUTO_INCREMENT = 73; -HiveSqlParser.T_ENABLE = 74; -HiveSqlParser.T_CLUSTERED = 75; -HiveSqlParser.T_ASC = 76; -HiveSqlParser.T_DESC = 77; -HiveSqlParser.T_FOREIGN = 78; -HiveSqlParser.T_ON = 79; -HiveSqlParser.T_UPDATE = 80; -HiveSqlParser.T_DELETE = 81; -HiveSqlParser.T_NO = 82; -HiveSqlParser.T_ACTION = 83; -HiveSqlParser.T_RESTRICT = 84; -HiveSqlParser.T_DEFAULT = 85; -HiveSqlParser.T_CASCADE = 86; -HiveSqlParser.T_LOG = 87; -HiveSqlParser.T_FALLBACK = 88; -HiveSqlParser.T_COMMIT = 89; -HiveSqlParser.T_PRESERVE = 90; -HiveSqlParser.T_ROWS = 91; -HiveSqlParser.T_SEGMENT = 92; -HiveSqlParser.T_CREATION = 93; -HiveSqlParser.T_IMMEDIATE = 94; -HiveSqlParser.T_DEFERRED = 95; -HiveSqlParser.T_PCTFREE = 96; -HiveSqlParser.T_PCTUSED = 97; -HiveSqlParser.T_INITRANS = 98; -HiveSqlParser.T_MAXTRANS = 99; -HiveSqlParser.T_NOCOMPRESS = 100; -HiveSqlParser.T_LOGGING = 101; -HiveSqlParser.T_NOLOGGING = 102; -HiveSqlParser.T_STORAGE = 103; -HiveSqlParser.T_TABLESPACE = 104; -HiveSqlParser.T_INDEX = 105; -HiveSqlParser.T_IN = 106; -HiveSqlParser.T_REPLACE = 107; -HiveSqlParser.T_DISTRIBUTE = 108; -HiveSqlParser.T_BY = 109; -HiveSqlParser.T_HASH = 110; -HiveSqlParser.T_LOGGED = 111; -HiveSqlParser.T_COMPRESS = 112; -HiveSqlParser.T_YES = 113; -HiveSqlParser.T_DEFINITION = 114; -HiveSqlParser.T_DROP = 115; -HiveSqlParser.T_DATA = 116; -HiveSqlParser.T_STORED = 117; -HiveSqlParser.T_ROW = 118; -HiveSqlParser.T_FORMAT = 119; -HiveSqlParser.T_DELIMITED = 120; -HiveSqlParser.T_FIELDS = 121; -HiveSqlParser.T_TERMINATED = 122; -HiveSqlParser.T_ESCAPED = 123; -HiveSqlParser.T_COLLECTION = 124; -HiveSqlParser.T_ITEMS = 125; -HiveSqlParser.T_MAP = 126; -HiveSqlParser.T_KEYS = 127; -HiveSqlParser.T_LINES = 128; -HiveSqlParser.T_DEFINED = 129; -HiveSqlParser.T_TEXTIMAGE_ON = 130; -HiveSqlParser.T_COMMENT = 131; -HiveSqlParser.T_CHARACTER = 132; -HiveSqlParser.T_CHARSET = 133; -HiveSqlParser.T_ENGINE = 134; -HiveSqlParser.T_ALTER = 135; -HiveSqlParser.T_ADD2 = 136; -HiveSqlParser.T_CHAR = 137; -HiveSqlParser.T_BIGINT = 138; -HiveSqlParser.T_BINARY_DOUBLE = 139; -HiveSqlParser.T_BINARY_FLOAT = 140; -HiveSqlParser.T_BINARY_INTEGER = 141; -HiveSqlParser.T_BIT = 142; -HiveSqlParser.T_DATE = 143; -HiveSqlParser.T_DATETIME = 144; -HiveSqlParser.T_DEC = 145; -HiveSqlParser.T_DECIMAL = 146; -HiveSqlParser.T_DOUBLE = 147; -HiveSqlParser.T_PRECISION = 148; -HiveSqlParser.T_FLOAT = 149; -HiveSqlParser.T_INT = 150; -HiveSqlParser.T_INT2 = 151; -HiveSqlParser.T_INT4 = 152; -HiveSqlParser.T_INT8 = 153; -HiveSqlParser.T_INTEGER = 154; -HiveSqlParser.T_NCHAR = 155; -HiveSqlParser.T_NVARCHAR = 156; -HiveSqlParser.T_NUMBER = 157; -HiveSqlParser.T_NUMERIC = 158; -HiveSqlParser.T_PLS_INTEGER = 159; -HiveSqlParser.T_REAL = 160; -HiveSqlParser.T_RESULT_SET_LOCATOR = 161; -HiveSqlParser.T_VARYING = 162; -HiveSqlParser.T_SIMPLE_FLOAT = 163; -HiveSqlParser.T_SIMPLE_DOUBLE = 164; -HiveSqlParser.T_SIMPLE_INTEGER = 165; -HiveSqlParser.T_SMALLINT = 166; -HiveSqlParser.T_SMALLDATETIME = 167; -HiveSqlParser.T_STRING = 168; -HiveSqlParser.T_SYS_REFCURSOR = 169; -HiveSqlParser.T_TIMESTAMP = 170; -HiveSqlParser.T_TINYINT = 171; -HiveSqlParser.T_VARCHAR = 172; -HiveSqlParser.T_VARCHAR2 = 173; -HiveSqlParser.T_XML = 174; -HiveSqlParser.T_TYPE = 175; -HiveSqlParser.T_ROWTYPE = 176; -HiveSqlParser.T_MAX = 177; -HiveSqlParser.T_BYTE = 178; -HiveSqlParser.T_CASESPECIFIC = 179; -HiveSqlParser.T_CS = 180; -HiveSqlParser.T_DATABASE = 181; -HiveSqlParser.T_SCHEMA = 182; -HiveSqlParser.T_LOCATION = 183; -HiveSqlParser.T_OR = 184; -HiveSqlParser.T_FUNCTION = 185; -HiveSqlParser.T_RETURNS = 186; -HiveSqlParser.T_PACKAGE = 187; -HiveSqlParser.T_PROC = 188; -HiveSqlParser.T_BODY = 189; -HiveSqlParser.T_OUT = 190; -HiveSqlParser.T_INOUT = 191; -HiveSqlParser.T_LANGUAGE = 192; -HiveSqlParser.T_SQL = 193; -HiveSqlParser.T_SECURITY = 194; -HiveSqlParser.T_CREATOR = 195; -HiveSqlParser.T_DEFINER = 196; -HiveSqlParser.T_INVOKER = 197; -HiveSqlParser.T_OWNER = 198; -HiveSqlParser.T_DYNAMIC = 199; -HiveSqlParser.T_SETS = 200; -HiveSqlParser.T_EXEC = 201; -HiveSqlParser.T_EXECUTE = 202; -HiveSqlParser.T_INTO = 203; -HiveSqlParser.T_ELSE = 204; -HiveSqlParser.T_ELSIF = 205; -HiveSqlParser.T_ELSEIF = 206; -HiveSqlParser.T_INCLUDE = 207; -HiveSqlParser.T_INSERT = 208; -HiveSqlParser.T_OVERWRITE = 209; -HiveSqlParser.T_VALUES = 210; -HiveSqlParser.T_DIRECTORY = 211; -HiveSqlParser.T_GET = 212; -HiveSqlParser.T_DIAGNOSTICS = 213; -HiveSqlParser.T_MESSAGE_TEXT = 214; -HiveSqlParser.T_ROW_COUNT = 215; -HiveSqlParser.T_GRANT = 216; -HiveSqlParser.T_ROLE = 217; -HiveSqlParser.T_LEAVE = 218; -HiveSqlParser.T_OBJECT = 219; -HiveSqlParser.T_AT = 220; -HiveSqlParser.T_OPEN = 221; -HiveSqlParser.T_FETCH = 222; -HiveSqlParser.T_FROM = 223; -HiveSqlParser.T_COLLECT = 224; -HiveSqlParser.T_STATISTICS = 225; -HiveSqlParser.T_STATS = 226; -HiveSqlParser.T_COLUMN = 227; -HiveSqlParser.T_CLOSE = 228; -HiveSqlParser.T_CMP = 229; -HiveSqlParser.T_SUM = 230; -HiveSqlParser.T_COPY = 231; -HiveSqlParser.T_HDFS = 232; -HiveSqlParser.T_BATCHSIZE = 233; -HiveSqlParser.T_DELIMITER = 234; -HiveSqlParser.T_SQLINSERT = 235; -HiveSqlParser.T_IGNORE = 236; -HiveSqlParser.T_WORK = 237; -HiveSqlParser.T_PRINT = 238; -HiveSqlParser.T_QUIT = 239; -HiveSqlParser.T_RAISE = 240; -HiveSqlParser.T_RESIGNAL = 241; -HiveSqlParser.T_SQLSTATE = 242; -HiveSqlParser.T_VALUE = 243; -HiveSqlParser.T_ROLLBACK = 244; -HiveSqlParser.T_CURRENT = 245; -HiveSqlParser.T_CURRENT_SCHEMA = 246; -HiveSqlParser.T_ANSI_NULLS = 247; -HiveSqlParser.T_ANSI_PADDING = 248; -HiveSqlParser.T_NOCOUNT = 249; -HiveSqlParser.T_QUOTED_IDENTIFIER = 250; -HiveSqlParser.T_XACT_ABORT = 251; -HiveSqlParser.T_OFF = 252; -HiveSqlParser.T_QUERY_BAND = 253; -HiveSqlParser.T_NONE = 254; -HiveSqlParser.T_SESSION = 255; -HiveSqlParser.T_SIGNAL = 256; -HiveSqlParser.T_SUMMARY = 257; -HiveSqlParser.T_TOP = 258; -HiveSqlParser.T_LIMIT = 259; -HiveSqlParser.T_TRUNCATE = 260; -HiveSqlParser.T_USE = 261; -HiveSqlParser.T_WHILE = 262; -HiveSqlParser.T_DO = 263; -HiveSqlParser.T_LOOP = 264; -HiveSqlParser.T_REVERSE = 265; -HiveSqlParser.T_DOT2 = 266; -HiveSqlParser.T_STEP = 267; -HiveSqlParser.L_LABEL = 268; -HiveSqlParser.T_LESS = 269; -HiveSqlParser.T_GREATER = 270; -HiveSqlParser.T_USING = 271; -HiveSqlParser.T_UNION = 272; -HiveSqlParser.T_ALL = 273; -HiveSqlParser.T_EXCEPT = 274; -HiveSqlParser.T_INTERSECT = 275; -HiveSqlParser.T_SELECT = 276; -HiveSqlParser.T_SEL = 277; -HiveSqlParser.T_DISTINCT = 278; -HiveSqlParser.T_TITLE = 279; -HiveSqlParser.L_S_STRING = 280; -HiveSqlParser.T_INNER = 281; -HiveSqlParser.T_JOIN = 282; -HiveSqlParser.T_LEFT = 283; -HiveSqlParser.T_RIGHT = 284; -HiveSqlParser.T_FULL = 285; -HiveSqlParser.T_OUTER = 286; -HiveSqlParser.T_WHERE = 287; -HiveSqlParser.T_GROUP = 288; -HiveSqlParser.T_HAVING = 289; -HiveSqlParser.T_QUALIFY = 290; -HiveSqlParser.T_ORDER = 291; -HiveSqlParser.T_RR = 292; -HiveSqlParser.T_RS = 293; -HiveSqlParser.T_UR = 294; -HiveSqlParser.T_AND = 295; -HiveSqlParser.T_KEEP = 296; -HiveSqlParser.T_EXCLUSIVE = 297; -HiveSqlParser.T_SHARE = 298; -HiveSqlParser.T_LOCKS = 299; -HiveSqlParser.T_MERGE = 300; -HiveSqlParser.T_MATCHED = 301; -HiveSqlParser.T_DESCRIBE = 302; -HiveSqlParser.T_BETWEEN = 303; -HiveSqlParser.T_EQUAL2 = 304; -HiveSqlParser.T_NOTEQUAL = 305; -HiveSqlParser.T_NOTEQUAL2 = 306; -HiveSqlParser.T_LESSEQUAL = 307; -HiveSqlParser.T_GREATEREQUAL = 308; -HiveSqlParser.T_RLIKE = 309; -HiveSqlParser.T_REGEXP = 310; -HiveSqlParser.T_MUL = 311; -HiveSqlParser.T_DIV = 312; -HiveSqlParser.T_ADD = 313; -HiveSqlParser.T_SUB = 314; -HiveSqlParser.T_INTERVAL = 315; -HiveSqlParser.T_DAY = 316; -HiveSqlParser.T_DAYS = 317; -HiveSqlParser.T_MICROSECOND = 318; -HiveSqlParser.T_MICROSECONDS = 319; -HiveSqlParser.T_SECOND = 320; -HiveSqlParser.T_SECONDS = 321; -HiveSqlParser.T_PIPE = 322; -HiveSqlParser.T_CONCAT = 323; -HiveSqlParser.T_CASE = 324; -HiveSqlParser.T_ISOPEN = 325; -HiveSqlParser.T_NOTFOUND = 326; -HiveSqlParser.T_AVG = 327; -HiveSqlParser.T_COUNT = 328; -HiveSqlParser.T_COUNT_BIG = 329; -HiveSqlParser.T_CUME_DIST = 330; -HiveSqlParser.T_DENSE_RANK = 331; -HiveSqlParser.T_FIRST_VALUE = 332; -HiveSqlParser.T_LAG = 333; -HiveSqlParser.T_LAST_VALUE = 334; -HiveSqlParser.T_LEAD = 335; -HiveSqlParser.T_MIN = 336; -HiveSqlParser.T_RANK = 337; -HiveSqlParser.T_ROW_NUMBER = 338; -HiveSqlParser.T_STDEV = 339; -HiveSqlParser.T_VAR = 340; -HiveSqlParser.T_VARIANCE = 341; -HiveSqlParser.T_OVER = 342; -HiveSqlParser.T_PARTITION = 343; -HiveSqlParser.T_ACTIVITY_COUNT = 344; -HiveSqlParser.T_CAST = 345; -HiveSqlParser.T_CURRENT_DATE = 346; -HiveSqlParser.T_CURRENT_TIMESTAMP = 347; -HiveSqlParser.T_CURRENT_USER = 348; -HiveSqlParser.T_USER = 349; -HiveSqlParser.T_MAX_PART_STRING = 350; -HiveSqlParser.T_MIN_PART_STRING = 351; -HiveSqlParser.T_MAX_PART_INT = 352; -HiveSqlParser.T_MIN_PART_INT = 353; -HiveSqlParser.T_MAX_PART_DATE = 354; -HiveSqlParser.T_MIN_PART_DATE = 355; -HiveSqlParser.T_PART_COUNT = 356; -HiveSqlParser.T_PART_LOC = 357; -HiveSqlParser.T_TRIM = 358; -HiveSqlParser.T_SUBSTRING = 359; -HiveSqlParser.T_SYSDATE = 360; -HiveSqlParser.T_HIVE = 361; -HiveSqlParser.T_HOST = 362; -HiveSqlParser.L_FILE = 363; -HiveSqlParser.L_D_STRING = 364; -HiveSqlParser.L_DEC = 365; -HiveSqlParser.T_TRUE = 366; -HiveSqlParser.T_FALSE = 367; -HiveSqlParser.T_DIR = 368; -HiveSqlParser.T_FILE = 369; -HiveSqlParser.T_FILES = 370; -HiveSqlParser.T_NEW = 371; -HiveSqlParser.T_PWD = 372; -HiveSqlParser.T_SESSIONS = 373; -HiveSqlParser.T_SUBDIR = 374; +HiveSql.EOF = antlr4.Token.EOF; +HiveSql.T_ACTION = 1; +HiveSql.T_ADD2 = 2; +HiveSql.T_ALL = 3; +HiveSql.T_ALLOCATE = 4; +HiveSql.T_ALTER = 5; +HiveSql.T_AND = 6; +HiveSql.T_ANSI_NULLS = 7; +HiveSql.T_ANSI_PADDING = 8; +HiveSql.T_AS = 9; +HiveSql.T_ASC = 10; +HiveSql.T_ASSOCIATE = 11; +HiveSql.T_AT = 12; +HiveSql.T_AUTO_INCREMENT = 13; +HiveSql.T_AVG = 14; +HiveSql.T_BATCHSIZE = 15; +HiveSql.T_BEGIN = 16; +HiveSql.T_BETWEEN = 17; +HiveSql.T_BIGINT = 18; +HiveSql.T_BINARY_DOUBLE = 19; +HiveSql.T_BINARY_FLOAT = 20; +HiveSql.T_BINARY_INTEGER = 21; +HiveSql.T_BIT = 22; +HiveSql.T_BODY = 23; +HiveSql.T_BREAK = 24; +HiveSql.T_BY = 25; +HiveSql.T_BYTE = 26; +HiveSql.T_CALL = 27; +HiveSql.T_CALLER = 28; +HiveSql.T_CASCADE = 29; +HiveSql.T_CASE = 30; +HiveSql.T_CASESPECIFIC = 31; +HiveSql.T_CAST = 32; +HiveSql.T_CHAR = 33; +HiveSql.T_CHARACTER = 34; +HiveSql.T_CHARSET = 35; +HiveSql.T_CLIENT = 36; +HiveSql.T_CLOSE = 37; +HiveSql.T_CLUSTERED = 38; +HiveSql.T_CMP = 39; +HiveSql.T_COLLECT = 40; +HiveSql.T_COLLECTION = 41; +HiveSql.T_COLUMN = 42; +HiveSql.T_COMMENT = 43; +HiveSql.T_CONSTANT = 44; +HiveSql.T_COMMIT = 45; +HiveSql.T_COMPRESS = 46; +HiveSql.T_CONCAT = 47; +HiveSql.T_CONDITION = 48; +HiveSql.T_CONSTRAINT = 49; +HiveSql.T_CONTINUE = 50; +HiveSql.T_COPY = 51; +HiveSql.T_COUNT = 52; +HiveSql.T_COUNT_BIG = 53; +HiveSql.T_CREATE = 54; +HiveSql.T_CREATION = 55; +HiveSql.T_CREATOR = 56; +HiveSql.T_CS = 57; +HiveSql.T_CURRENT = 58; +HiveSql.T_CURRENT_SCHEMA = 59; +HiveSql.T_CURSOR = 60; +HiveSql.T_DATABASE = 61; +HiveSql.T_DATA = 62; +HiveSql.T_DATE = 63; +HiveSql.T_DATETIME = 64; +HiveSql.T_DAY = 65; +HiveSql.T_DAYS = 66; +HiveSql.T_DEC = 67; +HiveSql.T_DECIMAL = 68; +HiveSql.T_DECLARE = 69; +HiveSql.T_DEFAULT = 70; +HiveSql.T_DEFERRED = 71; +HiveSql.T_DEFINED = 72; +HiveSql.T_DEFINER = 73; +HiveSql.T_DEFINITION = 74; +HiveSql.T_DELETE = 75; +HiveSql.T_DELIMITED = 76; +HiveSql.T_DELIMITER = 77; +HiveSql.T_DESC = 78; +HiveSql.T_DESCRIBE = 79; +HiveSql.T_DIAGNOSTICS = 80; +HiveSql.T_DIR = 81; +HiveSql.T_DIRECTORY = 82; +HiveSql.T_DISTINCT = 83; +HiveSql.T_DISTRIBUTE = 84; +HiveSql.T_DO = 85; +HiveSql.T_DOUBLE = 86; +HiveSql.T_DROP = 87; +HiveSql.T_DYNAMIC = 88; +HiveSql.T_ELSE = 89; +HiveSql.T_ELSEIF = 90; +HiveSql.T_ELSIF = 91; +HiveSql.T_ENABLE = 92; +HiveSql.T_END = 93; +HiveSql.T_ENGINE = 94; +HiveSql.T_ESCAPED = 95; +HiveSql.T_EXCEPT = 96; +HiveSql.T_EXEC = 97; +HiveSql.T_EXECUTE = 98; +HiveSql.T_EXCEPTION = 99; +HiveSql.T_EXCLUSIVE = 100; +HiveSql.T_EXISTS = 101; +HiveSql.T_EXIT = 102; +HiveSql.T_FALLBACK = 103; +HiveSql.T_FALSE = 104; +HiveSql.T_FETCH = 105; +HiveSql.T_FIELDS = 106; +HiveSql.T_FILE = 107; +HiveSql.T_FILES = 108; +HiveSql.T_FLOAT = 109; +HiveSql.T_FOR = 110; +HiveSql.T_FOREIGN = 111; +HiveSql.T_FORMAT = 112; +HiveSql.T_FOUND = 113; +HiveSql.T_FROM = 114; +HiveSql.T_FULL = 115; +HiveSql.T_FUNCTION = 116; +HiveSql.T_GET = 117; +HiveSql.T_GLOBAL = 118; +HiveSql.T_GO = 119; +HiveSql.T_GRANT = 120; +HiveSql.T_GROUP = 121; +HiveSql.T_HANDLER = 122; +HiveSql.T_HASH = 123; +HiveSql.T_HAVING = 124; +HiveSql.T_HDFS = 125; +HiveSql.T_HIVE = 126; +HiveSql.T_HOST = 127; +HiveSql.T_IDENTITY = 128; +HiveSql.T_IF = 129; +HiveSql.T_IGNORE = 130; +HiveSql.T_IMMEDIATE = 131; +HiveSql.T_IN = 132; +HiveSql.T_INCLUDE = 133; +HiveSql.T_INDEX = 134; +HiveSql.T_INITRANS = 135; +HiveSql.T_INNER = 136; +HiveSql.T_INOUT = 137; +HiveSql.T_INSERT = 138; +HiveSql.T_INT = 139; +HiveSql.T_INT2 = 140; +HiveSql.T_INT4 = 141; +HiveSql.T_INT8 = 142; +HiveSql.T_INTEGER = 143; +HiveSql.T_INTERSECT = 144; +HiveSql.T_INTERVAL = 145; +HiveSql.T_INTO = 146; +HiveSql.T_INVOKER = 147; +HiveSql.T_IS = 148; +HiveSql.T_ISOPEN = 149; +HiveSql.T_ITEMS = 150; +HiveSql.T_JOIN = 151; +HiveSql.T_KEEP = 152; +HiveSql.T_KEY = 153; +HiveSql.T_KEYS = 154; +HiveSql.T_LANGUAGE = 155; +HiveSql.T_LEAVE = 156; +HiveSql.T_LEFT = 157; +HiveSql.T_LIKE = 158; +HiveSql.T_LIMIT = 159; +HiveSql.T_LINES = 160; +HiveSql.T_LOCAL = 161; +HiveSql.T_LOCATION = 162; +HiveSql.T_LOCATOR = 163; +HiveSql.T_LOCATORS = 164; +HiveSql.T_LOCKS = 165; +HiveSql.T_LOG = 166; +HiveSql.T_LOGGED = 167; +HiveSql.T_LOGGING = 168; +HiveSql.T_LOOP = 169; +HiveSql.T_MAP = 170; +HiveSql.T_MATCHED = 171; +HiveSql.T_MAX = 172; +HiveSql.T_MAXTRANS = 173; +HiveSql.T_MERGE = 174; +HiveSql.T_MESSAGE_TEXT = 175; +HiveSql.T_MICROSECOND = 176; +HiveSql.T_MICROSECONDS = 177; +HiveSql.T_MIN = 178; +HiveSql.T_MULTISET = 179; +HiveSql.T_NCHAR = 180; +HiveSql.T_NEW = 181; +HiveSql.T_NVARCHAR = 182; +HiveSql.T_NO = 183; +HiveSql.T_NOCOUNT = 184; +HiveSql.T_NOCOMPRESS = 185; +HiveSql.T_NOLOGGING = 186; +HiveSql.T_NONE = 187; +HiveSql.T_NOT = 188; +HiveSql.T_NOTFOUND = 189; +HiveSql.T_NULL = 190; +HiveSql.T_NUMERIC = 191; +HiveSql.T_NUMBER = 192; +HiveSql.T_OBJECT = 193; +HiveSql.T_OFF = 194; +HiveSql.T_ON = 195; +HiveSql.T_ONLY = 196; +HiveSql.T_OPEN = 197; +HiveSql.T_OR = 198; +HiveSql.T_ORDER = 199; +HiveSql.T_OUT = 200; +HiveSql.T_OUTER = 201; +HiveSql.T_OVER = 202; +HiveSql.T_OVERWRITE = 203; +HiveSql.T_OWNER = 204; +HiveSql.T_PACKAGE = 205; +HiveSql.T_PARTITION = 206; +HiveSql.T_PCTFREE = 207; +HiveSql.T_PCTUSED = 208; +HiveSql.T_PLS_INTEGER = 209; +HiveSql.T_PRECISION = 210; +HiveSql.T_PRESERVE = 211; +HiveSql.T_PRIMARY = 212; +HiveSql.T_PRINT = 213; +HiveSql.T_PROC = 214; +HiveSql.T_PROCEDURE = 215; +HiveSql.T_QUALIFY = 216; +HiveSql.T_QUERY_BAND = 217; +HiveSql.T_QUIT = 218; +HiveSql.T_QUOTED_IDENTIFIER = 219; +HiveSql.T_RAISE = 220; +HiveSql.T_REAL = 221; +HiveSql.T_REFERENCES = 222; +HiveSql.T_REGEXP = 223; +HiveSql.T_REPLACE = 224; +HiveSql.T_RESIGNAL = 225; +HiveSql.T_RESTRICT = 226; +HiveSql.T_RESULT = 227; +HiveSql.T_RESULT_SET_LOCATOR = 228; +HiveSql.T_RETURN = 229; +HiveSql.T_RETURNS = 230; +HiveSql.T_REVERSE = 231; +HiveSql.T_RIGHT = 232; +HiveSql.T_RLIKE = 233; +HiveSql.T_ROLE = 234; +HiveSql.T_ROLLBACK = 235; +HiveSql.T_ROW = 236; +HiveSql.T_ROWS = 237; +HiveSql.T_ROWTYPE = 238; +HiveSql.T_ROW_COUNT = 239; +HiveSql.T_RR = 240; +HiveSql.T_RS = 241; +HiveSql.T_PWD = 242; +HiveSql.T_TRIM = 243; +HiveSql.T_SCHEMA = 244; +HiveSql.T_SECOND = 245; +HiveSql.T_SECONDS = 246; +HiveSql.T_SECURITY = 247; +HiveSql.T_SEGMENT = 248; +HiveSql.T_SEL = 249; +HiveSql.T_SELECT = 250; +HiveSql.T_SET = 251; +HiveSql.T_SESSION = 252; +HiveSql.T_SESSIONS = 253; +HiveSql.T_SETS = 254; +HiveSql.T_SHARE = 255; +HiveSql.T_SIGNAL = 256; +HiveSql.T_SIMPLE_DOUBLE = 257; +HiveSql.T_SIMPLE_FLOAT = 258; +HiveSql.T_SIMPLE_INTEGER = 259; +HiveSql.T_SMALLDATETIME = 260; +HiveSql.T_SMALLINT = 261; +HiveSql.T_SQL = 262; +HiveSql.T_SQLEXCEPTION = 263; +HiveSql.T_SQLINSERT = 264; +HiveSql.T_SQLSTATE = 265; +HiveSql.T_SQLWARNING = 266; +HiveSql.T_STATS = 267; +HiveSql.T_STATISTICS = 268; +HiveSql.T_STEP = 269; +HiveSql.T_STORAGE = 270; +HiveSql.T_STORED = 271; +HiveSql.T_STRING = 272; +HiveSql.T_SUBDIR = 273; +HiveSql.T_SUBSTRING = 274; +HiveSql.T_SUM = 275; +HiveSql.T_SUMMARY = 276; +HiveSql.T_SYS_REFCURSOR = 277; +HiveSql.T_TABLE = 278; +HiveSql.T_TABLESPACE = 279; +HiveSql.T_TEMPORARY = 280; +HiveSql.T_TERMINATED = 281; +HiveSql.T_TEXTIMAGE_ON = 282; +HiveSql.T_THEN = 283; +HiveSql.T_TIMESTAMP = 284; +HiveSql.T_TINYINT = 285; +HiveSql.T_TITLE = 286; +HiveSql.T_TO = 287; +HiveSql.T_TOP = 288; +HiveSql.T_TRANSACTION = 289; +HiveSql.T_TRUE = 290; +HiveSql.T_TRUNCATE = 291; +HiveSql.T_TYPE = 292; +HiveSql.T_UNION = 293; +HiveSql.T_UNIQUE = 294; +HiveSql.T_UPDATE = 295; +HiveSql.T_UR = 296; +HiveSql.T_USE = 297; +HiveSql.T_USING = 298; +HiveSql.T_VALUE = 299; +HiveSql.T_VALUES = 300; +HiveSql.T_VAR = 301; +HiveSql.T_VARCHAR = 302; +HiveSql.T_VARCHAR2 = 303; +HiveSql.T_VARYING = 304; +HiveSql.T_VOLATILE = 305; +HiveSql.T_WHEN = 306; +HiveSql.T_WHERE = 307; +HiveSql.T_WHILE = 308; +HiveSql.T_WITH = 309; +HiveSql.T_WITHOUT = 310; +HiveSql.T_WORK = 311; +HiveSql.T_XACT_ABORT = 312; +HiveSql.T_XML = 313; +HiveSql.T_YES = 314; +HiveSql.T_ACTIVITY_COUNT = 315; +HiveSql.T_CUME_DIST = 316; +HiveSql.T_CURRENT_DATE = 317; +HiveSql.T_CURRENT_TIMESTAMP = 318; +HiveSql.T_CURRENT_USER = 319; +HiveSql.T_DENSE_RANK = 320; +HiveSql.T_FIRST_VALUE = 321; +HiveSql.T_LAG = 322; +HiveSql.T_LAST_VALUE = 323; +HiveSql.T_LEAD = 324; +HiveSql.T_MAX_PART_STRING = 325; +HiveSql.T_MIN_PART_STRING = 326; +HiveSql.T_MAX_PART_INT = 327; +HiveSql.T_MIN_PART_INT = 328; +HiveSql.T_MAX_PART_DATE = 329; +HiveSql.T_MIN_PART_DATE = 330; +HiveSql.T_PART_COUNT = 331; +HiveSql.T_PART_LOC = 332; +HiveSql.T_RANK = 333; +HiveSql.T_ROW_NUMBER = 334; +HiveSql.T_STDEV = 335; +HiveSql.T_SYSDATE = 336; +HiveSql.T_VARIANCE = 337; +HiveSql.T_USER = 338; +HiveSql.T_ADD = 339; +HiveSql.T_COLON = 340; +HiveSql.T_COMMA = 341; +HiveSql.T_PIPE = 342; +HiveSql.T_DIV = 343; +HiveSql.T_DOT = 344; +HiveSql.T_DOT2 = 345; +HiveSql.T_EQUAL = 346; +HiveSql.T_EQUAL2 = 347; +HiveSql.T_SHARP = 348; +HiveSql.T_NOTE = 349; +HiveSql.T_NOTEQUAL = 350; +HiveSql.T_NOTEQUAL2 = 351; +HiveSql.T_GREATER = 352; +HiveSql.T_GREATEREQUAL = 353; +HiveSql.T_LESS = 354; +HiveSql.T_LESSEQUAL = 355; +HiveSql.T_MUL = 356; +HiveSql.T_PRECENT = 357; +HiveSql.T_CALLS = 358; +HiveSql.T_OPEN_B = 359; +HiveSql.T_OPEN_P = 360; +HiveSql.T_OPEN_SB = 361; +HiveSql.T_CLOSE_B = 362; +HiveSql.T_CLOSE_P = 363; +HiveSql.T_CLOSE_SB = 364; +HiveSql.T_SEMICOLON = 365; +HiveSql.T_SUB = 366; +HiveSql.L_ID = 367; +HiveSql.L_S_STRING = 368; +HiveSql.L_D_STRING = 369; +HiveSql.L_INT = 370; +HiveSql.L_DEC = 371; +HiveSql.L_WS = 372; +HiveSql.L_M_COMMENT = 373; +HiveSql.L_S_COMMENT = 374; +HiveSql.L_FILE = 375; +HiveSql.L_LABEL = 376; -HiveSqlParser.RULE_program = 0; -HiveSqlParser.RULE_block = 1; -HiveSqlParser.RULE_begin_end_block = 2; -HiveSqlParser.RULE_single_block_stmt = 3; -HiveSqlParser.RULE_block_end = 4; -HiveSqlParser.RULE_proc_block = 5; -HiveSqlParser.RULE_stmt = 6; -HiveSqlParser.RULE_semicolon_stmt = 7; -HiveSqlParser.RULE_exception_block = 8; -HiveSqlParser.RULE_exception_block_item = 9; -HiveSqlParser.RULE_null_stmt = 10; -HiveSqlParser.RULE_expr_stmt = 11; -HiveSqlParser.RULE_assignment_stmt = 12; -HiveSqlParser.RULE_assignment_stmt_item = 13; -HiveSqlParser.RULE_assignment_stmt_single_item = 14; -HiveSqlParser.RULE_assignment_stmt_multiple_item = 15; -HiveSqlParser.RULE_assignment_stmt_select_item = 16; -HiveSqlParser.RULE_allocate_cursor_stmt = 17; -HiveSqlParser.RULE_associate_locator_stmt = 18; -HiveSqlParser.RULE_begin_transaction_stmt = 19; -HiveSqlParser.RULE_break_stmt = 20; -HiveSqlParser.RULE_call_stmt = 21; -HiveSqlParser.RULE_declare_stmt = 22; -HiveSqlParser.RULE_declare_block = 23; -HiveSqlParser.RULE_declare_block_inplace = 24; -HiveSqlParser.RULE_declare_stmt_item = 25; -HiveSqlParser.RULE_declare_var_item = 26; -HiveSqlParser.RULE_declare_condition_item = 27; -HiveSqlParser.RULE_declare_cursor_item = 28; -HiveSqlParser.RULE_cursor_with_return = 29; -HiveSqlParser.RULE_cursor_without_return = 30; -HiveSqlParser.RULE_declare_handler_item = 31; -HiveSqlParser.RULE_declare_temporary_table_item = 32; -HiveSqlParser.RULE_create_table_stmt = 33; -HiveSqlParser.RULE_create_local_temp_table_stmt = 34; -HiveSqlParser.RULE_create_table_definition = 35; -HiveSqlParser.RULE_create_table_columns = 36; -HiveSqlParser.RULE_create_table_columns_item = 37; -HiveSqlParser.RULE_column_name = 38; -HiveSqlParser.RULE_create_table_column_inline_cons = 39; -HiveSqlParser.RULE_create_table_column_cons = 40; -HiveSqlParser.RULE_create_table_fk_action = 41; -HiveSqlParser.RULE_create_table_preoptions = 42; -HiveSqlParser.RULE_create_table_preoptions_item = 43; -HiveSqlParser.RULE_create_table_preoptions_td_item = 44; -HiveSqlParser.RULE_create_table_options = 45; -HiveSqlParser.RULE_create_table_options_item = 46; -HiveSqlParser.RULE_create_table_options_ora_item = 47; -HiveSqlParser.RULE_create_table_options_db2_item = 48; -HiveSqlParser.RULE_create_table_options_td_item = 49; -HiveSqlParser.RULE_create_table_options_hive_item = 50; -HiveSqlParser.RULE_create_table_hive_row_format = 51; -HiveSqlParser.RULE_create_table_hive_row_format_fields = 52; -HiveSqlParser.RULE_create_table_options_mssql_item = 53; -HiveSqlParser.RULE_create_table_options_mysql_item = 54; -HiveSqlParser.RULE_alter_table_stmt = 55; -HiveSqlParser.RULE_alter_table_item = 56; -HiveSqlParser.RULE_alter_table_add_constraint = 57; -HiveSqlParser.RULE_alter_table_add_constraint_item = 58; -HiveSqlParser.RULE_dtype = 59; -HiveSqlParser.RULE_dtype_len = 60; -HiveSqlParser.RULE_dtype_attr = 61; -HiveSqlParser.RULE_dtype_default = 62; -HiveSqlParser.RULE_create_database_stmt = 63; -HiveSqlParser.RULE_create_database_option = 64; -HiveSqlParser.RULE_create_function_stmt = 65; -HiveSqlParser.RULE_create_function_return = 66; -HiveSqlParser.RULE_create_package_stmt = 67; -HiveSqlParser.RULE_package_spec = 68; -HiveSqlParser.RULE_package_spec_item = 69; -HiveSqlParser.RULE_create_package_body_stmt = 70; -HiveSqlParser.RULE_package_body = 71; -HiveSqlParser.RULE_package_body_item = 72; -HiveSqlParser.RULE_create_procedure_stmt = 73; -HiveSqlParser.RULE_create_routine_params = 74; -HiveSqlParser.RULE_create_routine_param_item = 75; -HiveSqlParser.RULE_create_routine_options = 76; -HiveSqlParser.RULE_create_routine_option = 77; -HiveSqlParser.RULE_drop_stmt = 78; -HiveSqlParser.RULE_end_transaction_stmt = 79; -HiveSqlParser.RULE_exec_stmt = 80; -HiveSqlParser.RULE_if_stmt = 81; -HiveSqlParser.RULE_if_plsql_stmt = 82; -HiveSqlParser.RULE_if_tsql_stmt = 83; -HiveSqlParser.RULE_if_bteq_stmt = 84; -HiveSqlParser.RULE_elseif_block = 85; -HiveSqlParser.RULE_else_block = 86; -HiveSqlParser.RULE_include_stmt = 87; -HiveSqlParser.RULE_insert_stmt = 88; -HiveSqlParser.RULE_insert_stmt_cols = 89; -HiveSqlParser.RULE_insert_stmt_rows = 90; -HiveSqlParser.RULE_insert_stmt_row = 91; -HiveSqlParser.RULE_insert_directory_stmt = 92; -HiveSqlParser.RULE_exit_stmt = 93; -HiveSqlParser.RULE_get_diag_stmt = 94; -HiveSqlParser.RULE_get_diag_stmt_item = 95; -HiveSqlParser.RULE_get_diag_stmt_exception_item = 96; -HiveSqlParser.RULE_get_diag_stmt_rowcount_item = 97; -HiveSqlParser.RULE_grant_stmt = 98; -HiveSqlParser.RULE_grant_stmt_item = 99; -HiveSqlParser.RULE_leave_stmt = 100; -HiveSqlParser.RULE_map_object_stmt = 101; -HiveSqlParser.RULE_open_stmt = 102; -HiveSqlParser.RULE_fetch_stmt = 103; -HiveSqlParser.RULE_collect_stats_stmt = 104; -HiveSqlParser.RULE_collect_stats_clause = 105; -HiveSqlParser.RULE_close_stmt = 106; -HiveSqlParser.RULE_cmp_stmt = 107; -HiveSqlParser.RULE_cmp_source = 108; -HiveSqlParser.RULE_copy_from_local_stmt = 109; -HiveSqlParser.RULE_copy_stmt = 110; -HiveSqlParser.RULE_copy_source = 111; -HiveSqlParser.RULE_copy_target = 112; -HiveSqlParser.RULE_copy_option = 113; -HiveSqlParser.RULE_copy_file_option = 114; -HiveSqlParser.RULE_commit_stmt = 115; -HiveSqlParser.RULE_create_index_stmt = 116; -HiveSqlParser.RULE_create_index_col = 117; -HiveSqlParser.RULE_index_storage_clause = 118; -HiveSqlParser.RULE_index_mssql_storage_clause = 119; -HiveSqlParser.RULE_print_stmt = 120; -HiveSqlParser.RULE_quit_stmt = 121; -HiveSqlParser.RULE_raise_stmt = 122; -HiveSqlParser.RULE_resignal_stmt = 123; -HiveSqlParser.RULE_return_stmt = 124; -HiveSqlParser.RULE_rollback_stmt = 125; -HiveSqlParser.RULE_set_session_option = 126; -HiveSqlParser.RULE_set_current_schema_option = 127; -HiveSqlParser.RULE_set_mssql_session_option = 128; -HiveSqlParser.RULE_set_teradata_session_option = 129; -HiveSqlParser.RULE_signal_stmt = 130; -HiveSqlParser.RULE_summary_stmt = 131; -HiveSqlParser.RULE_truncate_stmt = 132; -HiveSqlParser.RULE_use_stmt = 133; -HiveSqlParser.RULE_values_into_stmt = 134; -HiveSqlParser.RULE_while_stmt = 135; -HiveSqlParser.RULE_for_cursor_stmt = 136; -HiveSqlParser.RULE_for_range_stmt = 137; -HiveSqlParser.RULE_label = 138; -HiveSqlParser.RULE_using_clause = 139; -HiveSqlParser.RULE_select_stmt = 140; -HiveSqlParser.RULE_cte_select_stmt = 141; -HiveSqlParser.RULE_cte_select_stmt_item = 142; -HiveSqlParser.RULE_cte_select_cols = 143; -HiveSqlParser.RULE_fullselect_stmt = 144; -HiveSqlParser.RULE_fullselect_stmt_item = 145; -HiveSqlParser.RULE_fullselect_set_clause = 146; -HiveSqlParser.RULE_subselect_stmt = 147; -HiveSqlParser.RULE_select_list = 148; -HiveSqlParser.RULE_select_list_set = 149; -HiveSqlParser.RULE_select_list_limit = 150; -HiveSqlParser.RULE_select_list_item = 151; -HiveSqlParser.RULE_select_list_alias = 152; -HiveSqlParser.RULE_select_list_asterisk = 153; -HiveSqlParser.RULE_into_clause = 154; -HiveSqlParser.RULE_from_clause = 155; -HiveSqlParser.RULE_from_table_clause = 156; -HiveSqlParser.RULE_from_table_name_clause = 157; -HiveSqlParser.RULE_from_subselect_clause = 158; -HiveSqlParser.RULE_from_join_clause = 159; -HiveSqlParser.RULE_from_join_type_clause = 160; -HiveSqlParser.RULE_from_table_values_clause = 161; -HiveSqlParser.RULE_from_table_values_row = 162; -HiveSqlParser.RULE_from_alias_clause = 163; -HiveSqlParser.RULE_table_name = 164; -HiveSqlParser.RULE_where_clause = 165; -HiveSqlParser.RULE_group_by_clause = 166; -HiveSqlParser.RULE_having_clause = 167; -HiveSqlParser.RULE_qualify_clause = 168; -HiveSqlParser.RULE_order_by_clause = 169; -HiveSqlParser.RULE_select_options = 170; -HiveSqlParser.RULE_select_options_item = 171; -HiveSqlParser.RULE_update_stmt = 172; -HiveSqlParser.RULE_update_assignment = 173; -HiveSqlParser.RULE_update_table = 174; -HiveSqlParser.RULE_update_upsert = 175; -HiveSqlParser.RULE_merge_stmt = 176; -HiveSqlParser.RULE_merge_table = 177; -HiveSqlParser.RULE_merge_condition = 178; -HiveSqlParser.RULE_merge_action = 179; -HiveSqlParser.RULE_delete_stmt = 180; -HiveSqlParser.RULE_delete_alias = 181; -HiveSqlParser.RULE_describe_stmt = 182; -HiveSqlParser.RULE_bool_expr = 183; -HiveSqlParser.RULE_bool_expr_atom = 184; -HiveSqlParser.RULE_bool_expr_unary = 185; -HiveSqlParser.RULE_bool_expr_single_in = 186; -HiveSqlParser.RULE_bool_expr_multi_in = 187; -HiveSqlParser.RULE_bool_expr_binary = 188; -HiveSqlParser.RULE_bool_expr_logical_operator = 189; -HiveSqlParser.RULE_bool_expr_binary_operator = 190; -HiveSqlParser.RULE_expr = 191; -HiveSqlParser.RULE_expr_atom = 192; -HiveSqlParser.RULE_expr_interval = 193; -HiveSqlParser.RULE_interval_item = 194; -HiveSqlParser.RULE_expr_concat = 195; -HiveSqlParser.RULE_expr_concat_item = 196; -HiveSqlParser.RULE_expr_case = 197; -HiveSqlParser.RULE_expr_case_simple = 198; -HiveSqlParser.RULE_expr_case_searched = 199; -HiveSqlParser.RULE_expr_cursor_attribute = 200; -HiveSqlParser.RULE_expr_agg_window_func = 201; -HiveSqlParser.RULE_expr_func_all_distinct = 202; -HiveSqlParser.RULE_expr_func_over_clause = 203; -HiveSqlParser.RULE_expr_func_partition_by_clause = 204; -HiveSqlParser.RULE_expr_spec_func = 205; -HiveSqlParser.RULE_expr_func = 206; -HiveSqlParser.RULE_expr_func_params = 207; -HiveSqlParser.RULE_func_param = 208; -HiveSqlParser.RULE_expr_select = 209; -HiveSqlParser.RULE_expr_file = 210; -HiveSqlParser.RULE_hive = 211; -HiveSqlParser.RULE_hive_item = 212; -HiveSqlParser.RULE_host = 213; -HiveSqlParser.RULE_host_cmd = 214; -HiveSqlParser.RULE_host_stmt = 215; -HiveSqlParser.RULE_file_name = 216; -HiveSqlParser.RULE_date_literal = 217; -HiveSqlParser.RULE_timestamp_literal = 218; -HiveSqlParser.RULE_ident = 219; -HiveSqlParser.RULE_string = 220; -HiveSqlParser.RULE_int_number = 221; -HiveSqlParser.RULE_dec_number = 222; -HiveSqlParser.RULE_bool_literal = 223; -HiveSqlParser.RULE_null_const = 224; -HiveSqlParser.RULE_non_reserved_words = 225; +HiveSql.RULE_program = 0; +HiveSql.RULE_block = 1; +HiveSql.RULE_begin_end_block = 2; +HiveSql.RULE_single_block_stmt = 3; +HiveSql.RULE_block_end = 4; +HiveSql.RULE_proc_block = 5; +HiveSql.RULE_stmt = 6; +HiveSql.RULE_semicolon_stmt = 7; +HiveSql.RULE_exception_block = 8; +HiveSql.RULE_exception_block_item = 9; +HiveSql.RULE_null_stmt = 10; +HiveSql.RULE_expr_stmt = 11; +HiveSql.RULE_assignment_stmt = 12; +HiveSql.RULE_assignment_stmt_item = 13; +HiveSql.RULE_assignment_stmt_single_item = 14; +HiveSql.RULE_assignment_stmt_multiple_item = 15; +HiveSql.RULE_assignment_stmt_select_item = 16; +HiveSql.RULE_allocate_cursor_stmt = 17; +HiveSql.RULE_associate_locator_stmt = 18; +HiveSql.RULE_begin_transaction_stmt = 19; +HiveSql.RULE_break_stmt = 20; +HiveSql.RULE_call_stmt = 21; +HiveSql.RULE_declare_stmt = 22; +HiveSql.RULE_declare_block = 23; +HiveSql.RULE_declare_block_inplace = 24; +HiveSql.RULE_declare_stmt_item = 25; +HiveSql.RULE_declare_var_item = 26; +HiveSql.RULE_declare_condition_item = 27; +HiveSql.RULE_declare_cursor_item = 28; +HiveSql.RULE_cursor_with_return = 29; +HiveSql.RULE_cursor_without_return = 30; +HiveSql.RULE_declare_handler_item = 31; +HiveSql.RULE_declare_temporary_table_item = 32; +HiveSql.RULE_create_table_stmt = 33; +HiveSql.RULE_create_local_temp_table_stmt = 34; +HiveSql.RULE_create_table_definition = 35; +HiveSql.RULE_create_table_columns = 36; +HiveSql.RULE_create_table_columns_item = 37; +HiveSql.RULE_column_name = 38; +HiveSql.RULE_create_table_column_inline_cons = 39; +HiveSql.RULE_create_table_column_cons = 40; +HiveSql.RULE_create_table_fk_action = 41; +HiveSql.RULE_create_table_preoptions = 42; +HiveSql.RULE_create_table_preoptions_item = 43; +HiveSql.RULE_create_table_preoptions_td_item = 44; +HiveSql.RULE_create_table_options = 45; +HiveSql.RULE_create_table_options_item = 46; +HiveSql.RULE_create_table_options_ora_item = 47; +HiveSql.RULE_create_table_options_db2_item = 48; +HiveSql.RULE_create_table_options_td_item = 49; +HiveSql.RULE_create_table_options_hive_item = 50; +HiveSql.RULE_create_table_hive_row_format = 51; +HiveSql.RULE_create_table_hive_row_format_fields = 52; +HiveSql.RULE_create_table_options_mssql_item = 53; +HiveSql.RULE_create_table_options_mysql_item = 54; +HiveSql.RULE_alter_table_stmt = 55; +HiveSql.RULE_alter_table_item = 56; +HiveSql.RULE_alter_table_add_constraint = 57; +HiveSql.RULE_alter_table_add_constraint_item = 58; +HiveSql.RULE_dtype = 59; +HiveSql.RULE_dtype_len = 60; +HiveSql.RULE_dtype_attr = 61; +HiveSql.RULE_dtype_default = 62; +HiveSql.RULE_create_database_stmt = 63; +HiveSql.RULE_create_database_option = 64; +HiveSql.RULE_create_function_stmt = 65; +HiveSql.RULE_create_function_return = 66; +HiveSql.RULE_create_package_stmt = 67; +HiveSql.RULE_package_spec = 68; +HiveSql.RULE_package_spec_item = 69; +HiveSql.RULE_create_package_body_stmt = 70; +HiveSql.RULE_package_body = 71; +HiveSql.RULE_package_body_item = 72; +HiveSql.RULE_create_procedure_stmt = 73; +HiveSql.RULE_create_routine_params = 74; +HiveSql.RULE_create_routine_param_item = 75; +HiveSql.RULE_create_routine_options = 76; +HiveSql.RULE_create_routine_option = 77; +HiveSql.RULE_drop_stmt = 78; +HiveSql.RULE_end_transaction_stmt = 79; +HiveSql.RULE_exec_stmt = 80; +HiveSql.RULE_if_stmt = 81; +HiveSql.RULE_if_plsql_stmt = 82; +HiveSql.RULE_if_tsql_stmt = 83; +HiveSql.RULE_if_bteq_stmt = 84; +HiveSql.RULE_elseif_block = 85; +HiveSql.RULE_else_block = 86; +HiveSql.RULE_include_stmt = 87; +HiveSql.RULE_insert_stmt = 88; +HiveSql.RULE_insert_stmt_cols = 89; +HiveSql.RULE_insert_stmt_rows = 90; +HiveSql.RULE_insert_stmt_row = 91; +HiveSql.RULE_insert_directory_stmt = 92; +HiveSql.RULE_exit_stmt = 93; +HiveSql.RULE_get_diag_stmt = 94; +HiveSql.RULE_get_diag_stmt_item = 95; +HiveSql.RULE_get_diag_stmt_exception_item = 96; +HiveSql.RULE_get_diag_stmt_rowcount_item = 97; +HiveSql.RULE_grant_stmt = 98; +HiveSql.RULE_grant_stmt_item = 99; +HiveSql.RULE_leave_stmt = 100; +HiveSql.RULE_map_object_stmt = 101; +HiveSql.RULE_open_stmt = 102; +HiveSql.RULE_fetch_stmt = 103; +HiveSql.RULE_collect_stats_stmt = 104; +HiveSql.RULE_collect_stats_clause = 105; +HiveSql.RULE_close_stmt = 106; +HiveSql.RULE_cmp_stmt = 107; +HiveSql.RULE_cmp_source = 108; +HiveSql.RULE_copy_from_local_stmt = 109; +HiveSql.RULE_copy_stmt = 110; +HiveSql.RULE_copy_source = 111; +HiveSql.RULE_copy_target = 112; +HiveSql.RULE_copy_option = 113; +HiveSql.RULE_copy_file_option = 114; +HiveSql.RULE_commit_stmt = 115; +HiveSql.RULE_create_index_stmt = 116; +HiveSql.RULE_create_index_col = 117; +HiveSql.RULE_index_storage_clause = 118; +HiveSql.RULE_index_mssql_storage_clause = 119; +HiveSql.RULE_print_stmt = 120; +HiveSql.RULE_quit_stmt = 121; +HiveSql.RULE_raise_stmt = 122; +HiveSql.RULE_resignal_stmt = 123; +HiveSql.RULE_return_stmt = 124; +HiveSql.RULE_rollback_stmt = 125; +HiveSql.RULE_set_session_option = 126; +HiveSql.RULE_set_current_schema_option = 127; +HiveSql.RULE_set_mssql_session_option = 128; +HiveSql.RULE_set_teradata_session_option = 129; +HiveSql.RULE_signal_stmt = 130; +HiveSql.RULE_summary_stmt = 131; +HiveSql.RULE_truncate_stmt = 132; +HiveSql.RULE_use_stmt = 133; +HiveSql.RULE_values_into_stmt = 134; +HiveSql.RULE_while_stmt = 135; +HiveSql.RULE_for_cursor_stmt = 136; +HiveSql.RULE_for_range_stmt = 137; +HiveSql.RULE_label = 138; +HiveSql.RULE_using_clause = 139; +HiveSql.RULE_select_stmt = 140; +HiveSql.RULE_cte_select_stmt = 141; +HiveSql.RULE_cte_select_stmt_item = 142; +HiveSql.RULE_cte_select_cols = 143; +HiveSql.RULE_fullselect_stmt = 144; +HiveSql.RULE_fullselect_stmt_item = 145; +HiveSql.RULE_fullselect_set_clause = 146; +HiveSql.RULE_subselect_stmt = 147; +HiveSql.RULE_select_list = 148; +HiveSql.RULE_select_list_set = 149; +HiveSql.RULE_select_list_limit = 150; +HiveSql.RULE_select_list_item = 151; +HiveSql.RULE_select_list_alias = 152; +HiveSql.RULE_select_list_asterisk = 153; +HiveSql.RULE_into_clause = 154; +HiveSql.RULE_from_clause = 155; +HiveSql.RULE_from_table_clause = 156; +HiveSql.RULE_from_table_name_clause = 157; +HiveSql.RULE_from_subselect_clause = 158; +HiveSql.RULE_from_join_clause = 159; +HiveSql.RULE_from_join_type_clause = 160; +HiveSql.RULE_from_table_values_clause = 161; +HiveSql.RULE_from_table_values_row = 162; +HiveSql.RULE_from_alias_clause = 163; +HiveSql.RULE_table_name = 164; +HiveSql.RULE_where_clause = 165; +HiveSql.RULE_group_by_clause = 166; +HiveSql.RULE_having_clause = 167; +HiveSql.RULE_qualify_clause = 168; +HiveSql.RULE_order_by_clause = 169; +HiveSql.RULE_select_options = 170; +HiveSql.RULE_select_options_item = 171; +HiveSql.RULE_update_stmt = 172; +HiveSql.RULE_update_assignment = 173; +HiveSql.RULE_update_table = 174; +HiveSql.RULE_update_upsert = 175; +HiveSql.RULE_merge_stmt = 176; +HiveSql.RULE_merge_table = 177; +HiveSql.RULE_merge_condition = 178; +HiveSql.RULE_merge_action = 179; +HiveSql.RULE_delete_stmt = 180; +HiveSql.RULE_delete_alias = 181; +HiveSql.RULE_describe_stmt = 182; +HiveSql.RULE_bool_expr = 183; +HiveSql.RULE_bool_expr_atom = 184; +HiveSql.RULE_bool_expr_unary = 185; +HiveSql.RULE_bool_expr_single_in = 186; +HiveSql.RULE_bool_expr_multi_in = 187; +HiveSql.RULE_bool_expr_binary = 188; +HiveSql.RULE_bool_expr_logical_operator = 189; +HiveSql.RULE_bool_expr_binary_operator = 190; +HiveSql.RULE_expr = 191; +HiveSql.RULE_expr_atom = 192; +HiveSql.RULE_expr_interval = 193; +HiveSql.RULE_interval_item = 194; +HiveSql.RULE_expr_concat = 195; +HiveSql.RULE_expr_concat_item = 196; +HiveSql.RULE_expr_case = 197; +HiveSql.RULE_expr_case_simple = 198; +HiveSql.RULE_expr_case_searched = 199; +HiveSql.RULE_expr_cursor_attribute = 200; +HiveSql.RULE_expr_agg_window_func = 201; +HiveSql.RULE_expr_func_all_distinct = 202; +HiveSql.RULE_expr_func_over_clause = 203; +HiveSql.RULE_expr_func_partition_by_clause = 204; +HiveSql.RULE_expr_spec_func = 205; +HiveSql.RULE_expr_func = 206; +HiveSql.RULE_expr_func_params = 207; +HiveSql.RULE_func_param = 208; +HiveSql.RULE_expr_select = 209; +HiveSql.RULE_expr_file = 210; +HiveSql.RULE_hive = 211; +HiveSql.RULE_hive_item = 212; +HiveSql.RULE_host = 213; +HiveSql.RULE_host_cmd = 214; +HiveSql.RULE_host_stmt = 215; +HiveSql.RULE_file_name = 216; +HiveSql.RULE_date_literal = 217; +HiveSql.RULE_timestamp_literal = 218; +HiveSql.RULE_ident = 219; +HiveSql.RULE_string = 220; +HiveSql.RULE_int_number = 221; +HiveSql.RULE_dec_number = 222; +HiveSql.RULE_bool_literal = 223; +HiveSql.RULE_null_const = 224; +HiveSql.RULE_non_reserved_words = 225; function ProgramContext(parser, parent, invokingState) { @@ -3220,7 +3266,7 @@ function ProgramContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_program; + this.ruleIndex = HiveSql.RULE_program; return this; } @@ -3232,7 +3278,7 @@ ProgramContext.prototype.block = function() { }; ProgramContext.prototype.EOF = function() { - return this.getToken(HiveSqlParser.EOF, 0); + return this.getToken(HiveSql.EOF, 0); }; ProgramContext.prototype.enterRule = function(listener) { @@ -3258,18 +3304,18 @@ ProgramContext.prototype.accept = function(visitor) { -HiveSqlParser.ProgramContext = ProgramContext; +HiveSql.ProgramContext = ProgramContext; -HiveSqlParser.prototype.program = function() { +HiveSql.prototype.program = function() { var localctx = new ProgramContext(this, this._ctx, this.state); - this.enterRule(localctx, 0, HiveSqlParser.RULE_program); + this.enterRule(localctx, 0, HiveSql.RULE_program); try { this.enterOuterAlt(localctx, 1); this.state = 452; this.block(); this.state = 453; - this.match(HiveSqlParser.EOF); + this.match(HiveSql.EOF); } catch (re) { if(re instanceof antlr4.error.RecognitionException) { localctx.exception = re; @@ -3294,7 +3340,7 @@ function BlockContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_block; + this.ruleIndex = HiveSql.RULE_block; return this; } @@ -3328,9 +3374,9 @@ BlockContext.prototype.T_GO = function(i) { i = null; } if(i===null) { - return this.getTokens(HiveSqlParser.T_GO); + return this.getTokens(HiveSql.T_GO); } else { - return this.getToken(HiveSqlParser.T_GO, i); + return this.getToken(HiveSql.T_GO, i); } }; @@ -3358,12 +3404,12 @@ BlockContext.prototype.accept = function(visitor) { -HiveSqlParser.BlockContext = BlockContext; +HiveSql.BlockContext = BlockContext; -HiveSqlParser.prototype.block = function() { +HiveSql.prototype.block = function() { var localctx = new BlockContext(this, this._ctx, this.state); - this.enterRule(localctx, 2, HiveSqlParser.RULE_block); + this.enterRule(localctx, 2, HiveSql.RULE_block); try { this.enterOuterAlt(localctx, 1); this.state = 462; @@ -3392,7 +3438,7 @@ HiveSqlParser.prototype.block = function() { var la_ = this._interp.adaptivePredict(this._input,1,this._ctx); if(la_===1) { this.state = 459; - this.match(HiveSqlParser.T_GO); + this.match(HiveSql.T_GO); } break; @@ -3427,7 +3473,7 @@ function Begin_end_blockContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_begin_end_block; + this.ruleIndex = HiveSql.RULE_begin_end_block; return this; } @@ -3435,7 +3481,7 @@ Begin_end_blockContext.prototype = Object.create(antlr4.ParserRuleContext.protot Begin_end_blockContext.prototype.constructor = Begin_end_blockContext; Begin_end_blockContext.prototype.T_BEGIN = function() { - return this.getToken(HiveSqlParser.T_BEGIN, 0); + return this.getToken(HiveSql.T_BEGIN, 0); }; Begin_end_blockContext.prototype.block = function() { @@ -3477,25 +3523,25 @@ Begin_end_blockContext.prototype.accept = function(visitor) { -HiveSqlParser.Begin_end_blockContext = Begin_end_blockContext; +HiveSql.Begin_end_blockContext = Begin_end_blockContext; -HiveSqlParser.prototype.begin_end_block = function() { +HiveSql.prototype.begin_end_block = function() { var localctx = new Begin_end_blockContext(this, this._ctx, this.state); - this.enterRule(localctx, 4, HiveSqlParser.RULE_begin_end_block); + this.enterRule(localctx, 4, HiveSql.RULE_begin_end_block); var _la = 0; // Token type try { this.enterOuterAlt(localctx, 1); this.state = 467; this._errHandler.sync(this); _la = this._input.LA(1); - if(_la===HiveSqlParser.T_DECLARE) { + if(_la===HiveSql.T_DECLARE) { this.state = 466; this.declare_block(); } this.state = 469; - this.match(HiveSqlParser.T_BEGIN); + this.match(HiveSql.T_BEGIN); this.state = 470; this.block(); this.state = 472; @@ -3532,7 +3578,7 @@ function Single_block_stmtContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_single_block_stmt; + this.ruleIndex = HiveSql.RULE_single_block_stmt; return this; } @@ -3540,7 +3586,7 @@ Single_block_stmtContext.prototype = Object.create(antlr4.ParserRuleContext.prot Single_block_stmtContext.prototype.constructor = Single_block_stmtContext; Single_block_stmtContext.prototype.T_BEGIN = function() { - return this.getToken(HiveSqlParser.T_BEGIN, 0); + return this.getToken(HiveSql.T_BEGIN, 0); }; Single_block_stmtContext.prototype.block = function() { @@ -3560,7 +3606,7 @@ Single_block_stmtContext.prototype.stmt = function() { }; Single_block_stmtContext.prototype.T_SEMICOLON = function() { - return this.getToken(HiveSqlParser.T_SEMICOLON, 0); + return this.getToken(HiveSql.T_SEMICOLON, 0); }; Single_block_stmtContext.prototype.enterRule = function(listener) { @@ -3586,12 +3632,12 @@ Single_block_stmtContext.prototype.accept = function(visitor) { -HiveSqlParser.Single_block_stmtContext = Single_block_stmtContext; +HiveSql.Single_block_stmtContext = Single_block_stmtContext; -HiveSqlParser.prototype.single_block_stmt = function() { +HiveSql.prototype.single_block_stmt = function() { var localctx = new Single_block_stmtContext(this, this._ctx, this.state); - this.enterRule(localctx, 6, HiveSqlParser.RULE_single_block_stmt); + this.enterRule(localctx, 6, HiveSql.RULE_single_block_stmt); try { this.state = 487; this._errHandler.sync(this); @@ -3600,7 +3646,7 @@ HiveSqlParser.prototype.single_block_stmt = function() { case 1: this.enterOuterAlt(localctx, 1); this.state = 476; - this.match(HiveSqlParser.T_BEGIN); + this.match(HiveSql.T_BEGIN); this.state = 477; this.block(); this.state = 479; @@ -3624,7 +3670,7 @@ HiveSqlParser.prototype.single_block_stmt = function() { var la_ = this._interp.adaptivePredict(this._input,6,this._ctx); if(la_===1) { this.state = 484; - this.match(HiveSqlParser.T_SEMICOLON); + this.match(HiveSql.T_SEMICOLON); } break; @@ -3654,7 +3700,7 @@ function Block_endContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_block_end; + this.ruleIndex = HiveSql.RULE_block_end; return this; } @@ -3662,7 +3708,7 @@ Block_endContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); Block_endContext.prototype.constructor = Block_endContext; Block_endContext.prototype.T_END = function() { - return this.getToken(HiveSqlParser.T_END, 0); + return this.getToken(HiveSql.T_END, 0); }; Block_endContext.prototype.enterRule = function(listener) { @@ -3688,20 +3734,20 @@ Block_endContext.prototype.accept = function(visitor) { -HiveSqlParser.Block_endContext = Block_endContext; +HiveSql.Block_endContext = Block_endContext; -HiveSqlParser.prototype.block_end = function() { +HiveSql.prototype.block_end = function() { var localctx = new Block_endContext(this, this._ctx, this.state); - this.enterRule(localctx, 8, HiveSqlParser.RULE_block_end); + this.enterRule(localctx, 8, HiveSql.RULE_block_end); try { this.enterOuterAlt(localctx, 1); this.state = 489; - if (!( !this._input.LT(2).getText().equalsIgnoreCase("TRANSACTION"))) { - throw new antlr4.error.FailedPredicateException(this, "!this._input.LT(2).getText().equalsIgnoreCase(\"TRANSACTION\")"); + if (!( !this._input.LT(2).text.toUpperCase() === "TRANSACTION")) { + throw new antlr4.error.FailedPredicateException(this, "!this._input.LT(2).text.toUpperCase() === \"TRANSACTION\""); } this.state = 490; - this.match(HiveSqlParser.T_END); + this.match(HiveSql.T_END); } catch (re) { if(re instanceof antlr4.error.RecognitionException) { localctx.exception = re; @@ -3726,7 +3772,7 @@ function Proc_blockContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_proc_block; + this.ruleIndex = HiveSql.RULE_proc_block; return this; } @@ -3749,7 +3795,7 @@ Proc_blockContext.prototype.stmt = function(i) { }; Proc_blockContext.prototype.T_GO = function() { - return this.getToken(HiveSqlParser.T_GO, 0); + return this.getToken(HiveSql.T_GO, 0); }; Proc_blockContext.prototype.enterRule = function(listener) { @@ -3775,12 +3821,12 @@ Proc_blockContext.prototype.accept = function(visitor) { -HiveSqlParser.Proc_blockContext = Proc_blockContext; +HiveSql.Proc_blockContext = Proc_blockContext; -HiveSqlParser.prototype.proc_block = function() { +HiveSql.prototype.proc_block = function() { var localctx = new Proc_blockContext(this, this._ctx, this.state); - this.enterRule(localctx, 10, HiveSqlParser.RULE_proc_block); + this.enterRule(localctx, 10, HiveSql.RULE_proc_block); try { this.state = 501; this._errHandler.sync(this); @@ -3815,7 +3861,7 @@ HiveSqlParser.prototype.proc_block = function() { var la_ = this._interp.adaptivePredict(this._input,9,this._ctx); if(la_===1) { this.state = 498; - this.match(HiveSqlParser.T_GO); + this.match(HiveSql.T_GO); } break; @@ -3845,7 +3891,7 @@ function StmtContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_stmt; + this.ruleIndex = HiveSql.RULE_stmt; return this; } @@ -4119,12 +4165,12 @@ StmtContext.prototype.accept = function(visitor) { -HiveSqlParser.StmtContext = StmtContext; +HiveSql.StmtContext = StmtContext; -HiveSqlParser.prototype.stmt = function() { +HiveSql.prototype.stmt = function() { var localctx = new StmtContext(this, this._ctx, this.state); - this.enterRule(localctx, 12, HiveSqlParser.RULE_stmt); + this.enterRule(localctx, 12, HiveSql.RULE_stmt); try { this.state = 564; this._errHandler.sync(this); @@ -4521,7 +4567,7 @@ function Semicolon_stmtContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_semicolon_stmt; + this.ruleIndex = HiveSql.RULE_semicolon_stmt; return this; } @@ -4529,7 +4575,19 @@ Semicolon_stmtContext.prototype = Object.create(antlr4.ParserRuleContext.prototy Semicolon_stmtContext.prototype.constructor = Semicolon_stmtContext; Semicolon_stmtContext.prototype.T_SEMICOLON = function() { - return this.getToken(HiveSqlParser.T_SEMICOLON, 0); + return this.getToken(HiveSql.T_SEMICOLON, 0); +}; + +Semicolon_stmtContext.prototype.T_CALLS = function() { + return this.getToken(HiveSql.T_CALLS, 0); +}; + +Semicolon_stmtContext.prototype.T_SHARP = function() { + return this.getToken(HiveSql.T_SHARP, 0); +}; + +Semicolon_stmtContext.prototype.T_DIV = function() { + return this.getToken(HiveSql.T_DIV, 0); }; Semicolon_stmtContext.prototype.enterRule = function(listener) { @@ -4555,18 +4613,18 @@ Semicolon_stmtContext.prototype.accept = function(visitor) { -HiveSqlParser.Semicolon_stmtContext = Semicolon_stmtContext; +HiveSql.Semicolon_stmtContext = Semicolon_stmtContext; -HiveSqlParser.prototype.semicolon_stmt = function() { +HiveSql.prototype.semicolon_stmt = function() { var localctx = new Semicolon_stmtContext(this, this._ctx, this.state); - this.enterRule(localctx, 14, HiveSqlParser.RULE_semicolon_stmt); + this.enterRule(localctx, 14, HiveSql.RULE_semicolon_stmt); var _la = 0; // Token type try { this.enterOuterAlt(localctx, 1); this.state = 566; _la = this._input.LA(1); - if(!((((_la) & ~0x1f) == 0 && ((1 << _la) & ((1 << HiveSqlParser.T__0) | (1 << HiveSqlParser.T__1) | (1 << HiveSqlParser.T__2) | (1 << HiveSqlParser.T_SEMICOLON))) !== 0))) { + if(!(((((_la - 343)) & ~0x1f) == 0 && ((1 << (_la - 343)) & ((1 << (HiveSql.T_DIV - 343)) | (1 << (HiveSql.T_SHARP - 343)) | (1 << (HiveSql.T_CALLS - 343)) | (1 << (HiveSql.T_SEMICOLON - 343)))) !== 0))) { this._errHandler.recoverInline(this); } else { @@ -4597,7 +4655,7 @@ function Exception_blockContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_exception_block; + this.ruleIndex = HiveSql.RULE_exception_block; return this; } @@ -4605,7 +4663,7 @@ Exception_blockContext.prototype = Object.create(antlr4.ParserRuleContext.protot Exception_blockContext.prototype.constructor = Exception_blockContext; Exception_blockContext.prototype.T_EXCEPTION = function() { - return this.getToken(HiveSqlParser.T_EXCEPTION, 0); + return this.getToken(HiveSql.T_EXCEPTION, 0); }; Exception_blockContext.prototype.exception_block_item = function(i) { @@ -4642,16 +4700,16 @@ Exception_blockContext.prototype.accept = function(visitor) { -HiveSqlParser.Exception_blockContext = Exception_blockContext; +HiveSql.Exception_blockContext = Exception_blockContext; -HiveSqlParser.prototype.exception_block = function() { +HiveSql.prototype.exception_block = function() { var localctx = new Exception_blockContext(this, this._ctx, this.state); - this.enterRule(localctx, 16, HiveSqlParser.RULE_exception_block); + this.enterRule(localctx, 16, HiveSql.RULE_exception_block); try { this.enterOuterAlt(localctx, 1); this.state = 568; - this.match(HiveSqlParser.T_EXCEPTION); + this.match(HiveSql.T_EXCEPTION); this.state = 570; this._errHandler.sync(this); var _alt = 1; @@ -4692,7 +4750,7 @@ function Exception_block_itemContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_exception_block_item; + this.ruleIndex = HiveSql.RULE_exception_block_item; return this; } @@ -4704,19 +4762,19 @@ Exception_block_itemContext.prototype.T_WHEN = function(i) { i = null; } if(i===null) { - return this.getTokens(HiveSqlParser.T_WHEN); + return this.getTokens(HiveSql.T_WHEN); } else { - return this.getToken(HiveSqlParser.T_WHEN, i); + return this.getToken(HiveSql.T_WHEN, i); } }; Exception_block_itemContext.prototype.L_ID = function() { - return this.getToken(HiveSqlParser.L_ID, 0); + return this.getToken(HiveSql.L_ID, 0); }; Exception_block_itemContext.prototype.T_THEN = function() { - return this.getToken(HiveSqlParser.T_THEN, 0); + return this.getToken(HiveSql.T_THEN, 0); }; Exception_block_itemContext.prototype.block = function() { @@ -4724,7 +4782,7 @@ Exception_block_itemContext.prototype.block = function() { }; Exception_block_itemContext.prototype.T_END = function() { - return this.getToken(HiveSqlParser.T_END, 0); + return this.getToken(HiveSql.T_END, 0); }; Exception_block_itemContext.prototype.enterRule = function(listener) { @@ -4750,26 +4808,26 @@ Exception_block_itemContext.prototype.accept = function(visitor) { -HiveSqlParser.Exception_block_itemContext = Exception_block_itemContext; +HiveSql.Exception_block_itemContext = Exception_block_itemContext; -HiveSqlParser.prototype.exception_block_item = function() { +HiveSql.prototype.exception_block_item = function() { var localctx = new Exception_block_itemContext(this, this._ctx, this.state); - this.enterRule(localctx, 18, HiveSqlParser.RULE_exception_block_item); + this.enterRule(localctx, 18, HiveSql.RULE_exception_block_item); var _la = 0; // Token type try { this.enterOuterAlt(localctx, 1); this.state = 574; - this.match(HiveSqlParser.T_WHEN); + this.match(HiveSql.T_WHEN); this.state = 575; - this.match(HiveSqlParser.L_ID); + this.match(HiveSql.L_ID); this.state = 576; - this.match(HiveSqlParser.T_THEN); + this.match(HiveSql.T_THEN); this.state = 577; this.block(); this.state = 578; _la = this._input.LA(1); - if(_la<=0 || _la===HiveSqlParser.T_END || _la===HiveSqlParser.T_WHEN) { + if(_la<=0 || _la===HiveSql.T_END || _la===HiveSql.T_WHEN) { this._errHandler.recoverInline(this); } else { @@ -4800,7 +4858,7 @@ function Null_stmtContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_null_stmt; + this.ruleIndex = HiveSql.RULE_null_stmt; return this; } @@ -4808,7 +4866,7 @@ Null_stmtContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); Null_stmtContext.prototype.constructor = Null_stmtContext; Null_stmtContext.prototype.T_NULL = function() { - return this.getToken(HiveSqlParser.T_NULL, 0); + return this.getToken(HiveSql.T_NULL, 0); }; Null_stmtContext.prototype.enterRule = function(listener) { @@ -4834,16 +4892,16 @@ Null_stmtContext.prototype.accept = function(visitor) { -HiveSqlParser.Null_stmtContext = Null_stmtContext; +HiveSql.Null_stmtContext = Null_stmtContext; -HiveSqlParser.prototype.null_stmt = function() { +HiveSql.prototype.null_stmt = function() { var localctx = new Null_stmtContext(this, this._ctx, this.state); - this.enterRule(localctx, 20, HiveSqlParser.RULE_null_stmt); + this.enterRule(localctx, 20, HiveSql.RULE_null_stmt); try { this.enterOuterAlt(localctx, 1); this.state = 580; - this.match(HiveSqlParser.T_NULL); + this.match(HiveSql.T_NULL); } catch (re) { if(re instanceof antlr4.error.RecognitionException) { localctx.exception = re; @@ -4868,7 +4926,7 @@ function Expr_stmtContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_expr_stmt; + this.ruleIndex = HiveSql.RULE_expr_stmt; return this; } @@ -4902,17 +4960,17 @@ Expr_stmtContext.prototype.accept = function(visitor) { -HiveSqlParser.Expr_stmtContext = Expr_stmtContext; +HiveSql.Expr_stmtContext = Expr_stmtContext; -HiveSqlParser.prototype.expr_stmt = function() { +HiveSql.prototype.expr_stmt = function() { var localctx = new Expr_stmtContext(this, this._ctx, this.state); - this.enterRule(localctx, 22, HiveSqlParser.RULE_expr_stmt); + this.enterRule(localctx, 22, HiveSql.RULE_expr_stmt); try { this.enterOuterAlt(localctx, 1); this.state = 582; - if (!( !this._input.LT(1).getText().equalsIgnoreCase("GO"))) { - throw new antlr4.error.FailedPredicateException(this, "!this._input.LT(1).getText().equalsIgnoreCase(\"GO\")"); + if (!( this._input.LT(1).text.toUpperCase() !== "GO")) { + throw new antlr4.error.FailedPredicateException(this, "this._input.LT(1).text.toUpperCase() !== \"GO\""); } this.state = 583; this.expr(0); @@ -4940,7 +4998,7 @@ function Assignment_stmtContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_assignment_stmt; + this.ruleIndex = HiveSql.RULE_assignment_stmt; return this; } @@ -4948,7 +5006,7 @@ Assignment_stmtContext.prototype = Object.create(antlr4.ParserRuleContext.protot Assignment_stmtContext.prototype.constructor = Assignment_stmtContext; Assignment_stmtContext.prototype.T_SET = function() { - return this.getToken(HiveSqlParser.T_SET, 0); + return this.getToken(HiveSql.T_SET, 0); }; Assignment_stmtContext.prototype.set_session_option = function() { @@ -4971,9 +5029,9 @@ Assignment_stmtContext.prototype.T_COMMA = function(i) { i = null; } if(i===null) { - return this.getTokens(HiveSqlParser.T_COMMA); + return this.getTokens(HiveSql.T_COMMA); } else { - return this.getToken(HiveSqlParser.T_COMMA, i); + return this.getToken(HiveSql.T_COMMA, i); } }; @@ -5001,12 +5059,12 @@ Assignment_stmtContext.prototype.accept = function(visitor) { -HiveSqlParser.Assignment_stmtContext = Assignment_stmtContext; +HiveSql.Assignment_stmtContext = Assignment_stmtContext; -HiveSqlParser.prototype.assignment_stmt = function() { +HiveSql.prototype.assignment_stmt = function() { var localctx = new Assignment_stmtContext(this, this._ctx, this.state); - this.enterRule(localctx, 24, HiveSqlParser.RULE_assignment_stmt); + this.enterRule(localctx, 24, HiveSql.RULE_assignment_stmt); try { this.state = 598; this._errHandler.sync(this); @@ -5015,7 +5073,7 @@ HiveSqlParser.prototype.assignment_stmt = function() { case 1: this.enterOuterAlt(localctx, 1); this.state = 585; - this.match(HiveSqlParser.T_SET); + this.match(HiveSql.T_SET); this.state = 586; this.set_session_option(); break; @@ -5027,7 +5085,7 @@ HiveSqlParser.prototype.assignment_stmt = function() { var la_ = this._interp.adaptivePredict(this._input,13,this._ctx); if(la_===1) { this.state = 587; - this.match(HiveSqlParser.T_SET); + this.match(HiveSql.T_SET); } this.state = 590; @@ -5038,7 +5096,7 @@ HiveSqlParser.prototype.assignment_stmt = function() { while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { if(_alt===1) { this.state = 591; - this.match(HiveSqlParser.T_COMMA); + this.match(HiveSql.T_COMMA); this.state = 592; this.assignment_stmt_item(); } @@ -5074,7 +5132,7 @@ function Assignment_stmt_itemContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_assignment_stmt_item; + this.ruleIndex = HiveSql.RULE_assignment_stmt_item; return this; } @@ -5116,12 +5174,12 @@ Assignment_stmt_itemContext.prototype.accept = function(visitor) { -HiveSqlParser.Assignment_stmt_itemContext = Assignment_stmt_itemContext; +HiveSql.Assignment_stmt_itemContext = Assignment_stmt_itemContext; -HiveSqlParser.prototype.assignment_stmt_item = function() { +HiveSql.prototype.assignment_stmt_item = function() { var localctx = new Assignment_stmt_itemContext(this, this._ctx, this.state); - this.enterRule(localctx, 26, HiveSqlParser.RULE_assignment_stmt_item); + this.enterRule(localctx, 26, HiveSql.RULE_assignment_stmt_item); try { this.state = 603; this._errHandler.sync(this); @@ -5170,7 +5228,7 @@ function Assignment_stmt_single_itemContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_assignment_stmt_single_item; + this.ruleIndex = HiveSql.RULE_assignment_stmt_single_item; return this; } @@ -5182,7 +5240,7 @@ Assignment_stmt_single_itemContext.prototype.ident = function() { }; Assignment_stmt_single_itemContext.prototype.T_EQUAL = function() { - return this.getToken(HiveSqlParser.T_EQUAL, 0); + return this.getToken(HiveSql.T_EQUAL, 0); }; Assignment_stmt_single_itemContext.prototype.expr = function() { @@ -5190,15 +5248,15 @@ Assignment_stmt_single_itemContext.prototype.expr = function() { }; Assignment_stmt_single_itemContext.prototype.T_COLON = function() { - return this.getToken(HiveSqlParser.T_COLON, 0); + return this.getToken(HiveSql.T_COLON, 0); }; Assignment_stmt_single_itemContext.prototype.T_OPEN_P = function() { - return this.getToken(HiveSqlParser.T_OPEN_P, 0); + return this.getToken(HiveSql.T_OPEN_P, 0); }; Assignment_stmt_single_itemContext.prototype.T_CLOSE_P = function() { - return this.getToken(HiveSqlParser.T_CLOSE_P, 0); + return this.getToken(HiveSql.T_CLOSE_P, 0); }; Assignment_stmt_single_itemContext.prototype.enterRule = function(listener) { @@ -5224,371 +5282,370 @@ Assignment_stmt_single_itemContext.prototype.accept = function(visitor) { -HiveSqlParser.Assignment_stmt_single_itemContext = Assignment_stmt_single_itemContext; +HiveSql.Assignment_stmt_single_itemContext = Assignment_stmt_single_itemContext; -HiveSqlParser.prototype.assignment_stmt_single_item = function() { +HiveSql.prototype.assignment_stmt_single_item = function() { var localctx = new Assignment_stmt_single_itemContext(this, this._ctx, this.state); - this.enterRule(localctx, 28, HiveSqlParser.RULE_assignment_stmt_single_item); + this.enterRule(localctx, 28, HiveSql.RULE_assignment_stmt_single_item); var _la = 0; // Token type try { this.state = 621; this._errHandler.sync(this); switch(this._input.LA(1)) { - case HiveSqlParser.T__8: - case HiveSqlParser.T_GO: - case HiveSqlParser.T_BEGIN: - case HiveSqlParser.T_EXCEPTION: - case HiveSqlParser.L_ID: - case HiveSqlParser.T_THEN: - case HiveSqlParser.T_SET: - case HiveSqlParser.T_ALLOCATE: - case HiveSqlParser.T_CURSOR: - case HiveSqlParser.T_FOR: - case HiveSqlParser.T_RESULT: - case HiveSqlParser.T_PROCEDURE: - case HiveSqlParser.T_ASSOCIATE: - case HiveSqlParser.T_LOCATOR: - case HiveSqlParser.T_LOCATORS: - case HiveSqlParser.T_WITH: - case HiveSqlParser.T_TRANSACTION: - case HiveSqlParser.T_BREAK: - case HiveSqlParser.T_CALL: - case HiveSqlParser.T_DECLARE: - case HiveSqlParser.T_AS: - case HiveSqlParser.T_CONSTANT: - case HiveSqlParser.T_CONDITION: - case HiveSqlParser.T_IS: - case HiveSqlParser.T_RETURN: - case HiveSqlParser.T_ONLY: - case HiveSqlParser.T_TO: - case HiveSqlParser.T_CALLER: - case HiveSqlParser.T_CLIENT: - case HiveSqlParser.T_WITHOUT: - case HiveSqlParser.T_CONTINUE: - case HiveSqlParser.T_EXIT: - case HiveSqlParser.T_HANDLER: - case HiveSqlParser.T_SQLEXCEPTION: - case HiveSqlParser.T_SQLWARNING: - case HiveSqlParser.T_NOT: - case HiveSqlParser.T_FOUND: - case HiveSqlParser.T_GLOBAL: - case HiveSqlParser.T_TEMPORARY: - case HiveSqlParser.T_TABLE: - case HiveSqlParser.T_CREATE: - case HiveSqlParser.T_IF: - case HiveSqlParser.T_EXISTS: - case HiveSqlParser.T_LOCAL: - case HiveSqlParser.T_MULTISET: - case HiveSqlParser.T_VOLATILE: - case HiveSqlParser.T_LIKE: - case HiveSqlParser.T_CONSTRAINT: - case HiveSqlParser.T_PRIMARY: - case HiveSqlParser.T_KEY: - case HiveSqlParser.T_UNIQUE: - case HiveSqlParser.T_REFERENCES: - case HiveSqlParser.T_IDENTITY: - case HiveSqlParser.T_AUTO_INCREMENT: - case HiveSqlParser.T_ENABLE: - case HiveSqlParser.T_CLUSTERED: - case HiveSqlParser.T_ASC: - case HiveSqlParser.T_DESC: - case HiveSqlParser.T_FOREIGN: - case HiveSqlParser.T_ON: - case HiveSqlParser.T_UPDATE: - case HiveSqlParser.T_DELETE: - case HiveSqlParser.T_NO: - case HiveSqlParser.T_ACTION: - case HiveSqlParser.T_RESTRICT: - case HiveSqlParser.T_DEFAULT: - case HiveSqlParser.T_CASCADE: - case HiveSqlParser.T_LOG: - case HiveSqlParser.T_FALLBACK: - case HiveSqlParser.T_COMMIT: - case HiveSqlParser.T_PRESERVE: - case HiveSqlParser.T_ROWS: - case HiveSqlParser.T_SEGMENT: - case HiveSqlParser.T_CREATION: - case HiveSqlParser.T_IMMEDIATE: - case HiveSqlParser.T_DEFERRED: - case HiveSqlParser.T_PCTFREE: - case HiveSqlParser.T_PCTUSED: - case HiveSqlParser.T_INITRANS: - case HiveSqlParser.T_MAXTRANS: - case HiveSqlParser.T_NOCOMPRESS: - case HiveSqlParser.T_LOGGING: - case HiveSqlParser.T_NOLOGGING: - case HiveSqlParser.T_STORAGE: - case HiveSqlParser.T_TABLESPACE: - case HiveSqlParser.T_INDEX: - case HiveSqlParser.T_IN: - case HiveSqlParser.T_REPLACE: - case HiveSqlParser.T_DISTRIBUTE: - case HiveSqlParser.T_BY: - case HiveSqlParser.T_HASH: - case HiveSqlParser.T_LOGGED: - case HiveSqlParser.T_COMPRESS: - case HiveSqlParser.T_YES: - case HiveSqlParser.T_DEFINITION: - case HiveSqlParser.T_DROP: - case HiveSqlParser.T_DATA: - case HiveSqlParser.T_STORED: - case HiveSqlParser.T_ROW: - case HiveSqlParser.T_FORMAT: - case HiveSqlParser.T_DELIMITED: - case HiveSqlParser.T_FIELDS: - case HiveSqlParser.T_TERMINATED: - case HiveSqlParser.T_ESCAPED: - case HiveSqlParser.T_COLLECTION: - case HiveSqlParser.T_ITEMS: - case HiveSqlParser.T_MAP: - case HiveSqlParser.T_KEYS: - case HiveSqlParser.T_LINES: - case HiveSqlParser.T_DEFINED: - case HiveSqlParser.T_TEXTIMAGE_ON: - case HiveSqlParser.T_COMMENT: - case HiveSqlParser.T_CHARACTER: - case HiveSqlParser.T_CHARSET: - case HiveSqlParser.T_ENGINE: - case HiveSqlParser.T_ALTER: - case HiveSqlParser.T_ADD2: - case HiveSqlParser.T_CHAR: - case HiveSqlParser.T_BIGINT: - case HiveSqlParser.T_BINARY_DOUBLE: - case HiveSqlParser.T_BINARY_FLOAT: - case HiveSqlParser.T_BIT: - case HiveSqlParser.T_DATE: - case HiveSqlParser.T_DATETIME: - case HiveSqlParser.T_DEC: - case HiveSqlParser.T_DECIMAL: - case HiveSqlParser.T_DOUBLE: - case HiveSqlParser.T_PRECISION: - case HiveSqlParser.T_FLOAT: - case HiveSqlParser.T_INT: - case HiveSqlParser.T_INT2: - case HiveSqlParser.T_INT4: - case HiveSqlParser.T_INT8: - case HiveSqlParser.T_INTEGER: - case HiveSqlParser.T_NCHAR: - case HiveSqlParser.T_NVARCHAR: - case HiveSqlParser.T_NUMBER: - case HiveSqlParser.T_NUMERIC: - case HiveSqlParser.T_REAL: - case HiveSqlParser.T_RESULT_SET_LOCATOR: - case HiveSqlParser.T_VARYING: - case HiveSqlParser.T_SIMPLE_FLOAT: - case HiveSqlParser.T_SIMPLE_DOUBLE: - case HiveSqlParser.T_SMALLINT: - case HiveSqlParser.T_SMALLDATETIME: - case HiveSqlParser.T_STRING: - case HiveSqlParser.T_SYS_REFCURSOR: - case HiveSqlParser.T_TIMESTAMP: - case HiveSqlParser.T_VARCHAR: - case HiveSqlParser.T_VARCHAR2: - case HiveSqlParser.T_XML: - case HiveSqlParser.T_MAX: - case HiveSqlParser.T_BYTE: - case HiveSqlParser.T_CASESPECIFIC: - case HiveSqlParser.T_CS: - case HiveSqlParser.T_DATABASE: - case HiveSqlParser.T_SCHEMA: - case HiveSqlParser.T_LOCATION: - case HiveSqlParser.T_OR: - case HiveSqlParser.T_FUNCTION: - case HiveSqlParser.T_RETURNS: - case HiveSqlParser.T_PACKAGE: - case HiveSqlParser.T_PROC: - case HiveSqlParser.T_BODY: - case HiveSqlParser.T_OUT: - case HiveSqlParser.T_INOUT: - case HiveSqlParser.T_LANGUAGE: - case HiveSqlParser.T_SQL: - case HiveSqlParser.T_SECURITY: - case HiveSqlParser.T_CREATOR: - case HiveSqlParser.T_DEFINER: - case HiveSqlParser.T_INVOKER: - case HiveSqlParser.T_OWNER: - case HiveSqlParser.T_DYNAMIC: - case HiveSqlParser.T_SETS: - case HiveSqlParser.T_EXEC: - case HiveSqlParser.T_EXECUTE: - case HiveSqlParser.T_INTO: - case HiveSqlParser.T_INCLUDE: - case HiveSqlParser.T_INSERT: - case HiveSqlParser.T_OVERWRITE: - case HiveSqlParser.T_VALUES: - case HiveSqlParser.T_DIRECTORY: - case HiveSqlParser.T_GET: - case HiveSqlParser.T_DIAGNOSTICS: - case HiveSqlParser.T_MESSAGE_TEXT: - case HiveSqlParser.T_ROW_COUNT: - case HiveSqlParser.T_GRANT: - case HiveSqlParser.T_ROLE: - case HiveSqlParser.T_LEAVE: - case HiveSqlParser.T_OBJECT: - case HiveSqlParser.T_AT: - case HiveSqlParser.T_OPEN: - case HiveSqlParser.T_FETCH: - case HiveSqlParser.T_FROM: - case HiveSqlParser.T_COLLECT: - case HiveSqlParser.T_STATISTICS: - case HiveSqlParser.T_STATS: - case HiveSqlParser.T_COLUMN: - case HiveSqlParser.T_CLOSE: - case HiveSqlParser.T_CMP: - case HiveSqlParser.T_SUM: - case HiveSqlParser.T_COPY: - case HiveSqlParser.T_HDFS: - case HiveSqlParser.T_BATCHSIZE: - case HiveSqlParser.T_DELIMITER: - case HiveSqlParser.T_SQLINSERT: - case HiveSqlParser.T_IGNORE: - case HiveSqlParser.T_WORK: - case HiveSqlParser.T_PRINT: - case HiveSqlParser.T_QUIT: - case HiveSqlParser.T_RAISE: - case HiveSqlParser.T_RESIGNAL: - case HiveSqlParser.T_SQLSTATE: - case HiveSqlParser.T_VALUE: - case HiveSqlParser.T_ROLLBACK: - case HiveSqlParser.T_CURRENT: - case HiveSqlParser.T_CURRENT_SCHEMA: - case HiveSqlParser.T_ANSI_NULLS: - case HiveSqlParser.T_ANSI_PADDING: - case HiveSqlParser.T_NOCOUNT: - case HiveSqlParser.T_QUOTED_IDENTIFIER: - case HiveSqlParser.T_XACT_ABORT: - case HiveSqlParser.T_OFF: - case HiveSqlParser.T_QUERY_BAND: - case HiveSqlParser.T_NONE: - case HiveSqlParser.T_SESSION: - case HiveSqlParser.T_SIGNAL: - case HiveSqlParser.T_SUMMARY: - case HiveSqlParser.T_TOP: - case HiveSqlParser.T_LIMIT: - case HiveSqlParser.T_TRUNCATE: - case HiveSqlParser.T_USE: - case HiveSqlParser.T_WHILE: - case HiveSqlParser.T_DO: - case HiveSqlParser.T_LOOP: - case HiveSqlParser.T_REVERSE: - case HiveSqlParser.T_STEP: - case HiveSqlParser.T_USING: - case HiveSqlParser.T_ALL: - case HiveSqlParser.T_EXCEPT: - case HiveSqlParser.T_INTERSECT: - case HiveSqlParser.T_SELECT: - case HiveSqlParser.T_SEL: - case HiveSqlParser.T_DISTINCT: - case HiveSqlParser.T_TITLE: - case HiveSqlParser.T_INNER: - case HiveSqlParser.T_JOIN: - case HiveSqlParser.T_LEFT: - case HiveSqlParser.T_RIGHT: - case HiveSqlParser.T_FULL: - case HiveSqlParser.T_OUTER: - case HiveSqlParser.T_GROUP: - case HiveSqlParser.T_HAVING: - case HiveSqlParser.T_QUALIFY: - case HiveSqlParser.T_ORDER: - case HiveSqlParser.T_RR: - case HiveSqlParser.T_RS: - case HiveSqlParser.T_UR: - case HiveSqlParser.T_AND: - case HiveSqlParser.T_KEEP: - case HiveSqlParser.T_EXCLUSIVE: - case HiveSqlParser.T_SHARE: - case HiveSqlParser.T_LOCKS: - case HiveSqlParser.T_MERGE: - case HiveSqlParser.T_MATCHED: - case HiveSqlParser.T_DESCRIBE: - case HiveSqlParser.T_BETWEEN: - case HiveSqlParser.T_RLIKE: - case HiveSqlParser.T_REGEXP: - case HiveSqlParser.T_INTERVAL: - case HiveSqlParser.T_DAY: - case HiveSqlParser.T_DAYS: - case HiveSqlParser.T_MICROSECOND: - case HiveSqlParser.T_MICROSECONDS: - case HiveSqlParser.T_SECOND: - case HiveSqlParser.T_SECONDS: - case HiveSqlParser.T_CONCAT: - case HiveSqlParser.T_CASE: - case HiveSqlParser.T_ISOPEN: - case HiveSqlParser.T_NOTFOUND: - case HiveSqlParser.T_AVG: - case HiveSqlParser.T_COUNT: - case HiveSqlParser.T_COUNT_BIG: - case HiveSqlParser.T_CUME_DIST: - case HiveSqlParser.T_DENSE_RANK: - case HiveSqlParser.T_FIRST_VALUE: - case HiveSqlParser.T_LAG: - case HiveSqlParser.T_LAST_VALUE: - case HiveSqlParser.T_LEAD: - case HiveSqlParser.T_MIN: - case HiveSqlParser.T_RANK: - case HiveSqlParser.T_ROW_NUMBER: - case HiveSqlParser.T_STDEV: - case HiveSqlParser.T_VAR: - case HiveSqlParser.T_VARIANCE: - case HiveSqlParser.T_OVER: - case HiveSqlParser.T_PARTITION: - case HiveSqlParser.T_ACTIVITY_COUNT: - case HiveSqlParser.T_CAST: - case HiveSqlParser.T_CURRENT_DATE: - case HiveSqlParser.T_CURRENT_TIMESTAMP: - case HiveSqlParser.T_CURRENT_USER: - case HiveSqlParser.T_USER: - case HiveSqlParser.T_PART_COUNT: - case HiveSqlParser.T_PART_LOC: - case HiveSqlParser.T_TRIM: - case HiveSqlParser.T_SUBSTRING: - case HiveSqlParser.T_SYSDATE: - case HiveSqlParser.T_HIVE: - case HiveSqlParser.T_HOST: - case HiveSqlParser.T_TRUE: - case HiveSqlParser.T_FALSE: - case HiveSqlParser.T_DIR: - case HiveSqlParser.T_FILE: - case HiveSqlParser.T_FILES: - case HiveSqlParser.T_NEW: - case HiveSqlParser.T_PWD: - case HiveSqlParser.T_SESSIONS: - case HiveSqlParser.T_SUBDIR: + case HiveSql.T_ACTION: + case HiveSql.T_ADD2: + case HiveSql.T_ALL: + case HiveSql.T_ALLOCATE: + case HiveSql.T_ALTER: + case HiveSql.T_AND: + case HiveSql.T_ANSI_NULLS: + case HiveSql.T_ANSI_PADDING: + case HiveSql.T_AS: + case HiveSql.T_ASC: + case HiveSql.T_ASSOCIATE: + case HiveSql.T_AT: + case HiveSql.T_AUTO_INCREMENT: + case HiveSql.T_AVG: + case HiveSql.T_BATCHSIZE: + case HiveSql.T_BEGIN: + case HiveSql.T_BETWEEN: + case HiveSql.T_BIGINT: + case HiveSql.T_BINARY_DOUBLE: + case HiveSql.T_BINARY_FLOAT: + case HiveSql.T_BIT: + case HiveSql.T_BODY: + case HiveSql.T_BREAK: + case HiveSql.T_BY: + case HiveSql.T_BYTE: + case HiveSql.T_CALL: + case HiveSql.T_CALLER: + case HiveSql.T_CASCADE: + case HiveSql.T_CASE: + case HiveSql.T_CASESPECIFIC: + case HiveSql.T_CAST: + case HiveSql.T_CHAR: + case HiveSql.T_CHARACTER: + case HiveSql.T_CHARSET: + case HiveSql.T_CLIENT: + case HiveSql.T_CLOSE: + case HiveSql.T_CLUSTERED: + case HiveSql.T_CMP: + case HiveSql.T_COLLECT: + case HiveSql.T_COLLECTION: + case HiveSql.T_COLUMN: + case HiveSql.T_COMMENT: + case HiveSql.T_CONSTANT: + case HiveSql.T_COMMIT: + case HiveSql.T_COMPRESS: + case HiveSql.T_CONCAT: + case HiveSql.T_CONDITION: + case HiveSql.T_CONSTRAINT: + case HiveSql.T_CONTINUE: + case HiveSql.T_COPY: + case HiveSql.T_COUNT: + case HiveSql.T_COUNT_BIG: + case HiveSql.T_CREATE: + case HiveSql.T_CREATION: + case HiveSql.T_CREATOR: + case HiveSql.T_CS: + case HiveSql.T_CURRENT: + case HiveSql.T_CURRENT_SCHEMA: + case HiveSql.T_CURSOR: + case HiveSql.T_DATABASE: + case HiveSql.T_DATA: + case HiveSql.T_DATE: + case HiveSql.T_DATETIME: + case HiveSql.T_DAY: + case HiveSql.T_DAYS: + case HiveSql.T_DEC: + case HiveSql.T_DECIMAL: + case HiveSql.T_DECLARE: + case HiveSql.T_DEFAULT: + case HiveSql.T_DEFERRED: + case HiveSql.T_DEFINED: + case HiveSql.T_DEFINER: + case HiveSql.T_DEFINITION: + case HiveSql.T_DELETE: + case HiveSql.T_DELIMITED: + case HiveSql.T_DELIMITER: + case HiveSql.T_DESC: + case HiveSql.T_DESCRIBE: + case HiveSql.T_DIAGNOSTICS: + case HiveSql.T_DIR: + case HiveSql.T_DIRECTORY: + case HiveSql.T_DISTINCT: + case HiveSql.T_DISTRIBUTE: + case HiveSql.T_DO: + case HiveSql.T_DOUBLE: + case HiveSql.T_DROP: + case HiveSql.T_DYNAMIC: + case HiveSql.T_ENABLE: + case HiveSql.T_ENGINE: + case HiveSql.T_ESCAPED: + case HiveSql.T_EXCEPT: + case HiveSql.T_EXEC: + case HiveSql.T_EXECUTE: + case HiveSql.T_EXCEPTION: + case HiveSql.T_EXCLUSIVE: + case HiveSql.T_EXISTS: + case HiveSql.T_EXIT: + case HiveSql.T_FALLBACK: + case HiveSql.T_FALSE: + case HiveSql.T_FETCH: + case HiveSql.T_FIELDS: + case HiveSql.T_FILE: + case HiveSql.T_FILES: + case HiveSql.T_FLOAT: + case HiveSql.T_FOR: + case HiveSql.T_FOREIGN: + case HiveSql.T_FORMAT: + case HiveSql.T_FOUND: + case HiveSql.T_FROM: + case HiveSql.T_FULL: + case HiveSql.T_FUNCTION: + case HiveSql.T_GET: + case HiveSql.T_GLOBAL: + case HiveSql.T_GO: + case HiveSql.T_GRANT: + case HiveSql.T_GROUP: + case HiveSql.T_HANDLER: + case HiveSql.T_HASH: + case HiveSql.T_HAVING: + case HiveSql.T_HDFS: + case HiveSql.T_HIVE: + case HiveSql.T_HOST: + case HiveSql.T_IDENTITY: + case HiveSql.T_IF: + case HiveSql.T_IGNORE: + case HiveSql.T_IMMEDIATE: + case HiveSql.T_IN: + case HiveSql.T_INCLUDE: + case HiveSql.T_INDEX: + case HiveSql.T_INITRANS: + case HiveSql.T_INNER: + case HiveSql.T_INOUT: + case HiveSql.T_INSERT: + case HiveSql.T_INT: + case HiveSql.T_INT2: + case HiveSql.T_INT4: + case HiveSql.T_INT8: + case HiveSql.T_INTEGER: + case HiveSql.T_INTERSECT: + case HiveSql.T_INTERVAL: + case HiveSql.T_INTO: + case HiveSql.T_INVOKER: + case HiveSql.T_IS: + case HiveSql.T_ISOPEN: + case HiveSql.T_ITEMS: + case HiveSql.T_JOIN: + case HiveSql.T_KEEP: + case HiveSql.T_KEY: + case HiveSql.T_KEYS: + case HiveSql.T_LANGUAGE: + case HiveSql.T_LEAVE: + case HiveSql.T_LEFT: + case HiveSql.T_LIKE: + case HiveSql.T_LIMIT: + case HiveSql.T_LINES: + case HiveSql.T_LOCAL: + case HiveSql.T_LOCATION: + case HiveSql.T_LOCATOR: + case HiveSql.T_LOCATORS: + case HiveSql.T_LOCKS: + case HiveSql.T_LOG: + case HiveSql.T_LOGGED: + case HiveSql.T_LOGGING: + case HiveSql.T_LOOP: + case HiveSql.T_MAP: + case HiveSql.T_MATCHED: + case HiveSql.T_MAX: + case HiveSql.T_MAXTRANS: + case HiveSql.T_MERGE: + case HiveSql.T_MESSAGE_TEXT: + case HiveSql.T_MICROSECOND: + case HiveSql.T_MICROSECONDS: + case HiveSql.T_MIN: + case HiveSql.T_MULTISET: + case HiveSql.T_NCHAR: + case HiveSql.T_NEW: + case HiveSql.T_NVARCHAR: + case HiveSql.T_NO: + case HiveSql.T_NOCOUNT: + case HiveSql.T_NOCOMPRESS: + case HiveSql.T_NOLOGGING: + case HiveSql.T_NONE: + case HiveSql.T_NOT: + case HiveSql.T_NOTFOUND: + case HiveSql.T_NUMERIC: + case HiveSql.T_NUMBER: + case HiveSql.T_OBJECT: + case HiveSql.T_OFF: + case HiveSql.T_ON: + case HiveSql.T_ONLY: + case HiveSql.T_OPEN: + case HiveSql.T_OR: + case HiveSql.T_ORDER: + case HiveSql.T_OUT: + case HiveSql.T_OUTER: + case HiveSql.T_OVER: + case HiveSql.T_OVERWRITE: + case HiveSql.T_OWNER: + case HiveSql.T_PACKAGE: + case HiveSql.T_PARTITION: + case HiveSql.T_PCTFREE: + case HiveSql.T_PCTUSED: + case HiveSql.T_PRECISION: + case HiveSql.T_PRESERVE: + case HiveSql.T_PRIMARY: + case HiveSql.T_PRINT: + case HiveSql.T_PROC: + case HiveSql.T_PROCEDURE: + case HiveSql.T_QUALIFY: + case HiveSql.T_QUERY_BAND: + case HiveSql.T_QUIT: + case HiveSql.T_QUOTED_IDENTIFIER: + case HiveSql.T_RAISE: + case HiveSql.T_REAL: + case HiveSql.T_REFERENCES: + case HiveSql.T_REGEXP: + case HiveSql.T_REPLACE: + case HiveSql.T_RESIGNAL: + case HiveSql.T_RESTRICT: + case HiveSql.T_RESULT: + case HiveSql.T_RESULT_SET_LOCATOR: + case HiveSql.T_RETURN: + case HiveSql.T_RETURNS: + case HiveSql.T_REVERSE: + case HiveSql.T_RIGHT: + case HiveSql.T_RLIKE: + case HiveSql.T_ROLE: + case HiveSql.T_ROLLBACK: + case HiveSql.T_ROW: + case HiveSql.T_ROWS: + case HiveSql.T_ROW_COUNT: + case HiveSql.T_RR: + case HiveSql.T_RS: + case HiveSql.T_PWD: + case HiveSql.T_TRIM: + case HiveSql.T_SCHEMA: + case HiveSql.T_SECOND: + case HiveSql.T_SECONDS: + case HiveSql.T_SECURITY: + case HiveSql.T_SEGMENT: + case HiveSql.T_SEL: + case HiveSql.T_SELECT: + case HiveSql.T_SET: + case HiveSql.T_SESSION: + case HiveSql.T_SESSIONS: + case HiveSql.T_SETS: + case HiveSql.T_SHARE: + case HiveSql.T_SIGNAL: + case HiveSql.T_SIMPLE_DOUBLE: + case HiveSql.T_SIMPLE_FLOAT: + case HiveSql.T_SMALLDATETIME: + case HiveSql.T_SMALLINT: + case HiveSql.T_SQL: + case HiveSql.T_SQLEXCEPTION: + case HiveSql.T_SQLINSERT: + case HiveSql.T_SQLSTATE: + case HiveSql.T_SQLWARNING: + case HiveSql.T_STATS: + case HiveSql.T_STATISTICS: + case HiveSql.T_STEP: + case HiveSql.T_STORAGE: + case HiveSql.T_STORED: + case HiveSql.T_STRING: + case HiveSql.T_SUBDIR: + case HiveSql.T_SUBSTRING: + case HiveSql.T_SUM: + case HiveSql.T_SUMMARY: + case HiveSql.T_SYS_REFCURSOR: + case HiveSql.T_TABLE: + case HiveSql.T_TABLESPACE: + case HiveSql.T_TEMPORARY: + case HiveSql.T_TERMINATED: + case HiveSql.T_TEXTIMAGE_ON: + case HiveSql.T_THEN: + case HiveSql.T_TIMESTAMP: + case HiveSql.T_TITLE: + case HiveSql.T_TO: + case HiveSql.T_TOP: + case HiveSql.T_TRANSACTION: + case HiveSql.T_TRUE: + case HiveSql.T_TRUNCATE: + case HiveSql.T_UNIQUE: + case HiveSql.T_UPDATE: + case HiveSql.T_UR: + case HiveSql.T_USE: + case HiveSql.T_USING: + case HiveSql.T_VALUE: + case HiveSql.T_VALUES: + case HiveSql.T_VAR: + case HiveSql.T_VARCHAR: + case HiveSql.T_VARCHAR2: + case HiveSql.T_VARYING: + case HiveSql.T_VOLATILE: + case HiveSql.T_WHILE: + case HiveSql.T_WITH: + case HiveSql.T_WITHOUT: + case HiveSql.T_WORK: + case HiveSql.T_XACT_ABORT: + case HiveSql.T_XML: + case HiveSql.T_YES: + case HiveSql.T_ACTIVITY_COUNT: + case HiveSql.T_CUME_DIST: + case HiveSql.T_CURRENT_DATE: + case HiveSql.T_CURRENT_TIMESTAMP: + case HiveSql.T_CURRENT_USER: + case HiveSql.T_DENSE_RANK: + case HiveSql.T_FIRST_VALUE: + case HiveSql.T_LAG: + case HiveSql.T_LAST_VALUE: + case HiveSql.T_LEAD: + case HiveSql.T_PART_COUNT: + case HiveSql.T_PART_LOC: + case HiveSql.T_RANK: + case HiveSql.T_ROW_NUMBER: + case HiveSql.T_STDEV: + case HiveSql.T_SYSDATE: + case HiveSql.T_VARIANCE: + case HiveSql.T_USER: + case HiveSql.L_ID: this.enterOuterAlt(localctx, 1); this.state = 605; this.ident(); this.state = 607; this._errHandler.sync(this); _la = this._input.LA(1); - if(_la===HiveSqlParser.T_COLON) { + if(_la===HiveSql.T_COLON) { this.state = 606; - this.match(HiveSqlParser.T_COLON); + this.match(HiveSql.T_COLON); } this.state = 609; - this.match(HiveSqlParser.T_EQUAL); + this.match(HiveSql.T_EQUAL); this.state = 610; this.expr(0); break; - case HiveSqlParser.T_OPEN_P: + case HiveSql.T_OPEN_P: this.enterOuterAlt(localctx, 2); this.state = 612; - this.match(HiveSqlParser.T_OPEN_P); + this.match(HiveSql.T_OPEN_P); this.state = 613; this.ident(); this.state = 614; - this.match(HiveSqlParser.T_CLOSE_P); + this.match(HiveSql.T_CLOSE_P); this.state = 616; this._errHandler.sync(this); _la = this._input.LA(1); - if(_la===HiveSqlParser.T_COLON) { + if(_la===HiveSql.T_COLON) { this.state = 615; - this.match(HiveSqlParser.T_COLON); + this.match(HiveSql.T_COLON); } this.state = 618; - this.match(HiveSqlParser.T_EQUAL); + this.match(HiveSql.T_EQUAL); this.state = 619; this.expr(0); break; @@ -5619,7 +5676,7 @@ function Assignment_stmt_multiple_itemContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_assignment_stmt_multiple_item; + this.ruleIndex = HiveSql.RULE_assignment_stmt_multiple_item; return this; } @@ -5631,9 +5688,9 @@ Assignment_stmt_multiple_itemContext.prototype.T_OPEN_P = function(i) { i = null; } if(i===null) { - return this.getTokens(HiveSqlParser.T_OPEN_P); + return this.getTokens(HiveSql.T_OPEN_P); } else { - return this.getToken(HiveSqlParser.T_OPEN_P, i); + return this.getToken(HiveSql.T_OPEN_P, i); } }; @@ -5654,15 +5711,15 @@ Assignment_stmt_multiple_itemContext.prototype.T_CLOSE_P = function(i) { i = null; } if(i===null) { - return this.getTokens(HiveSqlParser.T_CLOSE_P); + return this.getTokens(HiveSql.T_CLOSE_P); } else { - return this.getToken(HiveSqlParser.T_CLOSE_P, i); + return this.getToken(HiveSql.T_CLOSE_P, i); } }; Assignment_stmt_multiple_itemContext.prototype.T_EQUAL = function() { - return this.getToken(HiveSqlParser.T_EQUAL, 0); + return this.getToken(HiveSql.T_EQUAL, 0); }; Assignment_stmt_multiple_itemContext.prototype.expr = function(i) { @@ -5681,15 +5738,15 @@ Assignment_stmt_multiple_itemContext.prototype.T_COMMA = function(i) { i = null; } if(i===null) { - return this.getTokens(HiveSqlParser.T_COMMA); + return this.getTokens(HiveSql.T_COMMA); } else { - return this.getToken(HiveSqlParser.T_COMMA, i); + return this.getToken(HiveSql.T_COMMA, i); } }; Assignment_stmt_multiple_itemContext.prototype.T_COLON = function() { - return this.getToken(HiveSqlParser.T_COLON, 0); + return this.getToken(HiveSql.T_COLON, 0); }; Assignment_stmt_multiple_itemContext.prototype.enterRule = function(listener) { @@ -5715,25 +5772,25 @@ Assignment_stmt_multiple_itemContext.prototype.accept = function(visitor) { -HiveSqlParser.Assignment_stmt_multiple_itemContext = Assignment_stmt_multiple_itemContext; +HiveSql.Assignment_stmt_multiple_itemContext = Assignment_stmt_multiple_itemContext; -HiveSqlParser.prototype.assignment_stmt_multiple_item = function() { +HiveSql.prototype.assignment_stmt_multiple_item = function() { var localctx = new Assignment_stmt_multiple_itemContext(this, this._ctx, this.state); - this.enterRule(localctx, 30, HiveSqlParser.RULE_assignment_stmt_multiple_item); + this.enterRule(localctx, 30, HiveSql.RULE_assignment_stmt_multiple_item); var _la = 0; // Token type try { this.enterOuterAlt(localctx, 1); this.state = 623; - this.match(HiveSqlParser.T_OPEN_P); + this.match(HiveSql.T_OPEN_P); this.state = 624; this.ident(); this.state = 629; this._errHandler.sync(this); _la = this._input.LA(1); - while(_la===HiveSqlParser.T_COMMA) { + while(_la===HiveSql.T_COMMA) { this.state = 625; - this.match(HiveSqlParser.T_COMMA); + this.match(HiveSql.T_COMMA); this.state = 626; this.ident(); this.state = 631; @@ -5741,27 +5798,27 @@ HiveSqlParser.prototype.assignment_stmt_multiple_item = function() { _la = this._input.LA(1); } this.state = 632; - this.match(HiveSqlParser.T_CLOSE_P); + this.match(HiveSql.T_CLOSE_P); this.state = 634; this._errHandler.sync(this); _la = this._input.LA(1); - if(_la===HiveSqlParser.T_COLON) { + if(_la===HiveSql.T_COLON) { this.state = 633; - this.match(HiveSqlParser.T_COLON); + this.match(HiveSql.T_COLON); } this.state = 636; - this.match(HiveSqlParser.T_EQUAL); + this.match(HiveSql.T_EQUAL); this.state = 637; - this.match(HiveSqlParser.T_OPEN_P); + this.match(HiveSql.T_OPEN_P); this.state = 638; this.expr(0); this.state = 643; this._errHandler.sync(this); _la = this._input.LA(1); - while(_la===HiveSqlParser.T_COMMA) { + while(_la===HiveSql.T_COMMA) { this.state = 639; - this.match(HiveSqlParser.T_COMMA); + this.match(HiveSql.T_COMMA); this.state = 640; this.expr(0); this.state = 645; @@ -5769,7 +5826,7 @@ HiveSqlParser.prototype.assignment_stmt_multiple_item = function() { _la = this._input.LA(1); } this.state = 646; - this.match(HiveSqlParser.T_CLOSE_P); + this.match(HiveSql.T_CLOSE_P); } catch (re) { if(re instanceof antlr4.error.RecognitionException) { localctx.exception = re; @@ -5794,7 +5851,7 @@ function Assignment_stmt_select_itemContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_assignment_stmt_select_item; + this.ruleIndex = HiveSql.RULE_assignment_stmt_select_item; return this; } @@ -5802,7 +5859,7 @@ Assignment_stmt_select_itemContext.prototype = Object.create(antlr4.ParserRuleCo Assignment_stmt_select_itemContext.prototype.constructor = Assignment_stmt_select_itemContext; Assignment_stmt_select_itemContext.prototype.T_EQUAL = function() { - return this.getToken(HiveSqlParser.T_EQUAL, 0); + return this.getToken(HiveSql.T_EQUAL, 0); }; Assignment_stmt_select_itemContext.prototype.T_OPEN_P = function(i) { @@ -5810,9 +5867,9 @@ Assignment_stmt_select_itemContext.prototype.T_OPEN_P = function(i) { i = null; } if(i===null) { - return this.getTokens(HiveSqlParser.T_OPEN_P); + return this.getTokens(HiveSql.T_OPEN_P); } else { - return this.getToken(HiveSqlParser.T_OPEN_P, i); + return this.getToken(HiveSql.T_OPEN_P, i); } }; @@ -5826,9 +5883,9 @@ Assignment_stmt_select_itemContext.prototype.T_CLOSE_P = function(i) { i = null; } if(i===null) { - return this.getTokens(HiveSqlParser.T_CLOSE_P); + return this.getTokens(HiveSql.T_CLOSE_P); } else { - return this.getToken(HiveSqlParser.T_CLOSE_P, i); + return this.getToken(HiveSql.T_CLOSE_P, i); } }; @@ -5845,7 +5902,7 @@ Assignment_stmt_select_itemContext.prototype.ident = function(i) { }; Assignment_stmt_select_itemContext.prototype.T_COLON = function() { - return this.getToken(HiveSqlParser.T_COLON, 0); + return this.getToken(HiveSql.T_COLON, 0); }; Assignment_stmt_select_itemContext.prototype.T_COMMA = function(i) { @@ -5853,9 +5910,9 @@ Assignment_stmt_select_itemContext.prototype.T_COMMA = function(i) { i = null; } if(i===null) { - return this.getTokens(HiveSqlParser.T_COMMA); + return this.getTokens(HiveSql.T_COMMA); } else { - return this.getToken(HiveSqlParser.T_COMMA, i); + return this.getToken(HiveSql.T_COMMA, i); } }; @@ -5883,352 +5940,351 @@ Assignment_stmt_select_itemContext.prototype.accept = function(visitor) { -HiveSqlParser.Assignment_stmt_select_itemContext = Assignment_stmt_select_itemContext; +HiveSql.Assignment_stmt_select_itemContext = Assignment_stmt_select_itemContext; -HiveSqlParser.prototype.assignment_stmt_select_item = function() { +HiveSql.prototype.assignment_stmt_select_item = function() { var localctx = new Assignment_stmt_select_itemContext(this, this._ctx, this.state); - this.enterRule(localctx, 32, HiveSqlParser.RULE_assignment_stmt_select_item); + this.enterRule(localctx, 32, HiveSql.RULE_assignment_stmt_select_item); var _la = 0; // Token type try { this.enterOuterAlt(localctx, 1); this.state = 660; this._errHandler.sync(this); switch(this._input.LA(1)) { - case HiveSqlParser.T__8: - case HiveSqlParser.T_GO: - case HiveSqlParser.T_BEGIN: - case HiveSqlParser.T_EXCEPTION: - case HiveSqlParser.L_ID: - case HiveSqlParser.T_THEN: - case HiveSqlParser.T_SET: - case HiveSqlParser.T_ALLOCATE: - case HiveSqlParser.T_CURSOR: - case HiveSqlParser.T_FOR: - case HiveSqlParser.T_RESULT: - case HiveSqlParser.T_PROCEDURE: - case HiveSqlParser.T_ASSOCIATE: - case HiveSqlParser.T_LOCATOR: - case HiveSqlParser.T_LOCATORS: - case HiveSqlParser.T_WITH: - case HiveSqlParser.T_TRANSACTION: - case HiveSqlParser.T_BREAK: - case HiveSqlParser.T_CALL: - case HiveSqlParser.T_DECLARE: - case HiveSqlParser.T_AS: - case HiveSqlParser.T_CONSTANT: - case HiveSqlParser.T_CONDITION: - case HiveSqlParser.T_IS: - case HiveSqlParser.T_RETURN: - case HiveSqlParser.T_ONLY: - case HiveSqlParser.T_TO: - case HiveSqlParser.T_CALLER: - case HiveSqlParser.T_CLIENT: - case HiveSqlParser.T_WITHOUT: - case HiveSqlParser.T_CONTINUE: - case HiveSqlParser.T_EXIT: - case HiveSqlParser.T_HANDLER: - case HiveSqlParser.T_SQLEXCEPTION: - case HiveSqlParser.T_SQLWARNING: - case HiveSqlParser.T_NOT: - case HiveSqlParser.T_FOUND: - case HiveSqlParser.T_GLOBAL: - case HiveSqlParser.T_TEMPORARY: - case HiveSqlParser.T_TABLE: - case HiveSqlParser.T_CREATE: - case HiveSqlParser.T_IF: - case HiveSqlParser.T_EXISTS: - case HiveSqlParser.T_LOCAL: - case HiveSqlParser.T_MULTISET: - case HiveSqlParser.T_VOLATILE: - case HiveSqlParser.T_LIKE: - case HiveSqlParser.T_CONSTRAINT: - case HiveSqlParser.T_PRIMARY: - case HiveSqlParser.T_KEY: - case HiveSqlParser.T_UNIQUE: - case HiveSqlParser.T_REFERENCES: - case HiveSqlParser.T_IDENTITY: - case HiveSqlParser.T_AUTO_INCREMENT: - case HiveSqlParser.T_ENABLE: - case HiveSqlParser.T_CLUSTERED: - case HiveSqlParser.T_ASC: - case HiveSqlParser.T_DESC: - case HiveSqlParser.T_FOREIGN: - case HiveSqlParser.T_ON: - case HiveSqlParser.T_UPDATE: - case HiveSqlParser.T_DELETE: - case HiveSqlParser.T_NO: - case HiveSqlParser.T_ACTION: - case HiveSqlParser.T_RESTRICT: - case HiveSqlParser.T_DEFAULT: - case HiveSqlParser.T_CASCADE: - case HiveSqlParser.T_LOG: - case HiveSqlParser.T_FALLBACK: - case HiveSqlParser.T_COMMIT: - case HiveSqlParser.T_PRESERVE: - case HiveSqlParser.T_ROWS: - case HiveSqlParser.T_SEGMENT: - case HiveSqlParser.T_CREATION: - case HiveSqlParser.T_IMMEDIATE: - case HiveSqlParser.T_DEFERRED: - case HiveSqlParser.T_PCTFREE: - case HiveSqlParser.T_PCTUSED: - case HiveSqlParser.T_INITRANS: - case HiveSqlParser.T_MAXTRANS: - case HiveSqlParser.T_NOCOMPRESS: - case HiveSqlParser.T_LOGGING: - case HiveSqlParser.T_NOLOGGING: - case HiveSqlParser.T_STORAGE: - case HiveSqlParser.T_TABLESPACE: - case HiveSqlParser.T_INDEX: - case HiveSqlParser.T_IN: - case HiveSqlParser.T_REPLACE: - case HiveSqlParser.T_DISTRIBUTE: - case HiveSqlParser.T_BY: - case HiveSqlParser.T_HASH: - case HiveSqlParser.T_LOGGED: - case HiveSqlParser.T_COMPRESS: - case HiveSqlParser.T_YES: - case HiveSqlParser.T_DEFINITION: - case HiveSqlParser.T_DROP: - case HiveSqlParser.T_DATA: - case HiveSqlParser.T_STORED: - case HiveSqlParser.T_ROW: - case HiveSqlParser.T_FORMAT: - case HiveSqlParser.T_DELIMITED: - case HiveSqlParser.T_FIELDS: - case HiveSqlParser.T_TERMINATED: - case HiveSqlParser.T_ESCAPED: - case HiveSqlParser.T_COLLECTION: - case HiveSqlParser.T_ITEMS: - case HiveSqlParser.T_MAP: - case HiveSqlParser.T_KEYS: - case HiveSqlParser.T_LINES: - case HiveSqlParser.T_DEFINED: - case HiveSqlParser.T_TEXTIMAGE_ON: - case HiveSqlParser.T_COMMENT: - case HiveSqlParser.T_CHARACTER: - case HiveSqlParser.T_CHARSET: - case HiveSqlParser.T_ENGINE: - case HiveSqlParser.T_ALTER: - case HiveSqlParser.T_ADD2: - case HiveSqlParser.T_CHAR: - case HiveSqlParser.T_BIGINT: - case HiveSqlParser.T_BINARY_DOUBLE: - case HiveSqlParser.T_BINARY_FLOAT: - case HiveSqlParser.T_BIT: - case HiveSqlParser.T_DATE: - case HiveSqlParser.T_DATETIME: - case HiveSqlParser.T_DEC: - case HiveSqlParser.T_DECIMAL: - case HiveSqlParser.T_DOUBLE: - case HiveSqlParser.T_PRECISION: - case HiveSqlParser.T_FLOAT: - case HiveSqlParser.T_INT: - case HiveSqlParser.T_INT2: - case HiveSqlParser.T_INT4: - case HiveSqlParser.T_INT8: - case HiveSqlParser.T_INTEGER: - case HiveSqlParser.T_NCHAR: - case HiveSqlParser.T_NVARCHAR: - case HiveSqlParser.T_NUMBER: - case HiveSqlParser.T_NUMERIC: - case HiveSqlParser.T_REAL: - case HiveSqlParser.T_RESULT_SET_LOCATOR: - case HiveSqlParser.T_VARYING: - case HiveSqlParser.T_SIMPLE_FLOAT: - case HiveSqlParser.T_SIMPLE_DOUBLE: - case HiveSqlParser.T_SMALLINT: - case HiveSqlParser.T_SMALLDATETIME: - case HiveSqlParser.T_STRING: - case HiveSqlParser.T_SYS_REFCURSOR: - case HiveSqlParser.T_TIMESTAMP: - case HiveSqlParser.T_VARCHAR: - case HiveSqlParser.T_VARCHAR2: - case HiveSqlParser.T_XML: - case HiveSqlParser.T_MAX: - case HiveSqlParser.T_BYTE: - case HiveSqlParser.T_CASESPECIFIC: - case HiveSqlParser.T_CS: - case HiveSqlParser.T_DATABASE: - case HiveSqlParser.T_SCHEMA: - case HiveSqlParser.T_LOCATION: - case HiveSqlParser.T_OR: - case HiveSqlParser.T_FUNCTION: - case HiveSqlParser.T_RETURNS: - case HiveSqlParser.T_PACKAGE: - case HiveSqlParser.T_PROC: - case HiveSqlParser.T_BODY: - case HiveSqlParser.T_OUT: - case HiveSqlParser.T_INOUT: - case HiveSqlParser.T_LANGUAGE: - case HiveSqlParser.T_SQL: - case HiveSqlParser.T_SECURITY: - case HiveSqlParser.T_CREATOR: - case HiveSqlParser.T_DEFINER: - case HiveSqlParser.T_INVOKER: - case HiveSqlParser.T_OWNER: - case HiveSqlParser.T_DYNAMIC: - case HiveSqlParser.T_SETS: - case HiveSqlParser.T_EXEC: - case HiveSqlParser.T_EXECUTE: - case HiveSqlParser.T_INTO: - case HiveSqlParser.T_INCLUDE: - case HiveSqlParser.T_INSERT: - case HiveSqlParser.T_OVERWRITE: - case HiveSqlParser.T_VALUES: - case HiveSqlParser.T_DIRECTORY: - case HiveSqlParser.T_GET: - case HiveSqlParser.T_DIAGNOSTICS: - case HiveSqlParser.T_MESSAGE_TEXT: - case HiveSqlParser.T_ROW_COUNT: - case HiveSqlParser.T_GRANT: - case HiveSqlParser.T_ROLE: - case HiveSqlParser.T_LEAVE: - case HiveSqlParser.T_OBJECT: - case HiveSqlParser.T_AT: - case HiveSqlParser.T_OPEN: - case HiveSqlParser.T_FETCH: - case HiveSqlParser.T_FROM: - case HiveSqlParser.T_COLLECT: - case HiveSqlParser.T_STATISTICS: - case HiveSqlParser.T_STATS: - case HiveSqlParser.T_COLUMN: - case HiveSqlParser.T_CLOSE: - case HiveSqlParser.T_CMP: - case HiveSqlParser.T_SUM: - case HiveSqlParser.T_COPY: - case HiveSqlParser.T_HDFS: - case HiveSqlParser.T_BATCHSIZE: - case HiveSqlParser.T_DELIMITER: - case HiveSqlParser.T_SQLINSERT: - case HiveSqlParser.T_IGNORE: - case HiveSqlParser.T_WORK: - case HiveSqlParser.T_PRINT: - case HiveSqlParser.T_QUIT: - case HiveSqlParser.T_RAISE: - case HiveSqlParser.T_RESIGNAL: - case HiveSqlParser.T_SQLSTATE: - case HiveSqlParser.T_VALUE: - case HiveSqlParser.T_ROLLBACK: - case HiveSqlParser.T_CURRENT: - case HiveSqlParser.T_CURRENT_SCHEMA: - case HiveSqlParser.T_ANSI_NULLS: - case HiveSqlParser.T_ANSI_PADDING: - case HiveSqlParser.T_NOCOUNT: - case HiveSqlParser.T_QUOTED_IDENTIFIER: - case HiveSqlParser.T_XACT_ABORT: - case HiveSqlParser.T_OFF: - case HiveSqlParser.T_QUERY_BAND: - case HiveSqlParser.T_NONE: - case HiveSqlParser.T_SESSION: - case HiveSqlParser.T_SIGNAL: - case HiveSqlParser.T_SUMMARY: - case HiveSqlParser.T_TOP: - case HiveSqlParser.T_LIMIT: - case HiveSqlParser.T_TRUNCATE: - case HiveSqlParser.T_USE: - case HiveSqlParser.T_WHILE: - case HiveSqlParser.T_DO: - case HiveSqlParser.T_LOOP: - case HiveSqlParser.T_REVERSE: - case HiveSqlParser.T_STEP: - case HiveSqlParser.T_USING: - case HiveSqlParser.T_ALL: - case HiveSqlParser.T_EXCEPT: - case HiveSqlParser.T_INTERSECT: - case HiveSqlParser.T_SELECT: - case HiveSqlParser.T_SEL: - case HiveSqlParser.T_DISTINCT: - case HiveSqlParser.T_TITLE: - case HiveSqlParser.T_INNER: - case HiveSqlParser.T_JOIN: - case HiveSqlParser.T_LEFT: - case HiveSqlParser.T_RIGHT: - case HiveSqlParser.T_FULL: - case HiveSqlParser.T_OUTER: - case HiveSqlParser.T_GROUP: - case HiveSqlParser.T_HAVING: - case HiveSqlParser.T_QUALIFY: - case HiveSqlParser.T_ORDER: - case HiveSqlParser.T_RR: - case HiveSqlParser.T_RS: - case HiveSqlParser.T_UR: - case HiveSqlParser.T_AND: - case HiveSqlParser.T_KEEP: - case HiveSqlParser.T_EXCLUSIVE: - case HiveSqlParser.T_SHARE: - case HiveSqlParser.T_LOCKS: - case HiveSqlParser.T_MERGE: - case HiveSqlParser.T_MATCHED: - case HiveSqlParser.T_DESCRIBE: - case HiveSqlParser.T_BETWEEN: - case HiveSqlParser.T_RLIKE: - case HiveSqlParser.T_REGEXP: - case HiveSqlParser.T_INTERVAL: - case HiveSqlParser.T_DAY: - case HiveSqlParser.T_DAYS: - case HiveSqlParser.T_MICROSECOND: - case HiveSqlParser.T_MICROSECONDS: - case HiveSqlParser.T_SECOND: - case HiveSqlParser.T_SECONDS: - case HiveSqlParser.T_CONCAT: - case HiveSqlParser.T_CASE: - case HiveSqlParser.T_ISOPEN: - case HiveSqlParser.T_NOTFOUND: - case HiveSqlParser.T_AVG: - case HiveSqlParser.T_COUNT: - case HiveSqlParser.T_COUNT_BIG: - case HiveSqlParser.T_CUME_DIST: - case HiveSqlParser.T_DENSE_RANK: - case HiveSqlParser.T_FIRST_VALUE: - case HiveSqlParser.T_LAG: - case HiveSqlParser.T_LAST_VALUE: - case HiveSqlParser.T_LEAD: - case HiveSqlParser.T_MIN: - case HiveSqlParser.T_RANK: - case HiveSqlParser.T_ROW_NUMBER: - case HiveSqlParser.T_STDEV: - case HiveSqlParser.T_VAR: - case HiveSqlParser.T_VARIANCE: - case HiveSqlParser.T_OVER: - case HiveSqlParser.T_PARTITION: - case HiveSqlParser.T_ACTIVITY_COUNT: - case HiveSqlParser.T_CAST: - case HiveSqlParser.T_CURRENT_DATE: - case HiveSqlParser.T_CURRENT_TIMESTAMP: - case HiveSqlParser.T_CURRENT_USER: - case HiveSqlParser.T_USER: - case HiveSqlParser.T_PART_COUNT: - case HiveSqlParser.T_PART_LOC: - case HiveSqlParser.T_TRIM: - case HiveSqlParser.T_SUBSTRING: - case HiveSqlParser.T_SYSDATE: - case HiveSqlParser.T_HIVE: - case HiveSqlParser.T_HOST: - case HiveSqlParser.T_TRUE: - case HiveSqlParser.T_FALSE: - case HiveSqlParser.T_DIR: - case HiveSqlParser.T_FILE: - case HiveSqlParser.T_FILES: - case HiveSqlParser.T_NEW: - case HiveSqlParser.T_PWD: - case HiveSqlParser.T_SESSIONS: - case HiveSqlParser.T_SUBDIR: + case HiveSql.T_ACTION: + case HiveSql.T_ADD2: + case HiveSql.T_ALL: + case HiveSql.T_ALLOCATE: + case HiveSql.T_ALTER: + case HiveSql.T_AND: + case HiveSql.T_ANSI_NULLS: + case HiveSql.T_ANSI_PADDING: + case HiveSql.T_AS: + case HiveSql.T_ASC: + case HiveSql.T_ASSOCIATE: + case HiveSql.T_AT: + case HiveSql.T_AUTO_INCREMENT: + case HiveSql.T_AVG: + case HiveSql.T_BATCHSIZE: + case HiveSql.T_BEGIN: + case HiveSql.T_BETWEEN: + case HiveSql.T_BIGINT: + case HiveSql.T_BINARY_DOUBLE: + case HiveSql.T_BINARY_FLOAT: + case HiveSql.T_BIT: + case HiveSql.T_BODY: + case HiveSql.T_BREAK: + case HiveSql.T_BY: + case HiveSql.T_BYTE: + case HiveSql.T_CALL: + case HiveSql.T_CALLER: + case HiveSql.T_CASCADE: + case HiveSql.T_CASE: + case HiveSql.T_CASESPECIFIC: + case HiveSql.T_CAST: + case HiveSql.T_CHAR: + case HiveSql.T_CHARACTER: + case HiveSql.T_CHARSET: + case HiveSql.T_CLIENT: + case HiveSql.T_CLOSE: + case HiveSql.T_CLUSTERED: + case HiveSql.T_CMP: + case HiveSql.T_COLLECT: + case HiveSql.T_COLLECTION: + case HiveSql.T_COLUMN: + case HiveSql.T_COMMENT: + case HiveSql.T_CONSTANT: + case HiveSql.T_COMMIT: + case HiveSql.T_COMPRESS: + case HiveSql.T_CONCAT: + case HiveSql.T_CONDITION: + case HiveSql.T_CONSTRAINT: + case HiveSql.T_CONTINUE: + case HiveSql.T_COPY: + case HiveSql.T_COUNT: + case HiveSql.T_COUNT_BIG: + case HiveSql.T_CREATE: + case HiveSql.T_CREATION: + case HiveSql.T_CREATOR: + case HiveSql.T_CS: + case HiveSql.T_CURRENT: + case HiveSql.T_CURRENT_SCHEMA: + case HiveSql.T_CURSOR: + case HiveSql.T_DATABASE: + case HiveSql.T_DATA: + case HiveSql.T_DATE: + case HiveSql.T_DATETIME: + case HiveSql.T_DAY: + case HiveSql.T_DAYS: + case HiveSql.T_DEC: + case HiveSql.T_DECIMAL: + case HiveSql.T_DECLARE: + case HiveSql.T_DEFAULT: + case HiveSql.T_DEFERRED: + case HiveSql.T_DEFINED: + case HiveSql.T_DEFINER: + case HiveSql.T_DEFINITION: + case HiveSql.T_DELETE: + case HiveSql.T_DELIMITED: + case HiveSql.T_DELIMITER: + case HiveSql.T_DESC: + case HiveSql.T_DESCRIBE: + case HiveSql.T_DIAGNOSTICS: + case HiveSql.T_DIR: + case HiveSql.T_DIRECTORY: + case HiveSql.T_DISTINCT: + case HiveSql.T_DISTRIBUTE: + case HiveSql.T_DO: + case HiveSql.T_DOUBLE: + case HiveSql.T_DROP: + case HiveSql.T_DYNAMIC: + case HiveSql.T_ENABLE: + case HiveSql.T_ENGINE: + case HiveSql.T_ESCAPED: + case HiveSql.T_EXCEPT: + case HiveSql.T_EXEC: + case HiveSql.T_EXECUTE: + case HiveSql.T_EXCEPTION: + case HiveSql.T_EXCLUSIVE: + case HiveSql.T_EXISTS: + case HiveSql.T_EXIT: + case HiveSql.T_FALLBACK: + case HiveSql.T_FALSE: + case HiveSql.T_FETCH: + case HiveSql.T_FIELDS: + case HiveSql.T_FILE: + case HiveSql.T_FILES: + case HiveSql.T_FLOAT: + case HiveSql.T_FOR: + case HiveSql.T_FOREIGN: + case HiveSql.T_FORMAT: + case HiveSql.T_FOUND: + case HiveSql.T_FROM: + case HiveSql.T_FULL: + case HiveSql.T_FUNCTION: + case HiveSql.T_GET: + case HiveSql.T_GLOBAL: + case HiveSql.T_GO: + case HiveSql.T_GRANT: + case HiveSql.T_GROUP: + case HiveSql.T_HANDLER: + case HiveSql.T_HASH: + case HiveSql.T_HAVING: + case HiveSql.T_HDFS: + case HiveSql.T_HIVE: + case HiveSql.T_HOST: + case HiveSql.T_IDENTITY: + case HiveSql.T_IF: + case HiveSql.T_IGNORE: + case HiveSql.T_IMMEDIATE: + case HiveSql.T_IN: + case HiveSql.T_INCLUDE: + case HiveSql.T_INDEX: + case HiveSql.T_INITRANS: + case HiveSql.T_INNER: + case HiveSql.T_INOUT: + case HiveSql.T_INSERT: + case HiveSql.T_INT: + case HiveSql.T_INT2: + case HiveSql.T_INT4: + case HiveSql.T_INT8: + case HiveSql.T_INTEGER: + case HiveSql.T_INTERSECT: + case HiveSql.T_INTERVAL: + case HiveSql.T_INTO: + case HiveSql.T_INVOKER: + case HiveSql.T_IS: + case HiveSql.T_ISOPEN: + case HiveSql.T_ITEMS: + case HiveSql.T_JOIN: + case HiveSql.T_KEEP: + case HiveSql.T_KEY: + case HiveSql.T_KEYS: + case HiveSql.T_LANGUAGE: + case HiveSql.T_LEAVE: + case HiveSql.T_LEFT: + case HiveSql.T_LIKE: + case HiveSql.T_LIMIT: + case HiveSql.T_LINES: + case HiveSql.T_LOCAL: + case HiveSql.T_LOCATION: + case HiveSql.T_LOCATOR: + case HiveSql.T_LOCATORS: + case HiveSql.T_LOCKS: + case HiveSql.T_LOG: + case HiveSql.T_LOGGED: + case HiveSql.T_LOGGING: + case HiveSql.T_LOOP: + case HiveSql.T_MAP: + case HiveSql.T_MATCHED: + case HiveSql.T_MAX: + case HiveSql.T_MAXTRANS: + case HiveSql.T_MERGE: + case HiveSql.T_MESSAGE_TEXT: + case HiveSql.T_MICROSECOND: + case HiveSql.T_MICROSECONDS: + case HiveSql.T_MIN: + case HiveSql.T_MULTISET: + case HiveSql.T_NCHAR: + case HiveSql.T_NEW: + case HiveSql.T_NVARCHAR: + case HiveSql.T_NO: + case HiveSql.T_NOCOUNT: + case HiveSql.T_NOCOMPRESS: + case HiveSql.T_NOLOGGING: + case HiveSql.T_NONE: + case HiveSql.T_NOT: + case HiveSql.T_NOTFOUND: + case HiveSql.T_NUMERIC: + case HiveSql.T_NUMBER: + case HiveSql.T_OBJECT: + case HiveSql.T_OFF: + case HiveSql.T_ON: + case HiveSql.T_ONLY: + case HiveSql.T_OPEN: + case HiveSql.T_OR: + case HiveSql.T_ORDER: + case HiveSql.T_OUT: + case HiveSql.T_OUTER: + case HiveSql.T_OVER: + case HiveSql.T_OVERWRITE: + case HiveSql.T_OWNER: + case HiveSql.T_PACKAGE: + case HiveSql.T_PARTITION: + case HiveSql.T_PCTFREE: + case HiveSql.T_PCTUSED: + case HiveSql.T_PRECISION: + case HiveSql.T_PRESERVE: + case HiveSql.T_PRIMARY: + case HiveSql.T_PRINT: + case HiveSql.T_PROC: + case HiveSql.T_PROCEDURE: + case HiveSql.T_QUALIFY: + case HiveSql.T_QUERY_BAND: + case HiveSql.T_QUIT: + case HiveSql.T_QUOTED_IDENTIFIER: + case HiveSql.T_RAISE: + case HiveSql.T_REAL: + case HiveSql.T_REFERENCES: + case HiveSql.T_REGEXP: + case HiveSql.T_REPLACE: + case HiveSql.T_RESIGNAL: + case HiveSql.T_RESTRICT: + case HiveSql.T_RESULT: + case HiveSql.T_RESULT_SET_LOCATOR: + case HiveSql.T_RETURN: + case HiveSql.T_RETURNS: + case HiveSql.T_REVERSE: + case HiveSql.T_RIGHT: + case HiveSql.T_RLIKE: + case HiveSql.T_ROLE: + case HiveSql.T_ROLLBACK: + case HiveSql.T_ROW: + case HiveSql.T_ROWS: + case HiveSql.T_ROW_COUNT: + case HiveSql.T_RR: + case HiveSql.T_RS: + case HiveSql.T_PWD: + case HiveSql.T_TRIM: + case HiveSql.T_SCHEMA: + case HiveSql.T_SECOND: + case HiveSql.T_SECONDS: + case HiveSql.T_SECURITY: + case HiveSql.T_SEGMENT: + case HiveSql.T_SEL: + case HiveSql.T_SELECT: + case HiveSql.T_SET: + case HiveSql.T_SESSION: + case HiveSql.T_SESSIONS: + case HiveSql.T_SETS: + case HiveSql.T_SHARE: + case HiveSql.T_SIGNAL: + case HiveSql.T_SIMPLE_DOUBLE: + case HiveSql.T_SIMPLE_FLOAT: + case HiveSql.T_SMALLDATETIME: + case HiveSql.T_SMALLINT: + case HiveSql.T_SQL: + case HiveSql.T_SQLEXCEPTION: + case HiveSql.T_SQLINSERT: + case HiveSql.T_SQLSTATE: + case HiveSql.T_SQLWARNING: + case HiveSql.T_STATS: + case HiveSql.T_STATISTICS: + case HiveSql.T_STEP: + case HiveSql.T_STORAGE: + case HiveSql.T_STORED: + case HiveSql.T_STRING: + case HiveSql.T_SUBDIR: + case HiveSql.T_SUBSTRING: + case HiveSql.T_SUM: + case HiveSql.T_SUMMARY: + case HiveSql.T_SYS_REFCURSOR: + case HiveSql.T_TABLE: + case HiveSql.T_TABLESPACE: + case HiveSql.T_TEMPORARY: + case HiveSql.T_TERMINATED: + case HiveSql.T_TEXTIMAGE_ON: + case HiveSql.T_THEN: + case HiveSql.T_TIMESTAMP: + case HiveSql.T_TITLE: + case HiveSql.T_TO: + case HiveSql.T_TOP: + case HiveSql.T_TRANSACTION: + case HiveSql.T_TRUE: + case HiveSql.T_TRUNCATE: + case HiveSql.T_UNIQUE: + case HiveSql.T_UPDATE: + case HiveSql.T_UR: + case HiveSql.T_USE: + case HiveSql.T_USING: + case HiveSql.T_VALUE: + case HiveSql.T_VALUES: + case HiveSql.T_VAR: + case HiveSql.T_VARCHAR: + case HiveSql.T_VARCHAR2: + case HiveSql.T_VARYING: + case HiveSql.T_VOLATILE: + case HiveSql.T_WHILE: + case HiveSql.T_WITH: + case HiveSql.T_WITHOUT: + case HiveSql.T_WORK: + case HiveSql.T_XACT_ABORT: + case HiveSql.T_XML: + case HiveSql.T_YES: + case HiveSql.T_ACTIVITY_COUNT: + case HiveSql.T_CUME_DIST: + case HiveSql.T_CURRENT_DATE: + case HiveSql.T_CURRENT_TIMESTAMP: + case HiveSql.T_CURRENT_USER: + case HiveSql.T_DENSE_RANK: + case HiveSql.T_FIRST_VALUE: + case HiveSql.T_LAG: + case HiveSql.T_LAST_VALUE: + case HiveSql.T_LEAD: + case HiveSql.T_PART_COUNT: + case HiveSql.T_PART_LOC: + case HiveSql.T_RANK: + case HiveSql.T_ROW_NUMBER: + case HiveSql.T_STDEV: + case HiveSql.T_SYSDATE: + case HiveSql.T_VARIANCE: + case HiveSql.T_USER: + case HiveSql.L_ID: this.state = 648; this.ident(); break; - case HiveSqlParser.T_OPEN_P: + case HiveSql.T_OPEN_P: this.state = 649; - this.match(HiveSqlParser.T_OPEN_P); + this.match(HiveSql.T_OPEN_P); this.state = 650; this.ident(); this.state = 655; this._errHandler.sync(this); _la = this._input.LA(1); - while(_la===HiveSqlParser.T_COMMA) { + while(_la===HiveSql.T_COMMA) { this.state = 651; - this.match(HiveSqlParser.T_COMMA); + this.match(HiveSql.T_COMMA); this.state = 652; this.ident(); this.state = 657; @@ -6236,7 +6292,7 @@ HiveSqlParser.prototype.assignment_stmt_select_item = function() { _la = this._input.LA(1); } this.state = 658; - this.match(HiveSqlParser.T_CLOSE_P); + this.match(HiveSql.T_CLOSE_P); break; default: throw new antlr4.error.NoViableAltException(this); @@ -6244,19 +6300,19 @@ HiveSqlParser.prototype.assignment_stmt_select_item = function() { this.state = 663; this._errHandler.sync(this); _la = this._input.LA(1); - if(_la===HiveSqlParser.T_COLON) { + if(_la===HiveSql.T_COLON) { this.state = 662; - this.match(HiveSqlParser.T_COLON); + this.match(HiveSql.T_COLON); } this.state = 665; - this.match(HiveSqlParser.T_EQUAL); + this.match(HiveSql.T_EQUAL); this.state = 666; - this.match(HiveSqlParser.T_OPEN_P); + this.match(HiveSql.T_OPEN_P); this.state = 667; this.select_stmt(); this.state = 668; - this.match(HiveSqlParser.T_CLOSE_P); + this.match(HiveSql.T_CLOSE_P); } catch (re) { if(re instanceof antlr4.error.RecognitionException) { localctx.exception = re; @@ -6281,7 +6337,7 @@ function Allocate_cursor_stmtContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_allocate_cursor_stmt; + this.ruleIndex = HiveSql.RULE_allocate_cursor_stmt; return this; } @@ -6289,7 +6345,7 @@ Allocate_cursor_stmtContext.prototype = Object.create(antlr4.ParserRuleContext.p Allocate_cursor_stmtContext.prototype.constructor = Allocate_cursor_stmtContext; Allocate_cursor_stmtContext.prototype.T_ALLOCATE = function() { - return this.getToken(HiveSqlParser.T_ALLOCATE, 0); + return this.getToken(HiveSql.T_ALLOCATE, 0); }; Allocate_cursor_stmtContext.prototype.ident = function(i) { @@ -6304,23 +6360,23 @@ Allocate_cursor_stmtContext.prototype.ident = function(i) { }; Allocate_cursor_stmtContext.prototype.T_CURSOR = function() { - return this.getToken(HiveSqlParser.T_CURSOR, 0); + return this.getToken(HiveSql.T_CURSOR, 0); }; Allocate_cursor_stmtContext.prototype.T_FOR = function() { - return this.getToken(HiveSqlParser.T_FOR, 0); + return this.getToken(HiveSql.T_FOR, 0); }; Allocate_cursor_stmtContext.prototype.T_PROCEDURE = function() { - return this.getToken(HiveSqlParser.T_PROCEDURE, 0); + return this.getToken(HiveSql.T_PROCEDURE, 0); }; Allocate_cursor_stmtContext.prototype.T_RESULT = function() { - return this.getToken(HiveSqlParser.T_RESULT, 0); + return this.getToken(HiveSql.T_RESULT, 0); }; Allocate_cursor_stmtContext.prototype.T_SET = function() { - return this.getToken(HiveSqlParser.T_SET, 0); + return this.getToken(HiveSql.T_SET, 0); }; Allocate_cursor_stmtContext.prototype.enterRule = function(listener) { @@ -6346,34 +6402,34 @@ Allocate_cursor_stmtContext.prototype.accept = function(visitor) { -HiveSqlParser.Allocate_cursor_stmtContext = Allocate_cursor_stmtContext; +HiveSql.Allocate_cursor_stmtContext = Allocate_cursor_stmtContext; -HiveSqlParser.prototype.allocate_cursor_stmt = function() { +HiveSql.prototype.allocate_cursor_stmt = function() { var localctx = new Allocate_cursor_stmtContext(this, this._ctx, this.state); - this.enterRule(localctx, 34, HiveSqlParser.RULE_allocate_cursor_stmt); + this.enterRule(localctx, 34, HiveSql.RULE_allocate_cursor_stmt); try { this.enterOuterAlt(localctx, 1); this.state = 670; - this.match(HiveSqlParser.T_ALLOCATE); + this.match(HiveSql.T_ALLOCATE); this.state = 671; this.ident(); this.state = 672; - this.match(HiveSqlParser.T_CURSOR); + this.match(HiveSql.T_CURSOR); this.state = 673; - this.match(HiveSqlParser.T_FOR); + this.match(HiveSql.T_FOR); this.state = 677; this._errHandler.sync(this); switch(this._input.LA(1)) { - case HiveSqlParser.T_RESULT: + case HiveSql.T_RESULT: this.state = 674; - this.match(HiveSqlParser.T_RESULT); + this.match(HiveSql.T_RESULT); this.state = 675; - this.match(HiveSqlParser.T_SET); + this.match(HiveSql.T_SET); break; - case HiveSqlParser.T_PROCEDURE: + case HiveSql.T_PROCEDURE: this.state = 676; - this.match(HiveSqlParser.T_PROCEDURE); + this.match(HiveSql.T_PROCEDURE); break; default: throw new antlr4.error.NoViableAltException(this); @@ -6404,7 +6460,7 @@ function Associate_locator_stmtContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_associate_locator_stmt; + this.ruleIndex = HiveSql.RULE_associate_locator_stmt; return this; } @@ -6412,11 +6468,11 @@ Associate_locator_stmtContext.prototype = Object.create(antlr4.ParserRuleContext Associate_locator_stmtContext.prototype.constructor = Associate_locator_stmtContext; Associate_locator_stmtContext.prototype.T_ASSOCIATE = function() { - return this.getToken(HiveSqlParser.T_ASSOCIATE, 0); + return this.getToken(HiveSql.T_ASSOCIATE, 0); }; Associate_locator_stmtContext.prototype.T_OPEN_P = function() { - return this.getToken(HiveSqlParser.T_OPEN_P, 0); + return this.getToken(HiveSql.T_OPEN_P, 0); }; Associate_locator_stmtContext.prototype.ident = function(i) { @@ -6431,31 +6487,31 @@ Associate_locator_stmtContext.prototype.ident = function(i) { }; Associate_locator_stmtContext.prototype.T_CLOSE_P = function() { - return this.getToken(HiveSqlParser.T_CLOSE_P, 0); + return this.getToken(HiveSql.T_CLOSE_P, 0); }; Associate_locator_stmtContext.prototype.T_WITH = function() { - return this.getToken(HiveSqlParser.T_WITH, 0); + return this.getToken(HiveSql.T_WITH, 0); }; Associate_locator_stmtContext.prototype.T_PROCEDURE = function() { - return this.getToken(HiveSqlParser.T_PROCEDURE, 0); + return this.getToken(HiveSql.T_PROCEDURE, 0); }; Associate_locator_stmtContext.prototype.T_LOCATOR = function() { - return this.getToken(HiveSqlParser.T_LOCATOR, 0); + return this.getToken(HiveSql.T_LOCATOR, 0); }; Associate_locator_stmtContext.prototype.T_LOCATORS = function() { - return this.getToken(HiveSqlParser.T_LOCATORS, 0); + return this.getToken(HiveSql.T_LOCATORS, 0); }; Associate_locator_stmtContext.prototype.T_RESULT = function() { - return this.getToken(HiveSqlParser.T_RESULT, 0); + return this.getToken(HiveSql.T_RESULT, 0); }; Associate_locator_stmtContext.prototype.T_SET = function() { - return this.getToken(HiveSqlParser.T_SET, 0); + return this.getToken(HiveSql.T_SET, 0); }; Associate_locator_stmtContext.prototype.T_COMMA = function(i) { @@ -6463,9 +6519,9 @@ Associate_locator_stmtContext.prototype.T_COMMA = function(i) { i = null; } if(i===null) { - return this.getTokens(HiveSqlParser.T_COMMA); + return this.getTokens(HiveSql.T_COMMA); } else { - return this.getToken(HiveSqlParser.T_COMMA, i); + return this.getToken(HiveSql.T_COMMA, i); } }; @@ -6493,30 +6549,30 @@ Associate_locator_stmtContext.prototype.accept = function(visitor) { -HiveSqlParser.Associate_locator_stmtContext = Associate_locator_stmtContext; +HiveSql.Associate_locator_stmtContext = Associate_locator_stmtContext; -HiveSqlParser.prototype.associate_locator_stmt = function() { +HiveSql.prototype.associate_locator_stmt = function() { var localctx = new Associate_locator_stmtContext(this, this._ctx, this.state); - this.enterRule(localctx, 36, HiveSqlParser.RULE_associate_locator_stmt); + this.enterRule(localctx, 36, HiveSql.RULE_associate_locator_stmt); var _la = 0; // Token type try { this.enterOuterAlt(localctx, 1); this.state = 681; - this.match(HiveSqlParser.T_ASSOCIATE); + this.match(HiveSql.T_ASSOCIATE); this.state = 684; this._errHandler.sync(this); _la = this._input.LA(1); - if(_la===HiveSqlParser.T_RESULT) { + if(_la===HiveSql.T_RESULT) { this.state = 682; - this.match(HiveSqlParser.T_RESULT); + this.match(HiveSql.T_RESULT); this.state = 683; - this.match(HiveSqlParser.T_SET); + this.match(HiveSql.T_SET); } this.state = 686; _la = this._input.LA(1); - if(!(_la===HiveSqlParser.T_LOCATOR || _la===HiveSqlParser.T_LOCATORS)) { + if(!(_la===HiveSql.T_LOCATOR || _la===HiveSql.T_LOCATORS)) { this._errHandler.recoverInline(this); } else { @@ -6524,15 +6580,15 @@ HiveSqlParser.prototype.associate_locator_stmt = function() { this.consume(); } this.state = 687; - this.match(HiveSqlParser.T_OPEN_P); + this.match(HiveSql.T_OPEN_P); this.state = 688; this.ident(); this.state = 693; this._errHandler.sync(this); _la = this._input.LA(1); - while(_la===HiveSqlParser.T_COMMA) { + while(_la===HiveSql.T_COMMA) { this.state = 689; - this.match(HiveSqlParser.T_COMMA); + this.match(HiveSql.T_COMMA); this.state = 690; this.ident(); this.state = 695; @@ -6540,11 +6596,11 @@ HiveSqlParser.prototype.associate_locator_stmt = function() { _la = this._input.LA(1); } this.state = 696; - this.match(HiveSqlParser.T_CLOSE_P); + this.match(HiveSql.T_CLOSE_P); this.state = 697; - this.match(HiveSqlParser.T_WITH); + this.match(HiveSql.T_WITH); this.state = 698; - this.match(HiveSqlParser.T_PROCEDURE); + this.match(HiveSql.T_PROCEDURE); this.state = 699; this.ident(); } catch (re) { @@ -6571,7 +6627,7 @@ function Begin_transaction_stmtContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_begin_transaction_stmt; + this.ruleIndex = HiveSql.RULE_begin_transaction_stmt; return this; } @@ -6579,11 +6635,11 @@ Begin_transaction_stmtContext.prototype = Object.create(antlr4.ParserRuleContext Begin_transaction_stmtContext.prototype.constructor = Begin_transaction_stmtContext; Begin_transaction_stmtContext.prototype.T_BEGIN = function() { - return this.getToken(HiveSqlParser.T_BEGIN, 0); + return this.getToken(HiveSql.T_BEGIN, 0); }; Begin_transaction_stmtContext.prototype.T_TRANSACTION = function() { - return this.getToken(HiveSqlParser.T_TRANSACTION, 0); + return this.getToken(HiveSql.T_TRANSACTION, 0); }; Begin_transaction_stmtContext.prototype.enterRule = function(listener) { @@ -6609,18 +6665,18 @@ Begin_transaction_stmtContext.prototype.accept = function(visitor) { -HiveSqlParser.Begin_transaction_stmtContext = Begin_transaction_stmtContext; +HiveSql.Begin_transaction_stmtContext = Begin_transaction_stmtContext; -HiveSqlParser.prototype.begin_transaction_stmt = function() { +HiveSql.prototype.begin_transaction_stmt = function() { var localctx = new Begin_transaction_stmtContext(this, this._ctx, this.state); - this.enterRule(localctx, 38, HiveSqlParser.RULE_begin_transaction_stmt); + this.enterRule(localctx, 38, HiveSql.RULE_begin_transaction_stmt); try { this.enterOuterAlt(localctx, 1); this.state = 701; - this.match(HiveSqlParser.T_BEGIN); + this.match(HiveSql.T_BEGIN); this.state = 702; - this.match(HiveSqlParser.T_TRANSACTION); + this.match(HiveSql.T_TRANSACTION); } catch (re) { if(re instanceof antlr4.error.RecognitionException) { localctx.exception = re; @@ -6645,7 +6701,7 @@ function Break_stmtContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_break_stmt; + this.ruleIndex = HiveSql.RULE_break_stmt; return this; } @@ -6653,7 +6709,7 @@ Break_stmtContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); Break_stmtContext.prototype.constructor = Break_stmtContext; Break_stmtContext.prototype.T_BREAK = function() { - return this.getToken(HiveSqlParser.T_BREAK, 0); + return this.getToken(HiveSql.T_BREAK, 0); }; Break_stmtContext.prototype.enterRule = function(listener) { @@ -6679,16 +6735,16 @@ Break_stmtContext.prototype.accept = function(visitor) { -HiveSqlParser.Break_stmtContext = Break_stmtContext; +HiveSql.Break_stmtContext = Break_stmtContext; -HiveSqlParser.prototype.break_stmt = function() { +HiveSql.prototype.break_stmt = function() { var localctx = new Break_stmtContext(this, this._ctx, this.state); - this.enterRule(localctx, 40, HiveSqlParser.RULE_break_stmt); + this.enterRule(localctx, 40, HiveSql.RULE_break_stmt); try { this.enterOuterAlt(localctx, 1); this.state = 704; - this.match(HiveSqlParser.T_BREAK); + this.match(HiveSql.T_BREAK); } catch (re) { if(re instanceof antlr4.error.RecognitionException) { localctx.exception = re; @@ -6713,7 +6769,7 @@ function Call_stmtContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_call_stmt; + this.ruleIndex = HiveSql.RULE_call_stmt; return this; } @@ -6721,7 +6777,7 @@ Call_stmtContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); Call_stmtContext.prototype.constructor = Call_stmtContext; Call_stmtContext.prototype.T_CALL = function() { - return this.getToken(HiveSqlParser.T_CALL, 0); + return this.getToken(HiveSql.T_CALL, 0); }; Call_stmtContext.prototype.ident = function() { @@ -6729,11 +6785,11 @@ Call_stmtContext.prototype.ident = function() { }; Call_stmtContext.prototype.T_OPEN_P = function() { - return this.getToken(HiveSqlParser.T_OPEN_P, 0); + return this.getToken(HiveSql.T_OPEN_P, 0); }; Call_stmtContext.prototype.T_CLOSE_P = function() { - return this.getToken(HiveSqlParser.T_CLOSE_P, 0); + return this.getToken(HiveSql.T_CLOSE_P, 0); }; Call_stmtContext.prototype.expr_func_params = function() { @@ -6763,16 +6819,16 @@ Call_stmtContext.prototype.accept = function(visitor) { -HiveSqlParser.Call_stmtContext = Call_stmtContext; +HiveSql.Call_stmtContext = Call_stmtContext; -HiveSqlParser.prototype.call_stmt = function() { +HiveSql.prototype.call_stmt = function() { var localctx = new Call_stmtContext(this, this._ctx, this.state); - this.enterRule(localctx, 42, HiveSqlParser.RULE_call_stmt); + this.enterRule(localctx, 42, HiveSql.RULE_call_stmt); try { this.enterOuterAlt(localctx, 1); this.state = 706; - this.match(HiveSqlParser.T_CALL); + this.match(HiveSql.T_CALL); this.state = 707; this.ident(); this.state = 714; @@ -6780,7 +6836,7 @@ HiveSqlParser.prototype.call_stmt = function() { var la_ = this._interp.adaptivePredict(this._input,30,this._ctx); if(la_===1) { this.state = 708; - this.match(HiveSqlParser.T_OPEN_P); + this.match(HiveSql.T_OPEN_P); this.state = 710; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,29,this._ctx); @@ -6790,7 +6846,7 @@ HiveSqlParser.prototype.call_stmt = function() { } this.state = 712; - this.match(HiveSqlParser.T_CLOSE_P); + this.match(HiveSql.T_CLOSE_P); } else if(la_===2) { this.state = 713; @@ -6821,7 +6877,7 @@ function Declare_stmtContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_declare_stmt; + this.ruleIndex = HiveSql.RULE_declare_stmt; return this; } @@ -6829,7 +6885,7 @@ Declare_stmtContext.prototype = Object.create(antlr4.ParserRuleContext.prototype Declare_stmtContext.prototype.constructor = Declare_stmtContext; Declare_stmtContext.prototype.T_DECLARE = function() { - return this.getToken(HiveSqlParser.T_DECLARE, 0); + return this.getToken(HiveSql.T_DECLARE, 0); }; Declare_stmtContext.prototype.declare_stmt_item = function(i) { @@ -6848,9 +6904,9 @@ Declare_stmtContext.prototype.T_COMMA = function(i) { i = null; } if(i===null) { - return this.getTokens(HiveSqlParser.T_COMMA); + return this.getTokens(HiveSql.T_COMMA); } else { - return this.getToken(HiveSqlParser.T_COMMA, i); + return this.getToken(HiveSql.T_COMMA, i); } }; @@ -6878,16 +6934,16 @@ Declare_stmtContext.prototype.accept = function(visitor) { -HiveSqlParser.Declare_stmtContext = Declare_stmtContext; +HiveSql.Declare_stmtContext = Declare_stmtContext; -HiveSqlParser.prototype.declare_stmt = function() { +HiveSql.prototype.declare_stmt = function() { var localctx = new Declare_stmtContext(this, this._ctx, this.state); - this.enterRule(localctx, 44, HiveSqlParser.RULE_declare_stmt); + this.enterRule(localctx, 44, HiveSql.RULE_declare_stmt); try { this.enterOuterAlt(localctx, 1); this.state = 716; - this.match(HiveSqlParser.T_DECLARE); + this.match(HiveSql.T_DECLARE); this.state = 717; this.declare_stmt_item(); this.state = 722; @@ -6896,7 +6952,7 @@ HiveSqlParser.prototype.declare_stmt = function() { while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { if(_alt===1) { this.state = 718; - this.match(HiveSqlParser.T_COMMA); + this.match(HiveSql.T_COMMA); this.state = 719; this.declare_stmt_item(); } @@ -6929,7 +6985,7 @@ function Declare_blockContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_declare_block; + this.ruleIndex = HiveSql.RULE_declare_block; return this; } @@ -6937,7 +6993,7 @@ Declare_blockContext.prototype = Object.create(antlr4.ParserRuleContext.prototyp Declare_blockContext.prototype.constructor = Declare_blockContext; Declare_blockContext.prototype.T_DECLARE = function() { - return this.getToken(HiveSqlParser.T_DECLARE, 0); + return this.getToken(HiveSql.T_DECLARE, 0); }; Declare_blockContext.prototype.declare_stmt_item = function(i) { @@ -6956,9 +7012,9 @@ Declare_blockContext.prototype.T_SEMICOLON = function(i) { i = null; } if(i===null) { - return this.getTokens(HiveSqlParser.T_SEMICOLON); + return this.getTokens(HiveSql.T_SEMICOLON); } else { - return this.getToken(HiveSqlParser.T_SEMICOLON, i); + return this.getToken(HiveSql.T_SEMICOLON, i); } }; @@ -6986,20 +7042,20 @@ Declare_blockContext.prototype.accept = function(visitor) { -HiveSqlParser.Declare_blockContext = Declare_blockContext; +HiveSql.Declare_blockContext = Declare_blockContext; -HiveSqlParser.prototype.declare_block = function() { +HiveSql.prototype.declare_block = function() { var localctx = new Declare_blockContext(this, this._ctx, this.state); - this.enterRule(localctx, 46, HiveSqlParser.RULE_declare_block); + this.enterRule(localctx, 46, HiveSql.RULE_declare_block); try { this.enterOuterAlt(localctx, 1); this.state = 725; - this.match(HiveSqlParser.T_DECLARE); + this.match(HiveSql.T_DECLARE); this.state = 726; this.declare_stmt_item(); this.state = 727; - this.match(HiveSqlParser.T_SEMICOLON); + this.match(HiveSql.T_SEMICOLON); this.state = 733; this._errHandler.sync(this); var _alt = this._interp.adaptivePredict(this._input,32,this._ctx) @@ -7008,7 +7064,7 @@ HiveSqlParser.prototype.declare_block = function() { this.state = 728; this.declare_stmt_item(); this.state = 729; - this.match(HiveSqlParser.T_SEMICOLON); + this.match(HiveSql.T_SEMICOLON); } this.state = 735; this._errHandler.sync(this); @@ -7039,7 +7095,7 @@ function Declare_block_inplaceContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_declare_block_inplace; + this.ruleIndex = HiveSql.RULE_declare_block_inplace; return this; } @@ -7062,9 +7118,9 @@ Declare_block_inplaceContext.prototype.T_SEMICOLON = function(i) { i = null; } if(i===null) { - return this.getTokens(HiveSqlParser.T_SEMICOLON); + return this.getTokens(HiveSql.T_SEMICOLON); } else { - return this.getToken(HiveSqlParser.T_SEMICOLON, i); + return this.getToken(HiveSql.T_SEMICOLON, i); } }; @@ -7092,18 +7148,18 @@ Declare_block_inplaceContext.prototype.accept = function(visitor) { -HiveSqlParser.Declare_block_inplaceContext = Declare_block_inplaceContext; +HiveSql.Declare_block_inplaceContext = Declare_block_inplaceContext; -HiveSqlParser.prototype.declare_block_inplace = function() { +HiveSql.prototype.declare_block_inplace = function() { var localctx = new Declare_block_inplaceContext(this, this._ctx, this.state); - this.enterRule(localctx, 48, HiveSqlParser.RULE_declare_block_inplace); + this.enterRule(localctx, 48, HiveSql.RULE_declare_block_inplace); try { this.enterOuterAlt(localctx, 1); this.state = 736; this.declare_stmt_item(); this.state = 737; - this.match(HiveSqlParser.T_SEMICOLON); + this.match(HiveSql.T_SEMICOLON); this.state = 743; this._errHandler.sync(this); var _alt = this._interp.adaptivePredict(this._input,33,this._ctx) @@ -7112,7 +7168,7 @@ HiveSqlParser.prototype.declare_block_inplace = function() { this.state = 738; this.declare_stmt_item(); this.state = 739; - this.match(HiveSqlParser.T_SEMICOLON); + this.match(HiveSql.T_SEMICOLON); } this.state = 745; this._errHandler.sync(this); @@ -7143,7 +7199,7 @@ function Declare_stmt_itemContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_declare_stmt_item; + this.ruleIndex = HiveSql.RULE_declare_stmt_item; return this; } @@ -7193,12 +7249,12 @@ Declare_stmt_itemContext.prototype.accept = function(visitor) { -HiveSqlParser.Declare_stmt_itemContext = Declare_stmt_itemContext; +HiveSql.Declare_stmt_itemContext = Declare_stmt_itemContext; -HiveSqlParser.prototype.declare_stmt_item = function() { +HiveSql.prototype.declare_stmt_item = function() { var localctx = new Declare_stmt_itemContext(this, this._ctx, this.state); - this.enterRule(localctx, 50, HiveSqlParser.RULE_declare_stmt_item); + this.enterRule(localctx, 50, HiveSql.RULE_declare_stmt_item); try { this.state = 751; this._errHandler.sync(this); @@ -7259,7 +7315,7 @@ function Declare_var_itemContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_declare_var_item; + this.ruleIndex = HiveSql.RULE_declare_var_item; return this; } @@ -7286,15 +7342,15 @@ Declare_var_itemContext.prototype.T_COMMA = function(i) { i = null; } if(i===null) { - return this.getTokens(HiveSqlParser.T_COMMA); + return this.getTokens(HiveSql.T_COMMA); } else { - return this.getToken(HiveSqlParser.T_COMMA, i); + return this.getToken(HiveSql.T_COMMA, i); } }; Declare_var_itemContext.prototype.T_AS = function() { - return this.getToken(HiveSqlParser.T_AS, 0); + return this.getToken(HiveSql.T_AS, 0); }; Declare_var_itemContext.prototype.dtype_len = function() { @@ -7317,7 +7373,7 @@ Declare_var_itemContext.prototype.dtype_default = function() { }; Declare_var_itemContext.prototype.T_CONSTANT = function() { - return this.getToken(HiveSqlParser.T_CONSTANT, 0); + return this.getToken(HiveSql.T_CONSTANT, 0); }; Declare_var_itemContext.prototype.enterRule = function(listener) { @@ -7343,12 +7399,12 @@ Declare_var_itemContext.prototype.accept = function(visitor) { -HiveSqlParser.Declare_var_itemContext = Declare_var_itemContext; +HiveSql.Declare_var_itemContext = Declare_var_itemContext; -HiveSqlParser.prototype.declare_var_item = function() { +HiveSql.prototype.declare_var_item = function() { var localctx = new Declare_var_itemContext(this, this._ctx, this.state); - this.enterRule(localctx, 52, HiveSqlParser.RULE_declare_var_item); + this.enterRule(localctx, 52, HiveSql.RULE_declare_var_item); var _la = 0; // Token type try { this.state = 788; @@ -7362,9 +7418,9 @@ HiveSqlParser.prototype.declare_var_item = function() { this.state = 758; this._errHandler.sync(this); _la = this._input.LA(1); - while(_la===HiveSqlParser.T_COMMA) { + while(_la===HiveSql.T_COMMA) { this.state = 754; - this.match(HiveSqlParser.T_COMMA); + this.match(HiveSql.T_COMMA); this.state = 755; this.ident(); this.state = 760; @@ -7376,7 +7432,7 @@ HiveSqlParser.prototype.declare_var_item = function() { var la_ = this._interp.adaptivePredict(this._input,36,this._ctx); if(la_===1) { this.state = 761; - this.match(HiveSqlParser.T_AS); + this.match(HiveSql.T_AS); } this.state = 764; @@ -7417,13 +7473,13 @@ HiveSqlParser.prototype.declare_var_item = function() { this.state = 777; this.ident(); this.state = 778; - this.match(HiveSqlParser.T_CONSTANT); + this.match(HiveSql.T_CONSTANT); this.state = 780; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,40,this._ctx); if(la_===1) { this.state = 779; - this.match(HiveSqlParser.T_AS); + this.match(HiveSql.T_AS); } this.state = 782; @@ -7431,7 +7487,7 @@ HiveSqlParser.prototype.declare_var_item = function() { this.state = 784; this._errHandler.sync(this); _la = this._input.LA(1); - if(_la===HiveSqlParser.T_OPEN_P) { + if(_la===HiveSql.T_OPEN_P) { this.state = 783; this.dtype_len(); } @@ -7465,7 +7521,7 @@ function Declare_condition_itemContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_declare_condition_item; + this.ruleIndex = HiveSql.RULE_declare_condition_item; return this; } @@ -7477,7 +7533,7 @@ Declare_condition_itemContext.prototype.ident = function() { }; Declare_condition_itemContext.prototype.T_CONDITION = function() { - return this.getToken(HiveSqlParser.T_CONDITION, 0); + return this.getToken(HiveSql.T_CONDITION, 0); }; Declare_condition_itemContext.prototype.enterRule = function(listener) { @@ -7503,18 +7559,18 @@ Declare_condition_itemContext.prototype.accept = function(visitor) { -HiveSqlParser.Declare_condition_itemContext = Declare_condition_itemContext; +HiveSql.Declare_condition_itemContext = Declare_condition_itemContext; -HiveSqlParser.prototype.declare_condition_item = function() { +HiveSql.prototype.declare_condition_item = function() { var localctx = new Declare_condition_itemContext(this, this._ctx, this.state); - this.enterRule(localctx, 54, HiveSqlParser.RULE_declare_condition_item); + this.enterRule(localctx, 54, HiveSql.RULE_declare_condition_item); try { this.enterOuterAlt(localctx, 1); this.state = 790; this.ident(); this.state = 791; - this.match(HiveSqlParser.T_CONDITION); + this.match(HiveSql.T_CONDITION); } catch (re) { if(re instanceof antlr4.error.RecognitionException) { localctx.exception = re; @@ -7539,7 +7595,7 @@ function Declare_cursor_itemContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_declare_cursor_item; + this.ruleIndex = HiveSql.RULE_declare_cursor_item; return this; } @@ -7547,19 +7603,19 @@ Declare_cursor_itemContext.prototype = Object.create(antlr4.ParserRuleContext.pr Declare_cursor_itemContext.prototype.constructor = Declare_cursor_itemContext; Declare_cursor_itemContext.prototype.T_IS = function() { - return this.getToken(HiveSqlParser.T_IS, 0); + return this.getToken(HiveSql.T_IS, 0); }; Declare_cursor_itemContext.prototype.T_AS = function() { - return this.getToken(HiveSqlParser.T_AS, 0); + return this.getToken(HiveSql.T_AS, 0); }; Declare_cursor_itemContext.prototype.T_FOR = function() { - return this.getToken(HiveSqlParser.T_FOR, 0); + return this.getToken(HiveSql.T_FOR, 0); }; Declare_cursor_itemContext.prototype.T_CURSOR = function() { - return this.getToken(HiveSqlParser.T_CURSOR, 0); + return this.getToken(HiveSql.T_CURSOR, 0); }; Declare_cursor_itemContext.prototype.ident = function() { @@ -7605,12 +7661,12 @@ Declare_cursor_itemContext.prototype.accept = function(visitor) { -HiveSqlParser.Declare_cursor_itemContext = Declare_cursor_itemContext; +HiveSql.Declare_cursor_itemContext = Declare_cursor_itemContext; -HiveSqlParser.prototype.declare_cursor_item = function() { +HiveSql.prototype.declare_cursor_item = function() { var localctx = new Declare_cursor_itemContext(this, this._ctx, this.state); - this.enterRule(localctx, 56, HiveSqlParser.RULE_declare_cursor_item); + this.enterRule(localctx, 56, HiveSql.RULE_declare_cursor_item); var _la = 0; // Token type try { this.enterOuterAlt(localctx, 1); @@ -7620,7 +7676,7 @@ HiveSqlParser.prototype.declare_cursor_item = function() { switch(la_) { case 1: this.state = 793; - this.match(HiveSqlParser.T_CURSOR); + this.match(HiveSql.T_CURSOR); this.state = 794; this.ident(); break; @@ -7629,31 +7685,31 @@ HiveSqlParser.prototype.declare_cursor_item = function() { this.state = 795; this.ident(); this.state = 796; - this.match(HiveSqlParser.T_CURSOR); + this.match(HiveSql.T_CURSOR); break; } this.state = 802; this._errHandler.sync(this); switch (this._input.LA(1)) { - case HiveSqlParser.T_WITH: + case HiveSql.T_WITH: this.state = 800; this.cursor_with_return(); break; - case HiveSqlParser.T_WITHOUT: + case HiveSql.T_WITHOUT: this.state = 801; this.cursor_without_return(); break; - case HiveSqlParser.T_FOR: - case HiveSqlParser.T_AS: - case HiveSqlParser.T_IS: + case HiveSql.T_AS: + case HiveSql.T_FOR: + case HiveSql.T_IS: break; default: break; } this.state = 804; _la = this._input.LA(1); - if(!(((((_la - 28)) & ~0x1f) == 0 && ((1 << (_la - 28)) & ((1 << (HiveSqlParser.T_FOR - 28)) | (1 << (HiveSqlParser.T_AS - 28)) | (1 << (HiveSqlParser.T_IS - 28)))) !== 0))) { + if(!(_la===HiveSql.T_AS || _la===HiveSql.T_FOR || _la===HiveSql.T_IS)) { this._errHandler.recoverInline(this); } else { @@ -7699,7 +7755,7 @@ function Cursor_with_returnContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_cursor_with_return; + this.ruleIndex = HiveSql.RULE_cursor_with_return; return this; } @@ -7707,27 +7763,27 @@ Cursor_with_returnContext.prototype = Object.create(antlr4.ParserRuleContext.pro Cursor_with_returnContext.prototype.constructor = Cursor_with_returnContext; Cursor_with_returnContext.prototype.T_WITH = function() { - return this.getToken(HiveSqlParser.T_WITH, 0); + return this.getToken(HiveSql.T_WITH, 0); }; Cursor_with_returnContext.prototype.T_RETURN = function() { - return this.getToken(HiveSqlParser.T_RETURN, 0); + return this.getToken(HiveSql.T_RETURN, 0); }; Cursor_with_returnContext.prototype.T_ONLY = function() { - return this.getToken(HiveSqlParser.T_ONLY, 0); + return this.getToken(HiveSql.T_ONLY, 0); }; Cursor_with_returnContext.prototype.T_TO = function() { - return this.getToken(HiveSqlParser.T_TO, 0); + return this.getToken(HiveSql.T_TO, 0); }; Cursor_with_returnContext.prototype.T_CALLER = function() { - return this.getToken(HiveSqlParser.T_CALLER, 0); + return this.getToken(HiveSql.T_CALLER, 0); }; Cursor_with_returnContext.prototype.T_CLIENT = function() { - return this.getToken(HiveSqlParser.T_CLIENT, 0); + return this.getToken(HiveSql.T_CLIENT, 0); }; Cursor_with_returnContext.prototype.enterRule = function(listener) { @@ -7753,36 +7809,36 @@ Cursor_with_returnContext.prototype.accept = function(visitor) { -HiveSqlParser.Cursor_with_returnContext = Cursor_with_returnContext; +HiveSql.Cursor_with_returnContext = Cursor_with_returnContext; -HiveSqlParser.prototype.cursor_with_return = function() { +HiveSql.prototype.cursor_with_return = function() { var localctx = new Cursor_with_returnContext(this, this._ctx, this.state); - this.enterRule(localctx, 58, HiveSqlParser.RULE_cursor_with_return); + this.enterRule(localctx, 58, HiveSql.RULE_cursor_with_return); var _la = 0; // Token type try { this.enterOuterAlt(localctx, 1); this.state = 809; - this.match(HiveSqlParser.T_WITH); + this.match(HiveSql.T_WITH); this.state = 810; - this.match(HiveSqlParser.T_RETURN); + this.match(HiveSql.T_RETURN); this.state = 812; this._errHandler.sync(this); _la = this._input.LA(1); - if(_la===HiveSqlParser.T_ONLY) { + if(_la===HiveSql.T_ONLY) { this.state = 811; - this.match(HiveSqlParser.T_ONLY); + this.match(HiveSql.T_ONLY); } this.state = 816; this._errHandler.sync(this); _la = this._input.LA(1); - if(_la===HiveSqlParser.T_TO) { + if(_la===HiveSql.T_TO) { this.state = 814; - this.match(HiveSqlParser.T_TO); + this.match(HiveSql.T_TO); this.state = 815; _la = this._input.LA(1); - if(!(_la===HiveSqlParser.T_CALLER || _la===HiveSqlParser.T_CLIENT)) { + if(!(_la===HiveSql.T_CALLER || _la===HiveSql.T_CLIENT)) { this._errHandler.recoverInline(this); } else { @@ -7815,7 +7871,7 @@ function Cursor_without_returnContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_cursor_without_return; + this.ruleIndex = HiveSql.RULE_cursor_without_return; return this; } @@ -7823,11 +7879,11 @@ Cursor_without_returnContext.prototype = Object.create(antlr4.ParserRuleContext. Cursor_without_returnContext.prototype.constructor = Cursor_without_returnContext; Cursor_without_returnContext.prototype.T_WITHOUT = function() { - return this.getToken(HiveSqlParser.T_WITHOUT, 0); + return this.getToken(HiveSql.T_WITHOUT, 0); }; Cursor_without_returnContext.prototype.T_RETURN = function() { - return this.getToken(HiveSqlParser.T_RETURN, 0); + return this.getToken(HiveSql.T_RETURN, 0); }; Cursor_without_returnContext.prototype.enterRule = function(listener) { @@ -7853,18 +7909,18 @@ Cursor_without_returnContext.prototype.accept = function(visitor) { -HiveSqlParser.Cursor_without_returnContext = Cursor_without_returnContext; +HiveSql.Cursor_without_returnContext = Cursor_without_returnContext; -HiveSqlParser.prototype.cursor_without_return = function() { +HiveSql.prototype.cursor_without_return = function() { var localctx = new Cursor_without_returnContext(this, this._ctx, this.state); - this.enterRule(localctx, 60, HiveSqlParser.RULE_cursor_without_return); + this.enterRule(localctx, 60, HiveSql.RULE_cursor_without_return); try { this.enterOuterAlt(localctx, 1); this.state = 818; - this.match(HiveSqlParser.T_WITHOUT); + this.match(HiveSql.T_WITHOUT); this.state = 819; - this.match(HiveSqlParser.T_RETURN); + this.match(HiveSql.T_RETURN); } catch (re) { if(re instanceof antlr4.error.RecognitionException) { localctx.exception = re; @@ -7889,7 +7945,7 @@ function Declare_handler_itemContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_declare_handler_item; + this.ruleIndex = HiveSql.RULE_declare_handler_item; return this; } @@ -7897,11 +7953,11 @@ Declare_handler_itemContext.prototype = Object.create(antlr4.ParserRuleContext.p Declare_handler_itemContext.prototype.constructor = Declare_handler_itemContext; Declare_handler_itemContext.prototype.T_HANDLER = function() { - return this.getToken(HiveSqlParser.T_HANDLER, 0); + return this.getToken(HiveSql.T_HANDLER, 0); }; Declare_handler_itemContext.prototype.T_FOR = function() { - return this.getToken(HiveSqlParser.T_FOR, 0); + return this.getToken(HiveSql.T_FOR, 0); }; Declare_handler_itemContext.prototype.single_block_stmt = function() { @@ -7909,27 +7965,27 @@ Declare_handler_itemContext.prototype.single_block_stmt = function() { }; Declare_handler_itemContext.prototype.T_CONTINUE = function() { - return this.getToken(HiveSqlParser.T_CONTINUE, 0); + return this.getToken(HiveSql.T_CONTINUE, 0); }; Declare_handler_itemContext.prototype.T_EXIT = function() { - return this.getToken(HiveSqlParser.T_EXIT, 0); + return this.getToken(HiveSql.T_EXIT, 0); }; Declare_handler_itemContext.prototype.T_SQLEXCEPTION = function() { - return this.getToken(HiveSqlParser.T_SQLEXCEPTION, 0); + return this.getToken(HiveSql.T_SQLEXCEPTION, 0); }; Declare_handler_itemContext.prototype.T_SQLWARNING = function() { - return this.getToken(HiveSqlParser.T_SQLWARNING, 0); + return this.getToken(HiveSql.T_SQLWARNING, 0); }; Declare_handler_itemContext.prototype.T_NOT = function() { - return this.getToken(HiveSqlParser.T_NOT, 0); + return this.getToken(HiveSql.T_NOT, 0); }; Declare_handler_itemContext.prototype.T_FOUND = function() { - return this.getToken(HiveSqlParser.T_FOUND, 0); + return this.getToken(HiveSql.T_FOUND, 0); }; Declare_handler_itemContext.prototype.ident = function() { @@ -7959,18 +8015,18 @@ Declare_handler_itemContext.prototype.accept = function(visitor) { -HiveSqlParser.Declare_handler_itemContext = Declare_handler_itemContext; +HiveSql.Declare_handler_itemContext = Declare_handler_itemContext; -HiveSqlParser.prototype.declare_handler_item = function() { +HiveSql.prototype.declare_handler_item = function() { var localctx = new Declare_handler_itemContext(this, this._ctx, this.state); - this.enterRule(localctx, 62, HiveSqlParser.RULE_declare_handler_item); + this.enterRule(localctx, 62, HiveSql.RULE_declare_handler_item); var _la = 0; // Token type try { this.enterOuterAlt(localctx, 1); this.state = 821; _la = this._input.LA(1); - if(!(_la===HiveSqlParser.T_CONTINUE || _la===HiveSqlParser.T_EXIT)) { + if(!(_la===HiveSql.T_CONTINUE || _la===HiveSql.T_EXIT)) { this._errHandler.recoverInline(this); } else { @@ -7978,28 +8034,28 @@ HiveSqlParser.prototype.declare_handler_item = function() { this.consume(); } this.state = 822; - this.match(HiveSqlParser.T_HANDLER); + this.match(HiveSql.T_HANDLER); this.state = 823; - this.match(HiveSqlParser.T_FOR); + this.match(HiveSql.T_FOR); this.state = 829; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,48,this._ctx); switch(la_) { case 1: this.state = 824; - this.match(HiveSqlParser.T_SQLEXCEPTION); + this.match(HiveSql.T_SQLEXCEPTION); break; case 2: this.state = 825; - this.match(HiveSqlParser.T_SQLWARNING); + this.match(HiveSql.T_SQLWARNING); break; case 3: this.state = 826; - this.match(HiveSqlParser.T_NOT); + this.match(HiveSql.T_NOT); this.state = 827; - this.match(HiveSqlParser.T_FOUND); + this.match(HiveSql.T_FOUND); break; case 4: @@ -8034,7 +8090,7 @@ function Declare_temporary_table_itemContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_declare_temporary_table_item; + this.ruleIndex = HiveSql.RULE_declare_temporary_table_item; return this; } @@ -8042,11 +8098,11 @@ Declare_temporary_table_itemContext.prototype = Object.create(antlr4.ParserRuleC Declare_temporary_table_itemContext.prototype.constructor = Declare_temporary_table_itemContext; Declare_temporary_table_itemContext.prototype.T_TEMPORARY = function() { - return this.getToken(HiveSqlParser.T_TEMPORARY, 0); + return this.getToken(HiveSql.T_TEMPORARY, 0); }; Declare_temporary_table_itemContext.prototype.T_TABLE = function() { - return this.getToken(HiveSqlParser.T_TABLE, 0); + return this.getToken(HiveSql.T_TABLE, 0); }; Declare_temporary_table_itemContext.prototype.ident = function() { @@ -8058,7 +8114,7 @@ Declare_temporary_table_itemContext.prototype.create_table_definition = function }; Declare_temporary_table_itemContext.prototype.T_GLOBAL = function() { - return this.getToken(HiveSqlParser.T_GLOBAL, 0); + return this.getToken(HiveSql.T_GLOBAL, 0); }; Declare_temporary_table_itemContext.prototype.create_table_preoptions = function() { @@ -8088,33 +8144,33 @@ Declare_temporary_table_itemContext.prototype.accept = function(visitor) { -HiveSqlParser.Declare_temporary_table_itemContext = Declare_temporary_table_itemContext; +HiveSql.Declare_temporary_table_itemContext = Declare_temporary_table_itemContext; -HiveSqlParser.prototype.declare_temporary_table_item = function() { +HiveSql.prototype.declare_temporary_table_item = function() { var localctx = new Declare_temporary_table_itemContext(this, this._ctx, this.state); - this.enterRule(localctx, 64, HiveSqlParser.RULE_declare_temporary_table_item); + this.enterRule(localctx, 64, HiveSql.RULE_declare_temporary_table_item); var _la = 0; // Token type try { this.enterOuterAlt(localctx, 1); this.state = 834; this._errHandler.sync(this); _la = this._input.LA(1); - if(_la===HiveSqlParser.T_GLOBAL) { + if(_la===HiveSql.T_GLOBAL) { this.state = 833; - this.match(HiveSqlParser.T_GLOBAL); + this.match(HiveSql.T_GLOBAL); } this.state = 836; - this.match(HiveSqlParser.T_TEMPORARY); + this.match(HiveSql.T_TEMPORARY); this.state = 837; - this.match(HiveSqlParser.T_TABLE); + this.match(HiveSql.T_TABLE); this.state = 838; this.ident(); this.state = 840; this._errHandler.sync(this); _la = this._input.LA(1); - if(_la===HiveSqlParser.T_COMMA || _la===HiveSqlParser.T_STORED || _la===HiveSqlParser.T_ROW) { + if(_la===HiveSql.T_ROW || _la===HiveSql.T_STORED || _la===HiveSql.T_COMMA) { this.state = 839; this.create_table_preoptions(); } @@ -8145,7 +8201,7 @@ function Create_table_stmtContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_create_table_stmt; + this.ruleIndex = HiveSql.RULE_create_table_stmt; return this; } @@ -8153,11 +8209,11 @@ Create_table_stmtContext.prototype = Object.create(antlr4.ParserRuleContext.prot Create_table_stmtContext.prototype.constructor = Create_table_stmtContext; Create_table_stmtContext.prototype.T_CREATE = function() { - return this.getToken(HiveSqlParser.T_CREATE, 0); + return this.getToken(HiveSql.T_CREATE, 0); }; Create_table_stmtContext.prototype.T_TABLE = function() { - return this.getToken(HiveSqlParser.T_TABLE, 0); + return this.getToken(HiveSql.T_TABLE, 0); }; Create_table_stmtContext.prototype.table_name = function() { @@ -8169,15 +8225,15 @@ Create_table_stmtContext.prototype.create_table_definition = function() { }; Create_table_stmtContext.prototype.T_IF = function() { - return this.getToken(HiveSqlParser.T_IF, 0); + return this.getToken(HiveSql.T_IF, 0); }; Create_table_stmtContext.prototype.T_NOT = function() { - return this.getToken(HiveSqlParser.T_NOT, 0); + return this.getToken(HiveSql.T_NOT, 0); }; Create_table_stmtContext.prototype.T_EXISTS = function() { - return this.getToken(HiveSqlParser.T_EXISTS, 0); + return this.getToken(HiveSql.T_EXISTS, 0); }; Create_table_stmtContext.prototype.create_table_preoptions = function() { @@ -8207,29 +8263,29 @@ Create_table_stmtContext.prototype.accept = function(visitor) { -HiveSqlParser.Create_table_stmtContext = Create_table_stmtContext; +HiveSql.Create_table_stmtContext = Create_table_stmtContext; -HiveSqlParser.prototype.create_table_stmt = function() { +HiveSql.prototype.create_table_stmt = function() { var localctx = new Create_table_stmtContext(this, this._ctx, this.state); - this.enterRule(localctx, 66, HiveSqlParser.RULE_create_table_stmt); + this.enterRule(localctx, 66, HiveSql.RULE_create_table_stmt); var _la = 0; // Token type try { this.enterOuterAlt(localctx, 1); this.state = 844; - this.match(HiveSqlParser.T_CREATE); + this.match(HiveSql.T_CREATE); this.state = 845; - this.match(HiveSqlParser.T_TABLE); + this.match(HiveSql.T_TABLE); this.state = 849; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,51,this._ctx); if(la_===1) { this.state = 846; - this.match(HiveSqlParser.T_IF); + this.match(HiveSql.T_IF); this.state = 847; - this.match(HiveSqlParser.T_NOT); + this.match(HiveSql.T_NOT); this.state = 848; - this.match(HiveSqlParser.T_EXISTS); + this.match(HiveSql.T_EXISTS); } this.state = 851; @@ -8237,7 +8293,7 @@ HiveSqlParser.prototype.create_table_stmt = function() { this.state = 853; this._errHandler.sync(this); _la = this._input.LA(1); - if(_la===HiveSqlParser.T_COMMA || _la===HiveSqlParser.T_STORED || _la===HiveSqlParser.T_ROW) { + if(_la===HiveSql.T_ROW || _la===HiveSql.T_STORED || _la===HiveSql.T_COMMA) { this.state = 852; this.create_table_preoptions(); } @@ -8268,7 +8324,7 @@ function Create_local_temp_table_stmtContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_create_local_temp_table_stmt; + this.ruleIndex = HiveSql.RULE_create_local_temp_table_stmt; return this; } @@ -8276,11 +8332,11 @@ Create_local_temp_table_stmtContext.prototype = Object.create(antlr4.ParserRuleC Create_local_temp_table_stmtContext.prototype.constructor = Create_local_temp_table_stmtContext; Create_local_temp_table_stmtContext.prototype.T_CREATE = function() { - return this.getToken(HiveSqlParser.T_CREATE, 0); + return this.getToken(HiveSql.T_CREATE, 0); }; Create_local_temp_table_stmtContext.prototype.T_TABLE = function() { - return this.getToken(HiveSqlParser.T_TABLE, 0); + return this.getToken(HiveSql.T_TABLE, 0); }; Create_local_temp_table_stmtContext.prototype.ident = function() { @@ -8292,15 +8348,15 @@ Create_local_temp_table_stmtContext.prototype.create_table_definition = function }; Create_local_temp_table_stmtContext.prototype.T_LOCAL = function() { - return this.getToken(HiveSqlParser.T_LOCAL, 0); + return this.getToken(HiveSql.T_LOCAL, 0); }; Create_local_temp_table_stmtContext.prototype.T_TEMPORARY = function() { - return this.getToken(HiveSqlParser.T_TEMPORARY, 0); + return this.getToken(HiveSql.T_TEMPORARY, 0); }; Create_local_temp_table_stmtContext.prototype.T_VOLATILE = function() { - return this.getToken(HiveSqlParser.T_VOLATILE, 0); + return this.getToken(HiveSql.T_VOLATILE, 0); }; Create_local_temp_table_stmtContext.prototype.create_table_preoptions = function() { @@ -8308,11 +8364,11 @@ Create_local_temp_table_stmtContext.prototype.create_table_preoptions = function }; Create_local_temp_table_stmtContext.prototype.T_SET = function() { - return this.getToken(HiveSqlParser.T_SET, 0); + return this.getToken(HiveSql.T_SET, 0); }; Create_local_temp_table_stmtContext.prototype.T_MULTISET = function() { - return this.getToken(HiveSqlParser.T_MULTISET, 0); + return this.getToken(HiveSql.T_MULTISET, 0); }; Create_local_temp_table_stmtContext.prototype.enterRule = function(listener) { @@ -8338,36 +8394,36 @@ Create_local_temp_table_stmtContext.prototype.accept = function(visitor) { -HiveSqlParser.Create_local_temp_table_stmtContext = Create_local_temp_table_stmtContext; +HiveSql.Create_local_temp_table_stmtContext = Create_local_temp_table_stmtContext; -HiveSqlParser.prototype.create_local_temp_table_stmt = function() { +HiveSql.prototype.create_local_temp_table_stmt = function() { var localctx = new Create_local_temp_table_stmtContext(this, this._ctx, this.state); - this.enterRule(localctx, 68, HiveSqlParser.RULE_create_local_temp_table_stmt); + this.enterRule(localctx, 68, HiveSql.RULE_create_local_temp_table_stmt); var _la = 0; // Token type try { this.enterOuterAlt(localctx, 1); this.state = 857; - this.match(HiveSqlParser.T_CREATE); + this.match(HiveSql.T_CREATE); this.state = 864; this._errHandler.sync(this); switch(this._input.LA(1)) { - case HiveSqlParser.T_LOCAL: + case HiveSql.T_LOCAL: this.state = 858; - this.match(HiveSqlParser.T_LOCAL); + this.match(HiveSql.T_LOCAL); this.state = 859; - this.match(HiveSqlParser.T_TEMPORARY); + this.match(HiveSql.T_TEMPORARY); break; - case HiveSqlParser.T_SET: - case HiveSqlParser.T_MULTISET: - case HiveSqlParser.T_VOLATILE: + case HiveSql.T_MULTISET: + case HiveSql.T_SET: + case HiveSql.T_VOLATILE: this.state = 861; this._errHandler.sync(this); _la = this._input.LA(1); - if(_la===HiveSqlParser.T_SET || _la===HiveSqlParser.T_MULTISET) { + if(_la===HiveSql.T_MULTISET || _la===HiveSql.T_SET) { this.state = 860; _la = this._input.LA(1); - if(!(_la===HiveSqlParser.T_SET || _la===HiveSqlParser.T_MULTISET)) { + if(!(_la===HiveSql.T_MULTISET || _la===HiveSql.T_SET)) { this._errHandler.recoverInline(this); } else { @@ -8377,19 +8433,19 @@ HiveSqlParser.prototype.create_local_temp_table_stmt = function() { } this.state = 863; - this.match(HiveSqlParser.T_VOLATILE); + this.match(HiveSql.T_VOLATILE); break; default: throw new antlr4.error.NoViableAltException(this); } this.state = 866; - this.match(HiveSqlParser.T_TABLE); + this.match(HiveSql.T_TABLE); this.state = 867; this.ident(); this.state = 869; this._errHandler.sync(this); _la = this._input.LA(1); - if(_la===HiveSqlParser.T_COMMA || _la===HiveSqlParser.T_STORED || _la===HiveSqlParser.T_ROW) { + if(_la===HiveSql.T_ROW || _la===HiveSql.T_STORED || _la===HiveSql.T_COMMA) { this.state = 868; this.create_table_preoptions(); } @@ -8420,7 +8476,7 @@ function Create_table_definitionContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_create_table_definition; + this.ruleIndex = HiveSql.RULE_create_table_definition; return this; } @@ -8428,7 +8484,7 @@ Create_table_definitionContext.prototype = Object.create(antlr4.ParserRuleContex Create_table_definitionContext.prototype.constructor = Create_table_definitionContext; Create_table_definitionContext.prototype.T_OPEN_P = function() { - return this.getToken(HiveSqlParser.T_OPEN_P, 0); + return this.getToken(HiveSql.T_OPEN_P, 0); }; Create_table_definitionContext.prototype.select_stmt = function() { @@ -8436,27 +8492,19 @@ Create_table_definitionContext.prototype.select_stmt = function() { }; Create_table_definitionContext.prototype.T_CLOSE_P = function() { - return this.getToken(HiveSqlParser.T_CLOSE_P, 0); + return this.getToken(HiveSql.T_CLOSE_P, 0); }; Create_table_definitionContext.prototype.create_table_columns = function() { return this.getTypedRuleContext(Create_table_columnsContext,0); }; -Create_table_definitionContext.prototype.T_LIKE = function() { - return this.getToken(HiveSqlParser.T_LIKE, 0); -}; - -Create_table_definitionContext.prototype.table_name = function() { - return this.getTypedRuleContext(Table_nameContext,0); -}; - Create_table_definitionContext.prototype.create_table_options = function() { return this.getTypedRuleContext(Create_table_optionsContext,0); }; Create_table_definitionContext.prototype.T_AS = function() { - return this.getToken(HiveSqlParser.T_AS, 0); + return this.getToken(HiveSql.T_AS, 0); }; Create_table_definitionContext.prototype.enterRule = function(listener) { @@ -8482,16 +8530,16 @@ Create_table_definitionContext.prototype.accept = function(visitor) { -HiveSqlParser.Create_table_definitionContext = Create_table_definitionContext; +HiveSql.Create_table_definitionContext = Create_table_definitionContext; -HiveSqlParser.prototype.create_table_definition = function() { +HiveSql.prototype.create_table_definition = function() { var localctx = new Create_table_definitionContext(this, this._ctx, this.state); - this.enterRule(localctx, 70, HiveSqlParser.RULE_create_table_definition); + this.enterRule(localctx, 70, HiveSql.RULE_create_table_definition); var _la = 0; // Token type try { this.enterOuterAlt(localctx, 1); - this.state = 890; + this.state = 888; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,58,this._ctx); switch(la_) { @@ -8499,26 +8547,26 @@ HiveSqlParser.prototype.create_table_definition = function() { this.state = 874; this._errHandler.sync(this); _la = this._input.LA(1); - if(_la===HiveSqlParser.T_AS) { + if(_la===HiveSql.T_AS) { this.state = 873; - this.match(HiveSqlParser.T_AS); + this.match(HiveSql.T_AS); } this.state = 876; - this.match(HiveSqlParser.T_OPEN_P); + this.match(HiveSql.T_OPEN_P); this.state = 877; this.select_stmt(); this.state = 878; - this.match(HiveSqlParser.T_CLOSE_P); + this.match(HiveSql.T_CLOSE_P); break; case 2: this.state = 881; this._errHandler.sync(this); _la = this._input.LA(1); - if(_la===HiveSqlParser.T_AS) { + if(_la===HiveSql.T_AS) { this.state = 880; - this.match(HiveSqlParser.T_AS); + this.match(HiveSql.T_AS); } this.state = 883; @@ -8527,26 +8575,19 @@ HiveSqlParser.prototype.create_table_definition = function() { case 3: this.state = 884; - this.match(HiveSqlParser.T_OPEN_P); + this.match(HiveSql.T_OPEN_P); this.state = 885; this.create_table_columns(); this.state = 886; - this.match(HiveSqlParser.T_CLOSE_P); - break; - - case 4: - this.state = 888; - this.match(HiveSqlParser.T_LIKE); - this.state = 889; - this.table_name(); + this.match(HiveSql.T_CLOSE_P); break; } - this.state = 893; + this.state = 891; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,59,this._ctx); if(la_===1) { - this.state = 892; + this.state = 890; this.create_table_options(); } @@ -8574,7 +8615,7 @@ function Create_table_columnsContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_create_table_columns; + this.ruleIndex = HiveSql.RULE_create_table_columns; return this; } @@ -8597,9 +8638,9 @@ Create_table_columnsContext.prototype.T_COMMA = function(i) { i = null; } if(i===null) { - return this.getTokens(HiveSqlParser.T_COMMA); + return this.getTokens(HiveSql.T_COMMA); } else { - return this.getToken(HiveSqlParser.T_COMMA, i); + return this.getToken(HiveSql.T_COMMA, i); } }; @@ -8627,26 +8668,26 @@ Create_table_columnsContext.prototype.accept = function(visitor) { -HiveSqlParser.Create_table_columnsContext = Create_table_columnsContext; +HiveSql.Create_table_columnsContext = Create_table_columnsContext; -HiveSqlParser.prototype.create_table_columns = function() { +HiveSql.prototype.create_table_columns = function() { var localctx = new Create_table_columnsContext(this, this._ctx, this.state); - this.enterRule(localctx, 72, HiveSqlParser.RULE_create_table_columns); + this.enterRule(localctx, 72, HiveSql.RULE_create_table_columns); var _la = 0; // Token type try { this.enterOuterAlt(localctx, 1); - this.state = 895; + this.state = 893; this.create_table_columns_item(); - this.state = 900; + this.state = 898; this._errHandler.sync(this); _la = this._input.LA(1); - while(_la===HiveSqlParser.T_COMMA) { - this.state = 896; - this.match(HiveSqlParser.T_COMMA); - this.state = 897; + while(_la===HiveSql.T_COMMA) { + this.state = 894; + this.match(HiveSql.T_COMMA); + this.state = 895; this.create_table_columns_item(); - this.state = 902; + this.state = 900; this._errHandler.sync(this); _la = this._input.LA(1); } @@ -8674,7 +8715,7 @@ function Create_table_columns_itemContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_create_table_columns_item; + this.ruleIndex = HiveSql.RULE_create_table_columns_item; return this; } @@ -8720,7 +8761,7 @@ Create_table_columns_itemContext.prototype.create_table_column_cons = function() }; Create_table_columns_itemContext.prototype.T_CONSTRAINT = function() { - return this.getToken(HiveSqlParser.T_CONSTRAINT, 0); + return this.getToken(HiveSql.T_CONSTRAINT, 0); }; Create_table_columns_itemContext.prototype.ident = function() { @@ -8750,52 +8791,52 @@ Create_table_columns_itemContext.prototype.accept = function(visitor) { -HiveSqlParser.Create_table_columns_itemContext = Create_table_columns_itemContext; +HiveSql.Create_table_columns_itemContext = Create_table_columns_itemContext; -HiveSqlParser.prototype.create_table_columns_item = function() { +HiveSql.prototype.create_table_columns_item = function() { var localctx = new Create_table_columns_itemContext(this, this._ctx, this.state); - this.enterRule(localctx, 74, HiveSqlParser.RULE_create_table_columns_item); + this.enterRule(localctx, 74, HiveSql.RULE_create_table_columns_item); var _la = 0; // Token type try { - this.state = 925; + this.state = 923; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,65,this._ctx); switch(la_) { case 1: this.enterOuterAlt(localctx, 1); - this.state = 903; + this.state = 901; this.column_name(); - this.state = 904; + this.state = 902; this.dtype(); - this.state = 906; + this.state = 904; this._errHandler.sync(this); _la = this._input.LA(1); - if(_la===HiveSqlParser.T_OPEN_P) { - this.state = 905; + if(_la===HiveSql.T_OPEN_P) { + this.state = 903; this.dtype_len(); } - this.state = 911; + this.state = 909; this._errHandler.sync(this); var _alt = this._interp.adaptivePredict(this._input,62,this._ctx) while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { if(_alt===1) { - this.state = 908; + this.state = 906; this.dtype_attr(); } - this.state = 913; + this.state = 911; this._errHandler.sync(this); _alt = this._interp.adaptivePredict(this._input,62,this._ctx); } - this.state = 917; + this.state = 915; this._errHandler.sync(this); _la = this._input.LA(1); - while(((((_la - 19)) & ~0x1f) == 0 && ((1 << (_la - 19)) & ((1 << (HiveSqlParser.T_NULL - 19)) | (1 << (HiveSqlParser.T_COLON - 19)) | (1 << (HiveSqlParser.T_EQUAL - 19)) | (1 << (HiveSqlParser.T_WITH - 19)))) !== 0) || ((((_la - 54)) & ~0x1f) == 0 && ((1 << (_la - 54)) & ((1 << (HiveSqlParser.T_NOT - 54)) | (1 << (HiveSqlParser.T_PRIMARY - 54)) | (1 << (HiveSqlParser.T_UNIQUE - 54)) | (1 << (HiveSqlParser.T_REFERENCES - 54)) | (1 << (HiveSqlParser.T_IDENTITY - 54)) | (1 << (HiveSqlParser.T_AUTO_INCREMENT - 54)) | (1 << (HiveSqlParser.T_ENABLE - 54)) | (1 << (HiveSqlParser.T_DEFAULT - 54)))) !== 0)) { - this.state = 914; + while(_la===HiveSql.T_AUTO_INCREMENT || _la===HiveSql.T_DEFAULT || _la===HiveSql.T_ENABLE || _la===HiveSql.T_IDENTITY || ((((_la - 188)) & ~0x1f) == 0 && ((1 << (_la - 188)) & ((1 << (HiveSql.T_NOT - 188)) | (1 << (HiveSql.T_NULL - 188)) | (1 << (HiveSql.T_PRIMARY - 188)))) !== 0) || _la===HiveSql.T_REFERENCES || _la===HiveSql.T_UNIQUE || _la===HiveSql.T_WITH || _la===HiveSql.T_COLON || _la===HiveSql.T_EQUAL) { + this.state = 912; this.create_table_column_inline_cons(); - this.state = 919; + this.state = 917; this._errHandler.sync(this); _la = this._input.LA(1); } @@ -8803,17 +8844,17 @@ HiveSqlParser.prototype.create_table_columns_item = function() { case 2: this.enterOuterAlt(localctx, 2); - this.state = 922; + this.state = 920; this._errHandler.sync(this); _la = this._input.LA(1); - if(_la===HiveSqlParser.T_CONSTRAINT) { - this.state = 920; - this.match(HiveSqlParser.T_CONSTRAINT); - this.state = 921; + if(_la===HiveSql.T_CONSTRAINT) { + this.state = 918; + this.match(HiveSql.T_CONSTRAINT); + this.state = 919; this.ident(); } - this.state = 924; + this.state = 922; this.create_table_column_cons(); break; @@ -8842,7 +8883,7 @@ function Column_nameContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_column_name; + this.ruleIndex = HiveSql.RULE_column_name; return this; } @@ -8876,15 +8917,15 @@ Column_nameContext.prototype.accept = function(visitor) { -HiveSqlParser.Column_nameContext = Column_nameContext; +HiveSql.Column_nameContext = Column_nameContext; -HiveSqlParser.prototype.column_name = function() { +HiveSql.prototype.column_name = function() { var localctx = new Column_nameContext(this, this._ctx, this.state); - this.enterRule(localctx, 76, HiveSqlParser.RULE_column_name); + this.enterRule(localctx, 76, HiveSql.RULE_column_name); try { this.enterOuterAlt(localctx, 1); - this.state = 927; + this.state = 925; this.ident(); } catch (re) { if(re instanceof antlr4.error.RecognitionException) { @@ -8910,7 +8951,7 @@ function Create_table_column_inline_consContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_create_table_column_inline_cons; + this.ruleIndex = HiveSql.RULE_create_table_column_inline_cons; return this; } @@ -8922,27 +8963,27 @@ Create_table_column_inline_consContext.prototype.dtype_default = function() { }; Create_table_column_inline_consContext.prototype.T_NULL = function() { - return this.getToken(HiveSqlParser.T_NULL, 0); + return this.getToken(HiveSql.T_NULL, 0); }; Create_table_column_inline_consContext.prototype.T_NOT = function() { - return this.getToken(HiveSqlParser.T_NOT, 0); + return this.getToken(HiveSql.T_NOT, 0); }; Create_table_column_inline_consContext.prototype.T_PRIMARY = function() { - return this.getToken(HiveSqlParser.T_PRIMARY, 0); + return this.getToken(HiveSql.T_PRIMARY, 0); }; Create_table_column_inline_consContext.prototype.T_KEY = function() { - return this.getToken(HiveSqlParser.T_KEY, 0); + return this.getToken(HiveSql.T_KEY, 0); }; Create_table_column_inline_consContext.prototype.T_UNIQUE = function() { - return this.getToken(HiveSqlParser.T_UNIQUE, 0); + return this.getToken(HiveSql.T_UNIQUE, 0); }; Create_table_column_inline_consContext.prototype.T_REFERENCES = function() { - return this.getToken(HiveSqlParser.T_REFERENCES, 0); + return this.getToken(HiveSql.T_REFERENCES, 0); }; Create_table_column_inline_consContext.prototype.table_name = function() { @@ -8950,7 +8991,7 @@ Create_table_column_inline_consContext.prototype.table_name = function() { }; Create_table_column_inline_consContext.prototype.T_OPEN_P = function() { - return this.getToken(HiveSqlParser.T_OPEN_P, 0); + return this.getToken(HiveSql.T_OPEN_P, 0); }; Create_table_column_inline_consContext.prototype.ident = function() { @@ -8958,7 +8999,7 @@ Create_table_column_inline_consContext.prototype.ident = function() { }; Create_table_column_inline_consContext.prototype.T_CLOSE_P = function() { - return this.getToken(HiveSqlParser.T_CLOSE_P, 0); + return this.getToken(HiveSql.T_CLOSE_P, 0); }; Create_table_column_inline_consContext.prototype.create_table_fk_action = function(i) { @@ -8973,7 +9014,7 @@ Create_table_column_inline_consContext.prototype.create_table_fk_action = functi }; Create_table_column_inline_consContext.prototype.T_IDENTITY = function() { - return this.getToken(HiveSqlParser.T_IDENTITY, 0); + return this.getToken(HiveSql.T_IDENTITY, 0); }; Create_table_column_inline_consContext.prototype.L_INT = function(i) { @@ -8981,9 +9022,9 @@ Create_table_column_inline_consContext.prototype.L_INT = function(i) { i = null; } if(i===null) { - return this.getTokens(HiveSqlParser.L_INT); + return this.getTokens(HiveSql.L_INT); } else { - return this.getToken(HiveSqlParser.L_INT, i); + return this.getToken(HiveSql.L_INT, i); } }; @@ -8993,19 +9034,19 @@ Create_table_column_inline_consContext.prototype.T_COMMA = function(i) { i = null; } if(i===null) { - return this.getTokens(HiveSqlParser.T_COMMA); + return this.getTokens(HiveSql.T_COMMA); } else { - return this.getToken(HiveSqlParser.T_COMMA, i); + return this.getToken(HiveSql.T_COMMA, i); } }; Create_table_column_inline_consContext.prototype.T_AUTO_INCREMENT = function() { - return this.getToken(HiveSqlParser.T_AUTO_INCREMENT, 0); + return this.getToken(HiveSql.T_AUTO_INCREMENT, 0); }; Create_table_column_inline_consContext.prototype.T_ENABLE = function() { - return this.getToken(HiveSqlParser.T_ENABLE, 0); + return this.getToken(HiveSql.T_ENABLE, 0); }; Create_table_column_inline_consContext.prototype.enterRule = function(listener) { @@ -9031,106 +9072,106 @@ Create_table_column_inline_consContext.prototype.accept = function(visitor) { -HiveSqlParser.Create_table_column_inline_consContext = Create_table_column_inline_consContext; +HiveSql.Create_table_column_inline_consContext = Create_table_column_inline_consContext; -HiveSqlParser.prototype.create_table_column_inline_cons = function() { +HiveSql.prototype.create_table_column_inline_cons = function() { var localctx = new Create_table_column_inline_consContext(this, this._ctx, this.state); - this.enterRule(localctx, 78, HiveSqlParser.RULE_create_table_column_inline_cons); + this.enterRule(localctx, 78, HiveSql.RULE_create_table_column_inline_cons); var _la = 0; // Token type try { - this.state = 961; + this.state = 959; this._errHandler.sync(this); switch(this._input.LA(1)) { - case HiveSqlParser.T_COLON: - case HiveSqlParser.T_EQUAL: - case HiveSqlParser.T_WITH: - case HiveSqlParser.T_DEFAULT: + case HiveSql.T_DEFAULT: + case HiveSql.T_WITH: + case HiveSql.T_COLON: + case HiveSql.T_EQUAL: this.enterOuterAlt(localctx, 1); - this.state = 929; + this.state = 927; this.dtype_default(); break; - case HiveSqlParser.T_NULL: - case HiveSqlParser.T_NOT: + case HiveSql.T_NOT: + case HiveSql.T_NULL: this.enterOuterAlt(localctx, 2); - this.state = 931; + this.state = 929; this._errHandler.sync(this); _la = this._input.LA(1); - if(_la===HiveSqlParser.T_NOT) { - this.state = 930; - this.match(HiveSqlParser.T_NOT); + if(_la===HiveSql.T_NOT) { + this.state = 928; + this.match(HiveSql.T_NOT); } - this.state = 933; - this.match(HiveSqlParser.T_NULL); + this.state = 931; + this.match(HiveSql.T_NULL); break; - case HiveSqlParser.T_PRIMARY: + case HiveSql.T_PRIMARY: this.enterOuterAlt(localctx, 3); - this.state = 934; - this.match(HiveSqlParser.T_PRIMARY); - this.state = 935; - this.match(HiveSqlParser.T_KEY); + this.state = 932; + this.match(HiveSql.T_PRIMARY); + this.state = 933; + this.match(HiveSql.T_KEY); break; - case HiveSqlParser.T_UNIQUE: + case HiveSql.T_UNIQUE: this.enterOuterAlt(localctx, 4); - this.state = 936; - this.match(HiveSqlParser.T_UNIQUE); + this.state = 934; + this.match(HiveSql.T_UNIQUE); break; - case HiveSqlParser.T_REFERENCES: + case HiveSql.T_REFERENCES: this.enterOuterAlt(localctx, 5); - this.state = 937; - this.match(HiveSqlParser.T_REFERENCES); - this.state = 938; + this.state = 935; + this.match(HiveSql.T_REFERENCES); + this.state = 936; this.table_name(); - this.state = 939; - this.match(HiveSqlParser.T_OPEN_P); - this.state = 940; + this.state = 937; + this.match(HiveSql.T_OPEN_P); + this.state = 938; this.ident(); - this.state = 941; - this.match(HiveSqlParser.T_CLOSE_P); - this.state = 945; + this.state = 939; + this.match(HiveSql.T_CLOSE_P); + this.state = 943; this._errHandler.sync(this); _la = this._input.LA(1); - while(_la===HiveSqlParser.T_ON) { - this.state = 942; + while(_la===HiveSql.T_ON) { + this.state = 940; this.create_table_fk_action(); - this.state = 947; + this.state = 945; this._errHandler.sync(this); _la = this._input.LA(1); } break; - case HiveSqlParser.T_IDENTITY: + case HiveSql.T_IDENTITY: this.enterOuterAlt(localctx, 6); + this.state = 946; + this.match(HiveSql.T_IDENTITY); + this.state = 947; + this.match(HiveSql.T_OPEN_P); this.state = 948; - this.match(HiveSqlParser.T_IDENTITY); - this.state = 949; - this.match(HiveSqlParser.T_OPEN_P); - this.state = 950; - this.match(HiveSqlParser.L_INT); - this.state = 955; + this.match(HiveSql.L_INT); + this.state = 953; this._errHandler.sync(this); _la = this._input.LA(1); - while(_la===HiveSqlParser.T_COMMA) { - this.state = 951; - this.match(HiveSqlParser.T_COMMA); - this.state = 952; - this.match(HiveSqlParser.L_INT); - this.state = 957; + while(_la===HiveSql.T_COMMA) { + this.state = 949; + this.match(HiveSql.T_COMMA); + this.state = 950; + this.match(HiveSql.L_INT); + this.state = 955; this._errHandler.sync(this); _la = this._input.LA(1); } - this.state = 958; - this.match(HiveSqlParser.T_CLOSE_P); + this.state = 956; + this.match(HiveSql.T_CLOSE_P); break; - case HiveSqlParser.T_AUTO_INCREMENT: + case HiveSql.T_AUTO_INCREMENT: this.enterOuterAlt(localctx, 7); - this.state = 959; - this.match(HiveSqlParser.T_AUTO_INCREMENT); + this.state = 957; + this.match(HiveSql.T_AUTO_INCREMENT); break; - case HiveSqlParser.T_ENABLE: + case HiveSql.T_ENABLE: this.enterOuterAlt(localctx, 8); - this.state = 960; - this.match(HiveSqlParser.T_ENABLE); + this.state = 958; + this.match(HiveSql.T_ENABLE); break; default: throw new antlr4.error.NoViableAltException(this); @@ -9159,7 +9200,7 @@ function Create_table_column_consContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_create_table_column_cons; + this.ruleIndex = HiveSql.RULE_create_table_column_cons; return this; } @@ -9167,11 +9208,11 @@ Create_table_column_consContext.prototype = Object.create(antlr4.ParserRuleConte Create_table_column_consContext.prototype.constructor = Create_table_column_consContext; Create_table_column_consContext.prototype.T_PRIMARY = function() { - return this.getToken(HiveSqlParser.T_PRIMARY, 0); + return this.getToken(HiveSql.T_PRIMARY, 0); }; Create_table_column_consContext.prototype.T_KEY = function() { - return this.getToken(HiveSqlParser.T_KEY, 0); + return this.getToken(HiveSql.T_KEY, 0); }; Create_table_column_consContext.prototype.T_OPEN_P = function(i) { @@ -9179,9 +9220,9 @@ Create_table_column_consContext.prototype.T_OPEN_P = function(i) { i = null; } if(i===null) { - return this.getTokens(HiveSqlParser.T_OPEN_P); + return this.getTokens(HiveSql.T_OPEN_P); } else { - return this.getToken(HiveSqlParser.T_OPEN_P, i); + return this.getToken(HiveSql.T_OPEN_P, i); } }; @@ -9202,15 +9243,15 @@ Create_table_column_consContext.prototype.T_CLOSE_P = function(i) { i = null; } if(i===null) { - return this.getTokens(HiveSqlParser.T_CLOSE_P); + return this.getTokens(HiveSql.T_CLOSE_P); } else { - return this.getToken(HiveSqlParser.T_CLOSE_P, i); + return this.getToken(HiveSql.T_CLOSE_P, i); } }; Create_table_column_consContext.prototype.T_CLUSTERED = function() { - return this.getToken(HiveSqlParser.T_CLUSTERED, 0); + return this.getToken(HiveSql.T_CLUSTERED, 0); }; Create_table_column_consContext.prototype.T_COMMA = function(i) { @@ -9218,15 +9259,15 @@ Create_table_column_consContext.prototype.T_COMMA = function(i) { i = null; } if(i===null) { - return this.getTokens(HiveSqlParser.T_COMMA); + return this.getTokens(HiveSql.T_COMMA); } else { - return this.getToken(HiveSqlParser.T_COMMA, i); + return this.getToken(HiveSql.T_COMMA, i); } }; Create_table_column_consContext.prototype.T_ENABLE = function() { - return this.getToken(HiveSqlParser.T_ENABLE, 0); + return this.getToken(HiveSql.T_ENABLE, 0); }; Create_table_column_consContext.prototype.index_storage_clause = function() { @@ -9238,9 +9279,9 @@ Create_table_column_consContext.prototype.T_ASC = function(i) { i = null; } if(i===null) { - return this.getTokens(HiveSqlParser.T_ASC); + return this.getTokens(HiveSql.T_ASC); } else { - return this.getToken(HiveSqlParser.T_ASC, i); + return this.getToken(HiveSql.T_ASC, i); } }; @@ -9250,19 +9291,19 @@ Create_table_column_consContext.prototype.T_DESC = function(i) { i = null; } if(i===null) { - return this.getTokens(HiveSqlParser.T_DESC); + return this.getTokens(HiveSql.T_DESC); } else { - return this.getToken(HiveSqlParser.T_DESC, i); + return this.getToken(HiveSql.T_DESC, i); } }; Create_table_column_consContext.prototype.T_FOREIGN = function() { - return this.getToken(HiveSqlParser.T_FOREIGN, 0); + return this.getToken(HiveSql.T_FOREIGN, 0); }; Create_table_column_consContext.prototype.T_REFERENCES = function() { - return this.getToken(HiveSqlParser.T_REFERENCES, 0); + return this.getToken(HiveSql.T_REFERENCES, 0); }; Create_table_column_consContext.prototype.table_name = function() { @@ -9303,42 +9344,42 @@ Create_table_column_consContext.prototype.accept = function(visitor) { -HiveSqlParser.Create_table_column_consContext = Create_table_column_consContext; +HiveSql.Create_table_column_consContext = Create_table_column_consContext; -HiveSqlParser.prototype.create_table_column_cons = function() { +HiveSql.prototype.create_table_column_cons = function() { var localctx = new Create_table_column_consContext(this, this._ctx, this.state); - this.enterRule(localctx, 80, HiveSqlParser.RULE_create_table_column_cons); + this.enterRule(localctx, 80, HiveSql.RULE_create_table_column_cons); var _la = 0; // Token type try { - this.state = 1020; + this.state = 1018; this._errHandler.sync(this); switch(this._input.LA(1)) { - case HiveSqlParser.T_PRIMARY: + case HiveSql.T_PRIMARY: this.enterOuterAlt(localctx, 1); - this.state = 963; - this.match(HiveSqlParser.T_PRIMARY); + this.state = 961; + this.match(HiveSql.T_PRIMARY); + this.state = 962; + this.match(HiveSql.T_KEY); this.state = 964; - this.match(HiveSqlParser.T_KEY); - this.state = 966; this._errHandler.sync(this); _la = this._input.LA(1); - if(_la===HiveSqlParser.T_CLUSTERED) { - this.state = 965; - this.match(HiveSqlParser.T_CLUSTERED); + if(_la===HiveSql.T_CLUSTERED) { + this.state = 963; + this.match(HiveSql.T_CLUSTERED); } - this.state = 968; - this.match(HiveSqlParser.T_OPEN_P); - this.state = 969; + this.state = 966; + this.match(HiveSql.T_OPEN_P); + this.state = 967; this.ident(); - this.state = 971; + this.state = 969; this._errHandler.sync(this); _la = this._input.LA(1); - if(_la===HiveSqlParser.T_ASC || _la===HiveSqlParser.T_DESC) { - this.state = 970; + if(_la===HiveSql.T_ASC || _la===HiveSql.T_DESC) { + this.state = 968; _la = this._input.LA(1); - if(!(_la===HiveSqlParser.T_ASC || _la===HiveSqlParser.T_DESC)) { + if(!(_la===HiveSql.T_ASC || _la===HiveSql.T_DESC)) { this._errHandler.recoverInline(this); } else { @@ -9347,21 +9388,21 @@ HiveSqlParser.prototype.create_table_column_cons = function() { } } - this.state = 980; + this.state = 978; this._errHandler.sync(this); _la = this._input.LA(1); - while(_la===HiveSqlParser.T_COMMA) { - this.state = 973; - this.match(HiveSqlParser.T_COMMA); - this.state = 974; + while(_la===HiveSql.T_COMMA) { + this.state = 971; + this.match(HiveSql.T_COMMA); + this.state = 972; this.ident(); - this.state = 976; + this.state = 974; this._errHandler.sync(this); _la = this._input.LA(1); - if(_la===HiveSqlParser.T_ASC || _la===HiveSqlParser.T_DESC) { - this.state = 975; + if(_la===HiveSql.T_ASC || _la===HiveSql.T_DESC) { + this.state = 973; _la = this._input.LA(1); - if(!(_la===HiveSqlParser.T_ASC || _la===HiveSqlParser.T_DESC)) { + if(!(_la===HiveSql.T_ASC || _la===HiveSql.T_DESC)) { this._errHandler.recoverInline(this); } else { @@ -9370,82 +9411,82 @@ HiveSqlParser.prototype.create_table_column_cons = function() { } } - this.state = 982; + this.state = 980; this._errHandler.sync(this); _la = this._input.LA(1); } + this.state = 981; + this.match(HiveSql.T_CLOSE_P); this.state = 983; - this.match(HiveSqlParser.T_CLOSE_P); - this.state = 985; this._errHandler.sync(this); _la = this._input.LA(1); - if(_la===HiveSqlParser.T_ENABLE) { - this.state = 984; - this.match(HiveSqlParser.T_ENABLE); + if(_la===HiveSql.T_ENABLE) { + this.state = 982; + this.match(HiveSql.T_ENABLE); } - this.state = 988; + this.state = 986; this._errHandler.sync(this); _la = this._input.LA(1); - if(_la===HiveSqlParser.T_WITH) { - this.state = 987; + if(_la===HiveSql.T_WITH) { + this.state = 985; this.index_storage_clause(); } break; - case HiveSqlParser.T_FOREIGN: + case HiveSql.T_FOREIGN: this.enterOuterAlt(localctx, 2); + this.state = 988; + this.match(HiveSql.T_FOREIGN); + this.state = 989; + this.match(HiveSql.T_KEY); this.state = 990; - this.match(HiveSqlParser.T_FOREIGN); + this.match(HiveSql.T_OPEN_P); this.state = 991; - this.match(HiveSqlParser.T_KEY); - this.state = 992; - this.match(HiveSqlParser.T_OPEN_P); - this.state = 993; this.ident(); - this.state = 998; + this.state = 996; this._errHandler.sync(this); _la = this._input.LA(1); - while(_la===HiveSqlParser.T_COMMA) { - this.state = 994; - this.match(HiveSqlParser.T_COMMA); - this.state = 995; + while(_la===HiveSql.T_COMMA) { + this.state = 992; + this.match(HiveSql.T_COMMA); + this.state = 993; this.ident(); - this.state = 1000; + this.state = 998; this._errHandler.sync(this); _la = this._input.LA(1); } + this.state = 999; + this.match(HiveSql.T_CLOSE_P); + this.state = 1000; + this.match(HiveSql.T_REFERENCES); this.state = 1001; - this.match(HiveSqlParser.T_CLOSE_P); - this.state = 1002; - this.match(HiveSqlParser.T_REFERENCES); - this.state = 1003; this.table_name(); - this.state = 1004; - this.match(HiveSqlParser.T_OPEN_P); - this.state = 1005; + this.state = 1002; + this.match(HiveSql.T_OPEN_P); + this.state = 1003; this.ident(); - this.state = 1010; + this.state = 1008; this._errHandler.sync(this); _la = this._input.LA(1); - while(_la===HiveSqlParser.T_COMMA) { - this.state = 1006; - this.match(HiveSqlParser.T_COMMA); - this.state = 1007; + while(_la===HiveSql.T_COMMA) { + this.state = 1004; + this.match(HiveSql.T_COMMA); + this.state = 1005; this.ident(); - this.state = 1012; + this.state = 1010; this._errHandler.sync(this); _la = this._input.LA(1); } - this.state = 1013; - this.match(HiveSqlParser.T_CLOSE_P); - this.state = 1017; + this.state = 1011; + this.match(HiveSql.T_CLOSE_P); + this.state = 1015; this._errHandler.sync(this); _la = this._input.LA(1); - while(_la===HiveSqlParser.T_ON) { - this.state = 1014; + while(_la===HiveSql.T_ON) { + this.state = 1012; this.create_table_fk_action(); - this.state = 1019; + this.state = 1017; this._errHandler.sync(this); _la = this._input.LA(1); } @@ -9477,7 +9518,7 @@ function Create_table_fk_actionContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_create_table_fk_action; + this.ruleIndex = HiveSql.RULE_create_table_fk_action; return this; } @@ -9485,43 +9526,43 @@ Create_table_fk_actionContext.prototype = Object.create(antlr4.ParserRuleContext Create_table_fk_actionContext.prototype.constructor = Create_table_fk_actionContext; Create_table_fk_actionContext.prototype.T_ON = function() { - return this.getToken(HiveSqlParser.T_ON, 0); + return this.getToken(HiveSql.T_ON, 0); }; Create_table_fk_actionContext.prototype.T_UPDATE = function() { - return this.getToken(HiveSqlParser.T_UPDATE, 0); + return this.getToken(HiveSql.T_UPDATE, 0); }; Create_table_fk_actionContext.prototype.T_DELETE = function() { - return this.getToken(HiveSqlParser.T_DELETE, 0); + return this.getToken(HiveSql.T_DELETE, 0); }; Create_table_fk_actionContext.prototype.T_NO = function() { - return this.getToken(HiveSqlParser.T_NO, 0); + return this.getToken(HiveSql.T_NO, 0); }; Create_table_fk_actionContext.prototype.T_ACTION = function() { - return this.getToken(HiveSqlParser.T_ACTION, 0); + return this.getToken(HiveSql.T_ACTION, 0); }; Create_table_fk_actionContext.prototype.T_RESTRICT = function() { - return this.getToken(HiveSqlParser.T_RESTRICT, 0); + return this.getToken(HiveSql.T_RESTRICT, 0); }; Create_table_fk_actionContext.prototype.T_SET = function() { - return this.getToken(HiveSqlParser.T_SET, 0); + return this.getToken(HiveSql.T_SET, 0); }; Create_table_fk_actionContext.prototype.T_NULL = function() { - return this.getToken(HiveSqlParser.T_NULL, 0); + return this.getToken(HiveSql.T_NULL, 0); }; Create_table_fk_actionContext.prototype.T_DEFAULT = function() { - return this.getToken(HiveSqlParser.T_DEFAULT, 0); + return this.getToken(HiveSql.T_DEFAULT, 0); }; Create_table_fk_actionContext.prototype.T_CASCADE = function() { - return this.getToken(HiveSqlParser.T_CASCADE, 0); + return this.getToken(HiveSql.T_CASCADE, 0); }; Create_table_fk_actionContext.prototype.enterRule = function(listener) { @@ -9547,59 +9588,59 @@ Create_table_fk_actionContext.prototype.accept = function(visitor) { -HiveSqlParser.Create_table_fk_actionContext = Create_table_fk_actionContext; +HiveSql.Create_table_fk_actionContext = Create_table_fk_actionContext; -HiveSqlParser.prototype.create_table_fk_action = function() { +HiveSql.prototype.create_table_fk_action = function() { var localctx = new Create_table_fk_actionContext(this, this._ctx, this.state); - this.enterRule(localctx, 82, HiveSqlParser.RULE_create_table_fk_action); + this.enterRule(localctx, 82, HiveSql.RULE_create_table_fk_action); var _la = 0; // Token type try { this.enterOuterAlt(localctx, 1); - this.state = 1022; - this.match(HiveSqlParser.T_ON); - this.state = 1023; + this.state = 1020; + this.match(HiveSql.T_ON); + this.state = 1021; _la = this._input.LA(1); - if(!(_la===HiveSqlParser.T_UPDATE || _la===HiveSqlParser.T_DELETE)) { + if(!(_la===HiveSql.T_DELETE || _la===HiveSql.T_UPDATE)) { this._errHandler.recoverInline(this); } else { this._errHandler.reportMatch(this); this.consume(); } - this.state = 1032; + this.state = 1030; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,80,this._ctx); switch(la_) { case 1: - this.state = 1024; - this.match(HiveSqlParser.T_NO); - this.state = 1025; - this.match(HiveSqlParser.T_ACTION); + this.state = 1022; + this.match(HiveSql.T_NO); + this.state = 1023; + this.match(HiveSql.T_ACTION); break; case 2: - this.state = 1026; - this.match(HiveSqlParser.T_RESTRICT); + this.state = 1024; + this.match(HiveSql.T_RESTRICT); break; case 3: - this.state = 1027; - this.match(HiveSqlParser.T_SET); - this.state = 1028; - this.match(HiveSqlParser.T_NULL); + this.state = 1025; + this.match(HiveSql.T_SET); + this.state = 1026; + this.match(HiveSql.T_NULL); break; case 4: - this.state = 1029; - this.match(HiveSqlParser.T_SET); - this.state = 1030; - this.match(HiveSqlParser.T_DEFAULT); + this.state = 1027; + this.match(HiveSql.T_SET); + this.state = 1028; + this.match(HiveSql.T_DEFAULT); break; case 5: - this.state = 1031; - this.match(HiveSqlParser.T_CASCADE); + this.state = 1029; + this.match(HiveSql.T_CASCADE); break; } @@ -9627,7 +9668,7 @@ function Create_table_preoptionsContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_create_table_preoptions; + this.ruleIndex = HiveSql.RULE_create_table_preoptions; return this; } @@ -9668,25 +9709,25 @@ Create_table_preoptionsContext.prototype.accept = function(visitor) { -HiveSqlParser.Create_table_preoptionsContext = Create_table_preoptionsContext; +HiveSql.Create_table_preoptionsContext = Create_table_preoptionsContext; -HiveSqlParser.prototype.create_table_preoptions = function() { +HiveSql.prototype.create_table_preoptions = function() { var localctx = new Create_table_preoptionsContext(this, this._ctx, this.state); - this.enterRule(localctx, 84, HiveSqlParser.RULE_create_table_preoptions); + this.enterRule(localctx, 84, HiveSql.RULE_create_table_preoptions); var _la = 0; // Token type try { this.enterOuterAlt(localctx, 1); - this.state = 1035; + this.state = 1033; this._errHandler.sync(this); _la = this._input.LA(1); do { - this.state = 1034; + this.state = 1032; this.create_table_preoptions_item(); - this.state = 1037; + this.state = 1035; this._errHandler.sync(this); _la = this._input.LA(1); - } while(_la===HiveSqlParser.T_COMMA || _la===HiveSqlParser.T_STORED || _la===HiveSqlParser.T_ROW); + } while(_la===HiveSql.T_ROW || _la===HiveSql.T_STORED || _la===HiveSql.T_COMMA); } catch (re) { if(re instanceof antlr4.error.RecognitionException) { localctx.exception = re; @@ -9711,7 +9752,7 @@ function Create_table_preoptions_itemContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_create_table_preoptions_item; + this.ruleIndex = HiveSql.RULE_create_table_preoptions_item; return this; } @@ -9719,7 +9760,7 @@ Create_table_preoptions_itemContext.prototype = Object.create(antlr4.ParserRuleC Create_table_preoptions_itemContext.prototype.constructor = Create_table_preoptions_itemContext; Create_table_preoptions_itemContext.prototype.T_COMMA = function() { - return this.getToken(HiveSqlParser.T_COMMA, 0); + return this.getToken(HiveSql.T_COMMA, 0); }; Create_table_preoptions_itemContext.prototype.create_table_preoptions_td_item = function() { @@ -9753,27 +9794,27 @@ Create_table_preoptions_itemContext.prototype.accept = function(visitor) { -HiveSqlParser.Create_table_preoptions_itemContext = Create_table_preoptions_itemContext; +HiveSql.Create_table_preoptions_itemContext = Create_table_preoptions_itemContext; -HiveSqlParser.prototype.create_table_preoptions_item = function() { +HiveSql.prototype.create_table_preoptions_item = function() { var localctx = new Create_table_preoptions_itemContext(this, this._ctx, this.state); - this.enterRule(localctx, 86, HiveSqlParser.RULE_create_table_preoptions_item); + this.enterRule(localctx, 86, HiveSql.RULE_create_table_preoptions_item); try { - this.state = 1042; + this.state = 1040; this._errHandler.sync(this); switch(this._input.LA(1)) { - case HiveSqlParser.T_COMMA: + case HiveSql.T_COMMA: this.enterOuterAlt(localctx, 1); - this.state = 1039; - this.match(HiveSqlParser.T_COMMA); - this.state = 1040; + this.state = 1037; + this.match(HiveSql.T_COMMA); + this.state = 1038; this.create_table_preoptions_td_item(); break; - case HiveSqlParser.T_STORED: - case HiveSqlParser.T_ROW: + case HiveSql.T_ROW: + case HiveSql.T_STORED: this.enterOuterAlt(localctx, 2); - this.state = 1041; + this.state = 1039; this.create_table_options_hive_item(); break; default: @@ -9803,7 +9844,7 @@ function Create_table_preoptions_td_itemContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_create_table_preoptions_td_item; + this.ruleIndex = HiveSql.RULE_create_table_preoptions_td_item; return this; } @@ -9811,15 +9852,15 @@ Create_table_preoptions_td_itemContext.prototype = Object.create(antlr4.ParserRu Create_table_preoptions_td_itemContext.prototype.constructor = Create_table_preoptions_td_itemContext; Create_table_preoptions_td_itemContext.prototype.T_LOG = function() { - return this.getToken(HiveSqlParser.T_LOG, 0); + return this.getToken(HiveSql.T_LOG, 0); }; Create_table_preoptions_td_itemContext.prototype.T_FALLBACK = function() { - return this.getToken(HiveSqlParser.T_FALLBACK, 0); + return this.getToken(HiveSql.T_FALLBACK, 0); }; Create_table_preoptions_td_itemContext.prototype.T_NO = function() { - return this.getToken(HiveSqlParser.T_NO, 0); + return this.getToken(HiveSql.T_NO, 0); }; Create_table_preoptions_td_itemContext.prototype.enterRule = function(listener) { @@ -9845,26 +9886,26 @@ Create_table_preoptions_td_itemContext.prototype.accept = function(visitor) { -HiveSqlParser.Create_table_preoptions_td_itemContext = Create_table_preoptions_td_itemContext; +HiveSql.Create_table_preoptions_td_itemContext = Create_table_preoptions_td_itemContext; -HiveSqlParser.prototype.create_table_preoptions_td_item = function() { +HiveSql.prototype.create_table_preoptions_td_item = function() { var localctx = new Create_table_preoptions_td_itemContext(this, this._ctx, this.state); - this.enterRule(localctx, 88, HiveSqlParser.RULE_create_table_preoptions_td_item); + this.enterRule(localctx, 88, HiveSql.RULE_create_table_preoptions_td_item); var _la = 0; // Token type try { this.enterOuterAlt(localctx, 1); - this.state = 1045; + this.state = 1043; this._errHandler.sync(this); _la = this._input.LA(1); - if(_la===HiveSqlParser.T_NO) { - this.state = 1044; - this.match(HiveSqlParser.T_NO); + if(_la===HiveSql.T_NO) { + this.state = 1042; + this.match(HiveSql.T_NO); } - this.state = 1047; + this.state = 1045; _la = this._input.LA(1); - if(!(_la===HiveSqlParser.T_LOG || _la===HiveSqlParser.T_FALLBACK)) { + if(!(_la===HiveSql.T_FALLBACK || _la===HiveSql.T_LOG)) { this._errHandler.recoverInline(this); } else { @@ -9895,7 +9936,7 @@ function Create_table_optionsContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_create_table_options; + this.ruleIndex = HiveSql.RULE_create_table_options; return this; } @@ -9936,27 +9977,27 @@ Create_table_optionsContext.prototype.accept = function(visitor) { -HiveSqlParser.Create_table_optionsContext = Create_table_optionsContext; +HiveSql.Create_table_optionsContext = Create_table_optionsContext; -HiveSqlParser.prototype.create_table_options = function() { +HiveSql.prototype.create_table_options = function() { var localctx = new Create_table_optionsContext(this, this._ctx, this.state); - this.enterRule(localctx, 90, HiveSqlParser.RULE_create_table_options); + this.enterRule(localctx, 90, HiveSql.RULE_create_table_options); try { this.enterOuterAlt(localctx, 1); - this.state = 1050; + this.state = 1048; this._errHandler.sync(this); var _alt = 1; do { switch (_alt) { case 1: - this.state = 1049; + this.state = 1047; this.create_table_options_item(); break; default: throw new antlr4.error.NoViableAltException(this); } - this.state = 1052; + this.state = 1050; this._errHandler.sync(this); _alt = this._interp.adaptivePredict(this._input,84, this._ctx); } while ( _alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER ); @@ -9984,7 +10025,7 @@ function Create_table_options_itemContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_create_table_options_item; + this.ruleIndex = HiveSql.RULE_create_table_options_item; return this; } @@ -9992,23 +10033,23 @@ Create_table_options_itemContext.prototype = Object.create(antlr4.ParserRuleCont Create_table_options_itemContext.prototype.constructor = Create_table_options_itemContext; Create_table_options_itemContext.prototype.T_ON = function() { - return this.getToken(HiveSqlParser.T_ON, 0); + return this.getToken(HiveSql.T_ON, 0); }; Create_table_options_itemContext.prototype.T_COMMIT = function() { - return this.getToken(HiveSqlParser.T_COMMIT, 0); + return this.getToken(HiveSql.T_COMMIT, 0); }; Create_table_options_itemContext.prototype.T_ROWS = function() { - return this.getToken(HiveSqlParser.T_ROWS, 0); + return this.getToken(HiveSql.T_ROWS, 0); }; Create_table_options_itemContext.prototype.T_DELETE = function() { - return this.getToken(HiveSqlParser.T_DELETE, 0); + return this.getToken(HiveSql.T_DELETE, 0); }; Create_table_options_itemContext.prototype.T_PRESERVE = function() { - return this.getToken(HiveSqlParser.T_PRESERVE, 0); + return this.getToken(HiveSql.T_PRESERVE, 0); }; Create_table_options_itemContext.prototype.create_table_options_ora_item = function() { @@ -10058,70 +10099,70 @@ Create_table_options_itemContext.prototype.accept = function(visitor) { -HiveSqlParser.Create_table_options_itemContext = Create_table_options_itemContext; +HiveSql.Create_table_options_itemContext = Create_table_options_itemContext; -HiveSqlParser.prototype.create_table_options_item = function() { +HiveSql.prototype.create_table_options_item = function() { var localctx = new Create_table_options_itemContext(this, this._ctx, this.state); - this.enterRule(localctx, 92, HiveSqlParser.RULE_create_table_options_item); + this.enterRule(localctx, 92, HiveSql.RULE_create_table_options_item); var _la = 0; // Token type try { - this.state = 1064; + this.state = 1062; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,85,this._ctx); switch(la_) { case 1: this.enterOuterAlt(localctx, 1); + this.state = 1052; + this.match(HiveSql.T_ON); + this.state = 1053; + this.match(HiveSql.T_COMMIT); this.state = 1054; - this.match(HiveSqlParser.T_ON); - this.state = 1055; - this.match(HiveSqlParser.T_COMMIT); - this.state = 1056; _la = this._input.LA(1); - if(!(_la===HiveSqlParser.T_DELETE || _la===HiveSqlParser.T_PRESERVE)) { + if(!(_la===HiveSql.T_DELETE || _la===HiveSql.T_PRESERVE)) { this._errHandler.recoverInline(this); } else { this._errHandler.reportMatch(this); this.consume(); } - this.state = 1057; - this.match(HiveSqlParser.T_ROWS); + this.state = 1055; + this.match(HiveSql.T_ROWS); break; case 2: this.enterOuterAlt(localctx, 2); - this.state = 1058; + this.state = 1056; this.create_table_options_ora_item(); break; case 3: this.enterOuterAlt(localctx, 3); - this.state = 1059; + this.state = 1057; this.create_table_options_db2_item(); break; case 4: this.enterOuterAlt(localctx, 4); - this.state = 1060; + this.state = 1058; this.create_table_options_td_item(); break; case 5: this.enterOuterAlt(localctx, 5); - this.state = 1061; + this.state = 1059; this.create_table_options_hive_item(); break; case 6: this.enterOuterAlt(localctx, 6); - this.state = 1062; + this.state = 1060; this.create_table_options_mssql_item(); break; case 7: this.enterOuterAlt(localctx, 7); - this.state = 1063; + this.state = 1061; this.create_table_options_mysql_item(); break; @@ -10150,7 +10191,7 @@ function Create_table_options_ora_itemContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_create_table_options_ora_item; + this.ruleIndex = HiveSql.RULE_create_table_options_ora_item; return this; } @@ -10158,19 +10199,19 @@ Create_table_options_ora_itemContext.prototype = Object.create(antlr4.ParserRule Create_table_options_ora_itemContext.prototype.constructor = Create_table_options_ora_itemContext; Create_table_options_ora_itemContext.prototype.T_SEGMENT = function() { - return this.getToken(HiveSqlParser.T_SEGMENT, 0); + return this.getToken(HiveSql.T_SEGMENT, 0); }; Create_table_options_ora_itemContext.prototype.T_CREATION = function() { - return this.getToken(HiveSqlParser.T_CREATION, 0); + return this.getToken(HiveSql.T_CREATION, 0); }; Create_table_options_ora_itemContext.prototype.T_IMMEDIATE = function() { - return this.getToken(HiveSqlParser.T_IMMEDIATE, 0); + return this.getToken(HiveSql.T_IMMEDIATE, 0); }; Create_table_options_ora_itemContext.prototype.T_DEFERRED = function() { - return this.getToken(HiveSqlParser.T_DEFERRED, 0); + return this.getToken(HiveSql.T_DEFERRED, 0); }; Create_table_options_ora_itemContext.prototype.L_INT = function(i) { @@ -10178,51 +10219,51 @@ Create_table_options_ora_itemContext.prototype.L_INT = function(i) { i = null; } if(i===null) { - return this.getTokens(HiveSqlParser.L_INT); + return this.getTokens(HiveSql.L_INT); } else { - return this.getToken(HiveSqlParser.L_INT, i); + return this.getToken(HiveSql.L_INT, i); } }; Create_table_options_ora_itemContext.prototype.T_PCTFREE = function() { - return this.getToken(HiveSqlParser.T_PCTFREE, 0); + return this.getToken(HiveSql.T_PCTFREE, 0); }; Create_table_options_ora_itemContext.prototype.T_PCTUSED = function() { - return this.getToken(HiveSqlParser.T_PCTUSED, 0); + return this.getToken(HiveSql.T_PCTUSED, 0); }; Create_table_options_ora_itemContext.prototype.T_INITRANS = function() { - return this.getToken(HiveSqlParser.T_INITRANS, 0); + return this.getToken(HiveSql.T_INITRANS, 0); }; Create_table_options_ora_itemContext.prototype.T_MAXTRANS = function() { - return this.getToken(HiveSqlParser.T_MAXTRANS, 0); + return this.getToken(HiveSql.T_MAXTRANS, 0); }; Create_table_options_ora_itemContext.prototype.T_NOCOMPRESS = function() { - return this.getToken(HiveSqlParser.T_NOCOMPRESS, 0); + return this.getToken(HiveSql.T_NOCOMPRESS, 0); }; Create_table_options_ora_itemContext.prototype.T_LOGGING = function() { - return this.getToken(HiveSqlParser.T_LOGGING, 0); + return this.getToken(HiveSql.T_LOGGING, 0); }; Create_table_options_ora_itemContext.prototype.T_NOLOGGING = function() { - return this.getToken(HiveSqlParser.T_NOLOGGING, 0); + return this.getToken(HiveSql.T_NOLOGGING, 0); }; Create_table_options_ora_itemContext.prototype.T_STORAGE = function() { - return this.getToken(HiveSqlParser.T_STORAGE, 0); + return this.getToken(HiveSql.T_STORAGE, 0); }; Create_table_options_ora_itemContext.prototype.T_OPEN_P = function() { - return this.getToken(HiveSqlParser.T_OPEN_P, 0); + return this.getToken(HiveSql.T_OPEN_P, 0); }; Create_table_options_ora_itemContext.prototype.T_CLOSE_P = function() { - return this.getToken(HiveSqlParser.T_CLOSE_P, 0); + return this.getToken(HiveSql.T_CLOSE_P, 0); }; Create_table_options_ora_itemContext.prototype.ident = function(i) { @@ -10237,7 +10278,7 @@ Create_table_options_ora_itemContext.prototype.ident = function(i) { }; Create_table_options_ora_itemContext.prototype.T_TABLESPACE = function() { - return this.getToken(HiveSqlParser.T_TABLESPACE, 0); + return this.getToken(HiveSql.T_TABLESPACE, 0); }; Create_table_options_ora_itemContext.prototype.enterRule = function(listener) { @@ -10263,26 +10304,26 @@ Create_table_options_ora_itemContext.prototype.accept = function(visitor) { -HiveSqlParser.Create_table_options_ora_itemContext = Create_table_options_ora_itemContext; +HiveSql.Create_table_options_ora_itemContext = Create_table_options_ora_itemContext; -HiveSqlParser.prototype.create_table_options_ora_item = function() { +HiveSql.prototype.create_table_options_ora_item = function() { var localctx = new Create_table_options_ora_itemContext(this, this._ctx, this.state); - this.enterRule(localctx, 94, HiveSqlParser.RULE_create_table_options_ora_item); + this.enterRule(localctx, 94, HiveSql.RULE_create_table_options_ora_item); var _la = 0; // Token type try { - this.state = 1084; + this.state = 1082; this._errHandler.sync(this); switch(this._input.LA(1)) { - case HiveSqlParser.T_SEGMENT: + case HiveSql.T_SEGMENT: this.enterOuterAlt(localctx, 1); + this.state = 1064; + this.match(HiveSql.T_SEGMENT); + this.state = 1065; + this.match(HiveSql.T_CREATION); this.state = 1066; - this.match(HiveSqlParser.T_SEGMENT); - this.state = 1067; - this.match(HiveSqlParser.T_CREATION); - this.state = 1068; _la = this._input.LA(1); - if(!(_la===HiveSqlParser.T_IMMEDIATE || _la===HiveSqlParser.T_DEFERRED)) { + if(!(_la===HiveSql.T_DEFERRED || _la===HiveSql.T_IMMEDIATE)) { this._errHandler.recoverInline(this); } else { @@ -10290,34 +10331,34 @@ HiveSqlParser.prototype.create_table_options_ora_item = function() { this.consume(); } break; - case HiveSqlParser.T_PCTFREE: - case HiveSqlParser.T_PCTUSED: - case HiveSqlParser.T_INITRANS: - case HiveSqlParser.T_MAXTRANS: + case HiveSql.T_INITRANS: + case HiveSql.T_MAXTRANS: + case HiveSql.T_PCTFREE: + case HiveSql.T_PCTUSED: this.enterOuterAlt(localctx, 2); - this.state = 1069; + this.state = 1067; _la = this._input.LA(1); - if(!(((((_la - 96)) & ~0x1f) == 0 && ((1 << (_la - 96)) & ((1 << (HiveSqlParser.T_PCTFREE - 96)) | (1 << (HiveSqlParser.T_PCTUSED - 96)) | (1 << (HiveSqlParser.T_INITRANS - 96)) | (1 << (HiveSqlParser.T_MAXTRANS - 96)))) !== 0))) { + if(!(_la===HiveSql.T_INITRANS || _la===HiveSql.T_MAXTRANS || _la===HiveSql.T_PCTFREE || _la===HiveSql.T_PCTUSED)) { this._errHandler.recoverInline(this); } else { this._errHandler.reportMatch(this); this.consume(); } - this.state = 1070; - this.match(HiveSqlParser.L_INT); + this.state = 1068; + this.match(HiveSql.L_INT); break; - case HiveSqlParser.T_NOCOMPRESS: + case HiveSql.T_NOCOMPRESS: this.enterOuterAlt(localctx, 3); - this.state = 1071; - this.match(HiveSqlParser.T_NOCOMPRESS); + this.state = 1069; + this.match(HiveSql.T_NOCOMPRESS); break; - case HiveSqlParser.T_LOGGING: - case HiveSqlParser.T_NOLOGGING: + case HiveSql.T_LOGGING: + case HiveSql.T_NOLOGGING: this.enterOuterAlt(localctx, 4); - this.state = 1072; + this.state = 1070; _la = this._input.LA(1); - if(!(_la===HiveSqlParser.T_LOGGING || _la===HiveSqlParser.T_NOLOGGING)) { + if(!(_la===HiveSql.T_LOGGING || _la===HiveSql.T_NOLOGGING)) { this._errHandler.recoverInline(this); } else { @@ -10325,361 +10366,360 @@ HiveSqlParser.prototype.create_table_options_ora_item = function() { this.consume(); } break; - case HiveSqlParser.T_STORAGE: + case HiveSql.T_STORAGE: this.enterOuterAlt(localctx, 5); - this.state = 1073; - this.match(HiveSqlParser.T_STORAGE); - this.state = 1074; - this.match(HiveSqlParser.T_OPEN_P); - this.state = 1077; + this.state = 1071; + this.match(HiveSql.T_STORAGE); + this.state = 1072; + this.match(HiveSql.T_OPEN_P); + this.state = 1075; this._errHandler.sync(this); _la = this._input.LA(1); do { - this.state = 1077; + this.state = 1075; this._errHandler.sync(this); switch(this._input.LA(1)) { - case HiveSqlParser.T__8: - case HiveSqlParser.T_GO: - case HiveSqlParser.T_BEGIN: - case HiveSqlParser.T_EXCEPTION: - case HiveSqlParser.L_ID: - case HiveSqlParser.T_THEN: - case HiveSqlParser.T_SET: - case HiveSqlParser.T_ALLOCATE: - case HiveSqlParser.T_CURSOR: - case HiveSqlParser.T_FOR: - case HiveSqlParser.T_RESULT: - case HiveSqlParser.T_PROCEDURE: - case HiveSqlParser.T_ASSOCIATE: - case HiveSqlParser.T_LOCATOR: - case HiveSqlParser.T_LOCATORS: - case HiveSqlParser.T_WITH: - case HiveSqlParser.T_TRANSACTION: - case HiveSqlParser.T_BREAK: - case HiveSqlParser.T_CALL: - case HiveSqlParser.T_DECLARE: - case HiveSqlParser.T_AS: - case HiveSqlParser.T_CONSTANT: - case HiveSqlParser.T_CONDITION: - case HiveSqlParser.T_IS: - case HiveSqlParser.T_RETURN: - case HiveSqlParser.T_ONLY: - case HiveSqlParser.T_TO: - case HiveSqlParser.T_CALLER: - case HiveSqlParser.T_CLIENT: - case HiveSqlParser.T_WITHOUT: - case HiveSqlParser.T_CONTINUE: - case HiveSqlParser.T_EXIT: - case HiveSqlParser.T_HANDLER: - case HiveSqlParser.T_SQLEXCEPTION: - case HiveSqlParser.T_SQLWARNING: - case HiveSqlParser.T_NOT: - case HiveSqlParser.T_FOUND: - case HiveSqlParser.T_GLOBAL: - case HiveSqlParser.T_TEMPORARY: - case HiveSqlParser.T_TABLE: - case HiveSqlParser.T_CREATE: - case HiveSqlParser.T_IF: - case HiveSqlParser.T_EXISTS: - case HiveSqlParser.T_LOCAL: - case HiveSqlParser.T_MULTISET: - case HiveSqlParser.T_VOLATILE: - case HiveSqlParser.T_LIKE: - case HiveSqlParser.T_CONSTRAINT: - case HiveSqlParser.T_PRIMARY: - case HiveSqlParser.T_KEY: - case HiveSqlParser.T_UNIQUE: - case HiveSqlParser.T_REFERENCES: - case HiveSqlParser.T_IDENTITY: - case HiveSqlParser.T_AUTO_INCREMENT: - case HiveSqlParser.T_ENABLE: - case HiveSqlParser.T_CLUSTERED: - case HiveSqlParser.T_ASC: - case HiveSqlParser.T_DESC: - case HiveSqlParser.T_FOREIGN: - case HiveSqlParser.T_ON: - case HiveSqlParser.T_UPDATE: - case HiveSqlParser.T_DELETE: - case HiveSqlParser.T_NO: - case HiveSqlParser.T_ACTION: - case HiveSqlParser.T_RESTRICT: - case HiveSqlParser.T_DEFAULT: - case HiveSqlParser.T_CASCADE: - case HiveSqlParser.T_LOG: - case HiveSqlParser.T_FALLBACK: - case HiveSqlParser.T_COMMIT: - case HiveSqlParser.T_PRESERVE: - case HiveSqlParser.T_ROWS: - case HiveSqlParser.T_SEGMENT: - case HiveSqlParser.T_CREATION: - case HiveSqlParser.T_IMMEDIATE: - case HiveSqlParser.T_DEFERRED: - case HiveSqlParser.T_PCTFREE: - case HiveSqlParser.T_PCTUSED: - case HiveSqlParser.T_INITRANS: - case HiveSqlParser.T_MAXTRANS: - case HiveSqlParser.T_NOCOMPRESS: - case HiveSqlParser.T_LOGGING: - case HiveSqlParser.T_NOLOGGING: - case HiveSqlParser.T_STORAGE: - case HiveSqlParser.T_TABLESPACE: - case HiveSqlParser.T_INDEX: - case HiveSqlParser.T_IN: - case HiveSqlParser.T_REPLACE: - case HiveSqlParser.T_DISTRIBUTE: - case HiveSqlParser.T_BY: - case HiveSqlParser.T_HASH: - case HiveSqlParser.T_LOGGED: - case HiveSqlParser.T_COMPRESS: - case HiveSqlParser.T_YES: - case HiveSqlParser.T_DEFINITION: - case HiveSqlParser.T_DROP: - case HiveSqlParser.T_DATA: - case HiveSqlParser.T_STORED: - case HiveSqlParser.T_ROW: - case HiveSqlParser.T_FORMAT: - case HiveSqlParser.T_DELIMITED: - case HiveSqlParser.T_FIELDS: - case HiveSqlParser.T_TERMINATED: - case HiveSqlParser.T_ESCAPED: - case HiveSqlParser.T_COLLECTION: - case HiveSqlParser.T_ITEMS: - case HiveSqlParser.T_MAP: - case HiveSqlParser.T_KEYS: - case HiveSqlParser.T_LINES: - case HiveSqlParser.T_DEFINED: - case HiveSqlParser.T_TEXTIMAGE_ON: - case HiveSqlParser.T_COMMENT: - case HiveSqlParser.T_CHARACTER: - case HiveSqlParser.T_CHARSET: - case HiveSqlParser.T_ENGINE: - case HiveSqlParser.T_ALTER: - case HiveSqlParser.T_ADD2: - case HiveSqlParser.T_CHAR: - case HiveSqlParser.T_BIGINT: - case HiveSqlParser.T_BINARY_DOUBLE: - case HiveSqlParser.T_BINARY_FLOAT: - case HiveSqlParser.T_BIT: - case HiveSqlParser.T_DATE: - case HiveSqlParser.T_DATETIME: - case HiveSqlParser.T_DEC: - case HiveSqlParser.T_DECIMAL: - case HiveSqlParser.T_DOUBLE: - case HiveSqlParser.T_PRECISION: - case HiveSqlParser.T_FLOAT: - case HiveSqlParser.T_INT: - case HiveSqlParser.T_INT2: - case HiveSqlParser.T_INT4: - case HiveSqlParser.T_INT8: - case HiveSqlParser.T_INTEGER: - case HiveSqlParser.T_NCHAR: - case HiveSqlParser.T_NVARCHAR: - case HiveSqlParser.T_NUMBER: - case HiveSqlParser.T_NUMERIC: - case HiveSqlParser.T_REAL: - case HiveSqlParser.T_RESULT_SET_LOCATOR: - case HiveSqlParser.T_VARYING: - case HiveSqlParser.T_SIMPLE_FLOAT: - case HiveSqlParser.T_SIMPLE_DOUBLE: - case HiveSqlParser.T_SMALLINT: - case HiveSqlParser.T_SMALLDATETIME: - case HiveSqlParser.T_STRING: - case HiveSqlParser.T_SYS_REFCURSOR: - case HiveSqlParser.T_TIMESTAMP: - case HiveSqlParser.T_VARCHAR: - case HiveSqlParser.T_VARCHAR2: - case HiveSqlParser.T_XML: - case HiveSqlParser.T_MAX: - case HiveSqlParser.T_BYTE: - case HiveSqlParser.T_CASESPECIFIC: - case HiveSqlParser.T_CS: - case HiveSqlParser.T_DATABASE: - case HiveSqlParser.T_SCHEMA: - case HiveSqlParser.T_LOCATION: - case HiveSqlParser.T_OR: - case HiveSqlParser.T_FUNCTION: - case HiveSqlParser.T_RETURNS: - case HiveSqlParser.T_PACKAGE: - case HiveSqlParser.T_PROC: - case HiveSqlParser.T_BODY: - case HiveSqlParser.T_OUT: - case HiveSqlParser.T_INOUT: - case HiveSqlParser.T_LANGUAGE: - case HiveSqlParser.T_SQL: - case HiveSqlParser.T_SECURITY: - case HiveSqlParser.T_CREATOR: - case HiveSqlParser.T_DEFINER: - case HiveSqlParser.T_INVOKER: - case HiveSqlParser.T_OWNER: - case HiveSqlParser.T_DYNAMIC: - case HiveSqlParser.T_SETS: - case HiveSqlParser.T_EXEC: - case HiveSqlParser.T_EXECUTE: - case HiveSqlParser.T_INTO: - case HiveSqlParser.T_INCLUDE: - case HiveSqlParser.T_INSERT: - case HiveSqlParser.T_OVERWRITE: - case HiveSqlParser.T_VALUES: - case HiveSqlParser.T_DIRECTORY: - case HiveSqlParser.T_GET: - case HiveSqlParser.T_DIAGNOSTICS: - case HiveSqlParser.T_MESSAGE_TEXT: - case HiveSqlParser.T_ROW_COUNT: - case HiveSqlParser.T_GRANT: - case HiveSqlParser.T_ROLE: - case HiveSqlParser.T_LEAVE: - case HiveSqlParser.T_OBJECT: - case HiveSqlParser.T_AT: - case HiveSqlParser.T_OPEN: - case HiveSqlParser.T_FETCH: - case HiveSqlParser.T_FROM: - case HiveSqlParser.T_COLLECT: - case HiveSqlParser.T_STATISTICS: - case HiveSqlParser.T_STATS: - case HiveSqlParser.T_COLUMN: - case HiveSqlParser.T_CLOSE: - case HiveSqlParser.T_CMP: - case HiveSqlParser.T_SUM: - case HiveSqlParser.T_COPY: - case HiveSqlParser.T_HDFS: - case HiveSqlParser.T_BATCHSIZE: - case HiveSqlParser.T_DELIMITER: - case HiveSqlParser.T_SQLINSERT: - case HiveSqlParser.T_IGNORE: - case HiveSqlParser.T_WORK: - case HiveSqlParser.T_PRINT: - case HiveSqlParser.T_QUIT: - case HiveSqlParser.T_RAISE: - case HiveSqlParser.T_RESIGNAL: - case HiveSqlParser.T_SQLSTATE: - case HiveSqlParser.T_VALUE: - case HiveSqlParser.T_ROLLBACK: - case HiveSqlParser.T_CURRENT: - case HiveSqlParser.T_CURRENT_SCHEMA: - case HiveSqlParser.T_ANSI_NULLS: - case HiveSqlParser.T_ANSI_PADDING: - case HiveSqlParser.T_NOCOUNT: - case HiveSqlParser.T_QUOTED_IDENTIFIER: - case HiveSqlParser.T_XACT_ABORT: - case HiveSqlParser.T_OFF: - case HiveSqlParser.T_QUERY_BAND: - case HiveSqlParser.T_NONE: - case HiveSqlParser.T_SESSION: - case HiveSqlParser.T_SIGNAL: - case HiveSqlParser.T_SUMMARY: - case HiveSqlParser.T_TOP: - case HiveSqlParser.T_LIMIT: - case HiveSqlParser.T_TRUNCATE: - case HiveSqlParser.T_USE: - case HiveSqlParser.T_WHILE: - case HiveSqlParser.T_DO: - case HiveSqlParser.T_LOOP: - case HiveSqlParser.T_REVERSE: - case HiveSqlParser.T_STEP: - case HiveSqlParser.T_USING: - case HiveSqlParser.T_ALL: - case HiveSqlParser.T_EXCEPT: - case HiveSqlParser.T_INTERSECT: - case HiveSqlParser.T_SELECT: - case HiveSqlParser.T_SEL: - case HiveSqlParser.T_DISTINCT: - case HiveSqlParser.T_TITLE: - case HiveSqlParser.T_INNER: - case HiveSqlParser.T_JOIN: - case HiveSqlParser.T_LEFT: - case HiveSqlParser.T_RIGHT: - case HiveSqlParser.T_FULL: - case HiveSqlParser.T_OUTER: - case HiveSqlParser.T_GROUP: - case HiveSqlParser.T_HAVING: - case HiveSqlParser.T_QUALIFY: - case HiveSqlParser.T_ORDER: - case HiveSqlParser.T_RR: - case HiveSqlParser.T_RS: - case HiveSqlParser.T_UR: - case HiveSqlParser.T_AND: - case HiveSqlParser.T_KEEP: - case HiveSqlParser.T_EXCLUSIVE: - case HiveSqlParser.T_SHARE: - case HiveSqlParser.T_LOCKS: - case HiveSqlParser.T_MERGE: - case HiveSqlParser.T_MATCHED: - case HiveSqlParser.T_DESCRIBE: - case HiveSqlParser.T_BETWEEN: - case HiveSqlParser.T_RLIKE: - case HiveSqlParser.T_REGEXP: - case HiveSqlParser.T_INTERVAL: - case HiveSqlParser.T_DAY: - case HiveSqlParser.T_DAYS: - case HiveSqlParser.T_MICROSECOND: - case HiveSqlParser.T_MICROSECONDS: - case HiveSqlParser.T_SECOND: - case HiveSqlParser.T_SECONDS: - case HiveSqlParser.T_CONCAT: - case HiveSqlParser.T_CASE: - case HiveSqlParser.T_ISOPEN: - case HiveSqlParser.T_NOTFOUND: - case HiveSqlParser.T_AVG: - case HiveSqlParser.T_COUNT: - case HiveSqlParser.T_COUNT_BIG: - case HiveSqlParser.T_CUME_DIST: - case HiveSqlParser.T_DENSE_RANK: - case HiveSqlParser.T_FIRST_VALUE: - case HiveSqlParser.T_LAG: - case HiveSqlParser.T_LAST_VALUE: - case HiveSqlParser.T_LEAD: - case HiveSqlParser.T_MIN: - case HiveSqlParser.T_RANK: - case HiveSqlParser.T_ROW_NUMBER: - case HiveSqlParser.T_STDEV: - case HiveSqlParser.T_VAR: - case HiveSqlParser.T_VARIANCE: - case HiveSqlParser.T_OVER: - case HiveSqlParser.T_PARTITION: - case HiveSqlParser.T_ACTIVITY_COUNT: - case HiveSqlParser.T_CAST: - case HiveSqlParser.T_CURRENT_DATE: - case HiveSqlParser.T_CURRENT_TIMESTAMP: - case HiveSqlParser.T_CURRENT_USER: - case HiveSqlParser.T_USER: - case HiveSqlParser.T_PART_COUNT: - case HiveSqlParser.T_PART_LOC: - case HiveSqlParser.T_TRIM: - case HiveSqlParser.T_SUBSTRING: - case HiveSqlParser.T_SYSDATE: - case HiveSqlParser.T_HIVE: - case HiveSqlParser.T_HOST: - case HiveSqlParser.T_TRUE: - case HiveSqlParser.T_FALSE: - case HiveSqlParser.T_DIR: - case HiveSqlParser.T_FILE: - case HiveSqlParser.T_FILES: - case HiveSqlParser.T_NEW: - case HiveSqlParser.T_PWD: - case HiveSqlParser.T_SESSIONS: - case HiveSqlParser.T_SUBDIR: - this.state = 1075; + case HiveSql.T_ACTION: + case HiveSql.T_ADD2: + case HiveSql.T_ALL: + case HiveSql.T_ALLOCATE: + case HiveSql.T_ALTER: + case HiveSql.T_AND: + case HiveSql.T_ANSI_NULLS: + case HiveSql.T_ANSI_PADDING: + case HiveSql.T_AS: + case HiveSql.T_ASC: + case HiveSql.T_ASSOCIATE: + case HiveSql.T_AT: + case HiveSql.T_AUTO_INCREMENT: + case HiveSql.T_AVG: + case HiveSql.T_BATCHSIZE: + case HiveSql.T_BEGIN: + case HiveSql.T_BETWEEN: + case HiveSql.T_BIGINT: + case HiveSql.T_BINARY_DOUBLE: + case HiveSql.T_BINARY_FLOAT: + case HiveSql.T_BIT: + case HiveSql.T_BODY: + case HiveSql.T_BREAK: + case HiveSql.T_BY: + case HiveSql.T_BYTE: + case HiveSql.T_CALL: + case HiveSql.T_CALLER: + case HiveSql.T_CASCADE: + case HiveSql.T_CASE: + case HiveSql.T_CASESPECIFIC: + case HiveSql.T_CAST: + case HiveSql.T_CHAR: + case HiveSql.T_CHARACTER: + case HiveSql.T_CHARSET: + case HiveSql.T_CLIENT: + case HiveSql.T_CLOSE: + case HiveSql.T_CLUSTERED: + case HiveSql.T_CMP: + case HiveSql.T_COLLECT: + case HiveSql.T_COLLECTION: + case HiveSql.T_COLUMN: + case HiveSql.T_COMMENT: + case HiveSql.T_CONSTANT: + case HiveSql.T_COMMIT: + case HiveSql.T_COMPRESS: + case HiveSql.T_CONCAT: + case HiveSql.T_CONDITION: + case HiveSql.T_CONSTRAINT: + case HiveSql.T_CONTINUE: + case HiveSql.T_COPY: + case HiveSql.T_COUNT: + case HiveSql.T_COUNT_BIG: + case HiveSql.T_CREATE: + case HiveSql.T_CREATION: + case HiveSql.T_CREATOR: + case HiveSql.T_CS: + case HiveSql.T_CURRENT: + case HiveSql.T_CURRENT_SCHEMA: + case HiveSql.T_CURSOR: + case HiveSql.T_DATABASE: + case HiveSql.T_DATA: + case HiveSql.T_DATE: + case HiveSql.T_DATETIME: + case HiveSql.T_DAY: + case HiveSql.T_DAYS: + case HiveSql.T_DEC: + case HiveSql.T_DECIMAL: + case HiveSql.T_DECLARE: + case HiveSql.T_DEFAULT: + case HiveSql.T_DEFERRED: + case HiveSql.T_DEFINED: + case HiveSql.T_DEFINER: + case HiveSql.T_DEFINITION: + case HiveSql.T_DELETE: + case HiveSql.T_DELIMITED: + case HiveSql.T_DELIMITER: + case HiveSql.T_DESC: + case HiveSql.T_DESCRIBE: + case HiveSql.T_DIAGNOSTICS: + case HiveSql.T_DIR: + case HiveSql.T_DIRECTORY: + case HiveSql.T_DISTINCT: + case HiveSql.T_DISTRIBUTE: + case HiveSql.T_DO: + case HiveSql.T_DOUBLE: + case HiveSql.T_DROP: + case HiveSql.T_DYNAMIC: + case HiveSql.T_ENABLE: + case HiveSql.T_ENGINE: + case HiveSql.T_ESCAPED: + case HiveSql.T_EXCEPT: + case HiveSql.T_EXEC: + case HiveSql.T_EXECUTE: + case HiveSql.T_EXCEPTION: + case HiveSql.T_EXCLUSIVE: + case HiveSql.T_EXISTS: + case HiveSql.T_EXIT: + case HiveSql.T_FALLBACK: + case HiveSql.T_FALSE: + case HiveSql.T_FETCH: + case HiveSql.T_FIELDS: + case HiveSql.T_FILE: + case HiveSql.T_FILES: + case HiveSql.T_FLOAT: + case HiveSql.T_FOR: + case HiveSql.T_FOREIGN: + case HiveSql.T_FORMAT: + case HiveSql.T_FOUND: + case HiveSql.T_FROM: + case HiveSql.T_FULL: + case HiveSql.T_FUNCTION: + case HiveSql.T_GET: + case HiveSql.T_GLOBAL: + case HiveSql.T_GO: + case HiveSql.T_GRANT: + case HiveSql.T_GROUP: + case HiveSql.T_HANDLER: + case HiveSql.T_HASH: + case HiveSql.T_HAVING: + case HiveSql.T_HDFS: + case HiveSql.T_HIVE: + case HiveSql.T_HOST: + case HiveSql.T_IDENTITY: + case HiveSql.T_IF: + case HiveSql.T_IGNORE: + case HiveSql.T_IMMEDIATE: + case HiveSql.T_IN: + case HiveSql.T_INCLUDE: + case HiveSql.T_INDEX: + case HiveSql.T_INITRANS: + case HiveSql.T_INNER: + case HiveSql.T_INOUT: + case HiveSql.T_INSERT: + case HiveSql.T_INT: + case HiveSql.T_INT2: + case HiveSql.T_INT4: + case HiveSql.T_INT8: + case HiveSql.T_INTEGER: + case HiveSql.T_INTERSECT: + case HiveSql.T_INTERVAL: + case HiveSql.T_INTO: + case HiveSql.T_INVOKER: + case HiveSql.T_IS: + case HiveSql.T_ISOPEN: + case HiveSql.T_ITEMS: + case HiveSql.T_JOIN: + case HiveSql.T_KEEP: + case HiveSql.T_KEY: + case HiveSql.T_KEYS: + case HiveSql.T_LANGUAGE: + case HiveSql.T_LEAVE: + case HiveSql.T_LEFT: + case HiveSql.T_LIKE: + case HiveSql.T_LIMIT: + case HiveSql.T_LINES: + case HiveSql.T_LOCAL: + case HiveSql.T_LOCATION: + case HiveSql.T_LOCATOR: + case HiveSql.T_LOCATORS: + case HiveSql.T_LOCKS: + case HiveSql.T_LOG: + case HiveSql.T_LOGGED: + case HiveSql.T_LOGGING: + case HiveSql.T_LOOP: + case HiveSql.T_MAP: + case HiveSql.T_MATCHED: + case HiveSql.T_MAX: + case HiveSql.T_MAXTRANS: + case HiveSql.T_MERGE: + case HiveSql.T_MESSAGE_TEXT: + case HiveSql.T_MICROSECOND: + case HiveSql.T_MICROSECONDS: + case HiveSql.T_MIN: + case HiveSql.T_MULTISET: + case HiveSql.T_NCHAR: + case HiveSql.T_NEW: + case HiveSql.T_NVARCHAR: + case HiveSql.T_NO: + case HiveSql.T_NOCOUNT: + case HiveSql.T_NOCOMPRESS: + case HiveSql.T_NOLOGGING: + case HiveSql.T_NONE: + case HiveSql.T_NOT: + case HiveSql.T_NOTFOUND: + case HiveSql.T_NUMERIC: + case HiveSql.T_NUMBER: + case HiveSql.T_OBJECT: + case HiveSql.T_OFF: + case HiveSql.T_ON: + case HiveSql.T_ONLY: + case HiveSql.T_OPEN: + case HiveSql.T_OR: + case HiveSql.T_ORDER: + case HiveSql.T_OUT: + case HiveSql.T_OUTER: + case HiveSql.T_OVER: + case HiveSql.T_OVERWRITE: + case HiveSql.T_OWNER: + case HiveSql.T_PACKAGE: + case HiveSql.T_PARTITION: + case HiveSql.T_PCTFREE: + case HiveSql.T_PCTUSED: + case HiveSql.T_PRECISION: + case HiveSql.T_PRESERVE: + case HiveSql.T_PRIMARY: + case HiveSql.T_PRINT: + case HiveSql.T_PROC: + case HiveSql.T_PROCEDURE: + case HiveSql.T_QUALIFY: + case HiveSql.T_QUERY_BAND: + case HiveSql.T_QUIT: + case HiveSql.T_QUOTED_IDENTIFIER: + case HiveSql.T_RAISE: + case HiveSql.T_REAL: + case HiveSql.T_REFERENCES: + case HiveSql.T_REGEXP: + case HiveSql.T_REPLACE: + case HiveSql.T_RESIGNAL: + case HiveSql.T_RESTRICT: + case HiveSql.T_RESULT: + case HiveSql.T_RESULT_SET_LOCATOR: + case HiveSql.T_RETURN: + case HiveSql.T_RETURNS: + case HiveSql.T_REVERSE: + case HiveSql.T_RIGHT: + case HiveSql.T_RLIKE: + case HiveSql.T_ROLE: + case HiveSql.T_ROLLBACK: + case HiveSql.T_ROW: + case HiveSql.T_ROWS: + case HiveSql.T_ROW_COUNT: + case HiveSql.T_RR: + case HiveSql.T_RS: + case HiveSql.T_PWD: + case HiveSql.T_TRIM: + case HiveSql.T_SCHEMA: + case HiveSql.T_SECOND: + case HiveSql.T_SECONDS: + case HiveSql.T_SECURITY: + case HiveSql.T_SEGMENT: + case HiveSql.T_SEL: + case HiveSql.T_SELECT: + case HiveSql.T_SET: + case HiveSql.T_SESSION: + case HiveSql.T_SESSIONS: + case HiveSql.T_SETS: + case HiveSql.T_SHARE: + case HiveSql.T_SIGNAL: + case HiveSql.T_SIMPLE_DOUBLE: + case HiveSql.T_SIMPLE_FLOAT: + case HiveSql.T_SMALLDATETIME: + case HiveSql.T_SMALLINT: + case HiveSql.T_SQL: + case HiveSql.T_SQLEXCEPTION: + case HiveSql.T_SQLINSERT: + case HiveSql.T_SQLSTATE: + case HiveSql.T_SQLWARNING: + case HiveSql.T_STATS: + case HiveSql.T_STATISTICS: + case HiveSql.T_STEP: + case HiveSql.T_STORAGE: + case HiveSql.T_STORED: + case HiveSql.T_STRING: + case HiveSql.T_SUBDIR: + case HiveSql.T_SUBSTRING: + case HiveSql.T_SUM: + case HiveSql.T_SUMMARY: + case HiveSql.T_SYS_REFCURSOR: + case HiveSql.T_TABLE: + case HiveSql.T_TABLESPACE: + case HiveSql.T_TEMPORARY: + case HiveSql.T_TERMINATED: + case HiveSql.T_TEXTIMAGE_ON: + case HiveSql.T_THEN: + case HiveSql.T_TIMESTAMP: + case HiveSql.T_TITLE: + case HiveSql.T_TO: + case HiveSql.T_TOP: + case HiveSql.T_TRANSACTION: + case HiveSql.T_TRUE: + case HiveSql.T_TRUNCATE: + case HiveSql.T_UNIQUE: + case HiveSql.T_UPDATE: + case HiveSql.T_UR: + case HiveSql.T_USE: + case HiveSql.T_USING: + case HiveSql.T_VALUE: + case HiveSql.T_VALUES: + case HiveSql.T_VAR: + case HiveSql.T_VARCHAR: + case HiveSql.T_VARCHAR2: + case HiveSql.T_VARYING: + case HiveSql.T_VOLATILE: + case HiveSql.T_WHILE: + case HiveSql.T_WITH: + case HiveSql.T_WITHOUT: + case HiveSql.T_WORK: + case HiveSql.T_XACT_ABORT: + case HiveSql.T_XML: + case HiveSql.T_YES: + case HiveSql.T_ACTIVITY_COUNT: + case HiveSql.T_CUME_DIST: + case HiveSql.T_CURRENT_DATE: + case HiveSql.T_CURRENT_TIMESTAMP: + case HiveSql.T_CURRENT_USER: + case HiveSql.T_DENSE_RANK: + case HiveSql.T_FIRST_VALUE: + case HiveSql.T_LAG: + case HiveSql.T_LAST_VALUE: + case HiveSql.T_LEAD: + case HiveSql.T_PART_COUNT: + case HiveSql.T_PART_LOC: + case HiveSql.T_RANK: + case HiveSql.T_ROW_NUMBER: + case HiveSql.T_STDEV: + case HiveSql.T_SYSDATE: + case HiveSql.T_VARIANCE: + case HiveSql.T_USER: + case HiveSql.L_ID: + this.state = 1073; this.ident(); break; - case HiveSqlParser.L_INT: - this.state = 1076; - this.match(HiveSqlParser.L_INT); + case HiveSql.L_INT: + this.state = 1074; + this.match(HiveSql.L_INT); break; default: throw new antlr4.error.NoViableAltException(this); } - this.state = 1079; + this.state = 1077; this._errHandler.sync(this); _la = this._input.LA(1); - } while((((_la) & ~0x1f) == 0 && ((1 << _la) & ((1 << HiveSqlParser.T__8) | (1 << HiveSqlParser.T_GO) | (1 << HiveSqlParser.T_BEGIN) | (1 << HiveSqlParser.T_EXCEPTION) | (1 << HiveSqlParser.L_ID) | (1 << HiveSqlParser.T_THEN) | (1 << HiveSqlParser.T_SET) | (1 << HiveSqlParser.T_ALLOCATE) | (1 << HiveSqlParser.T_CURSOR) | (1 << HiveSqlParser.T_FOR) | (1 << HiveSqlParser.T_RESULT) | (1 << HiveSqlParser.T_PROCEDURE) | (1 << HiveSqlParser.T_ASSOCIATE))) !== 0) || ((((_la - 32)) & ~0x1f) == 0 && ((1 << (_la - 32)) & ((1 << (HiveSqlParser.T_LOCATOR - 32)) | (1 << (HiveSqlParser.T_LOCATORS - 32)) | (1 << (HiveSqlParser.T_WITH - 32)) | (1 << (HiveSqlParser.T_TRANSACTION - 32)) | (1 << (HiveSqlParser.T_BREAK - 32)) | (1 << (HiveSqlParser.T_CALL - 32)) | (1 << (HiveSqlParser.T_DECLARE - 32)) | (1 << (HiveSqlParser.T_AS - 32)) | (1 << (HiveSqlParser.T_CONSTANT - 32)) | (1 << (HiveSqlParser.T_CONDITION - 32)) | (1 << (HiveSqlParser.T_IS - 32)) | (1 << (HiveSqlParser.T_RETURN - 32)) | (1 << (HiveSqlParser.T_ONLY - 32)) | (1 << (HiveSqlParser.T_TO - 32)) | (1 << (HiveSqlParser.T_CALLER - 32)) | (1 << (HiveSqlParser.T_CLIENT - 32)) | (1 << (HiveSqlParser.T_WITHOUT - 32)) | (1 << (HiveSqlParser.T_CONTINUE - 32)) | (1 << (HiveSqlParser.T_EXIT - 32)) | (1 << (HiveSqlParser.T_HANDLER - 32)) | (1 << (HiveSqlParser.T_SQLEXCEPTION - 32)) | (1 << (HiveSqlParser.T_SQLWARNING - 32)) | (1 << (HiveSqlParser.T_NOT - 32)) | (1 << (HiveSqlParser.T_FOUND - 32)) | (1 << (HiveSqlParser.T_GLOBAL - 32)) | (1 << (HiveSqlParser.T_TEMPORARY - 32)) | (1 << (HiveSqlParser.T_TABLE - 32)) | (1 << (HiveSqlParser.T_CREATE - 32)) | (1 << (HiveSqlParser.T_IF - 32)) | (1 << (HiveSqlParser.T_EXISTS - 32)) | (1 << (HiveSqlParser.T_LOCAL - 32)) | (1 << (HiveSqlParser.T_MULTISET - 32)))) !== 0) || ((((_la - 64)) & ~0x1f) == 0 && ((1 << (_la - 64)) & ((1 << (HiveSqlParser.T_VOLATILE - 64)) | (1 << (HiveSqlParser.T_LIKE - 64)) | (1 << (HiveSqlParser.T_CONSTRAINT - 64)) | (1 << (HiveSqlParser.T_PRIMARY - 64)) | (1 << (HiveSqlParser.T_KEY - 64)) | (1 << (HiveSqlParser.T_UNIQUE - 64)) | (1 << (HiveSqlParser.T_REFERENCES - 64)) | (1 << (HiveSqlParser.T_IDENTITY - 64)) | (1 << (HiveSqlParser.L_INT - 64)) | (1 << (HiveSqlParser.T_AUTO_INCREMENT - 64)) | (1 << (HiveSqlParser.T_ENABLE - 64)) | (1 << (HiveSqlParser.T_CLUSTERED - 64)) | (1 << (HiveSqlParser.T_ASC - 64)) | (1 << (HiveSqlParser.T_DESC - 64)) | (1 << (HiveSqlParser.T_FOREIGN - 64)) | (1 << (HiveSqlParser.T_ON - 64)) | (1 << (HiveSqlParser.T_UPDATE - 64)) | (1 << (HiveSqlParser.T_DELETE - 64)) | (1 << (HiveSqlParser.T_NO - 64)) | (1 << (HiveSqlParser.T_ACTION - 64)) | (1 << (HiveSqlParser.T_RESTRICT - 64)) | (1 << (HiveSqlParser.T_DEFAULT - 64)) | (1 << (HiveSqlParser.T_CASCADE - 64)) | (1 << (HiveSqlParser.T_LOG - 64)) | (1 << (HiveSqlParser.T_FALLBACK - 64)) | (1 << (HiveSqlParser.T_COMMIT - 64)) | (1 << (HiveSqlParser.T_PRESERVE - 64)) | (1 << (HiveSqlParser.T_ROWS - 64)) | (1 << (HiveSqlParser.T_SEGMENT - 64)) | (1 << (HiveSqlParser.T_CREATION - 64)) | (1 << (HiveSqlParser.T_IMMEDIATE - 64)) | (1 << (HiveSqlParser.T_DEFERRED - 64)))) !== 0) || ((((_la - 96)) & ~0x1f) == 0 && ((1 << (_la - 96)) & ((1 << (HiveSqlParser.T_PCTFREE - 96)) | (1 << (HiveSqlParser.T_PCTUSED - 96)) | (1 << (HiveSqlParser.T_INITRANS - 96)) | (1 << (HiveSqlParser.T_MAXTRANS - 96)) | (1 << (HiveSqlParser.T_NOCOMPRESS - 96)) | (1 << (HiveSqlParser.T_LOGGING - 96)) | (1 << (HiveSqlParser.T_NOLOGGING - 96)) | (1 << (HiveSqlParser.T_STORAGE - 96)) | (1 << (HiveSqlParser.T_TABLESPACE - 96)) | (1 << (HiveSqlParser.T_INDEX - 96)) | (1 << (HiveSqlParser.T_IN - 96)) | (1 << (HiveSqlParser.T_REPLACE - 96)) | (1 << (HiveSqlParser.T_DISTRIBUTE - 96)) | (1 << (HiveSqlParser.T_BY - 96)) | (1 << (HiveSqlParser.T_HASH - 96)) | (1 << (HiveSqlParser.T_LOGGED - 96)) | (1 << (HiveSqlParser.T_COMPRESS - 96)) | (1 << (HiveSqlParser.T_YES - 96)) | (1 << (HiveSqlParser.T_DEFINITION - 96)) | (1 << (HiveSqlParser.T_DROP - 96)) | (1 << (HiveSqlParser.T_DATA - 96)) | (1 << (HiveSqlParser.T_STORED - 96)) | (1 << (HiveSqlParser.T_ROW - 96)) | (1 << (HiveSqlParser.T_FORMAT - 96)) | (1 << (HiveSqlParser.T_DELIMITED - 96)) | (1 << (HiveSqlParser.T_FIELDS - 96)) | (1 << (HiveSqlParser.T_TERMINATED - 96)) | (1 << (HiveSqlParser.T_ESCAPED - 96)) | (1 << (HiveSqlParser.T_COLLECTION - 96)) | (1 << (HiveSqlParser.T_ITEMS - 96)) | (1 << (HiveSqlParser.T_MAP - 96)) | (1 << (HiveSqlParser.T_KEYS - 96)))) !== 0) || ((((_la - 128)) & ~0x1f) == 0 && ((1 << (_la - 128)) & ((1 << (HiveSqlParser.T_LINES - 128)) | (1 << (HiveSqlParser.T_DEFINED - 128)) | (1 << (HiveSqlParser.T_TEXTIMAGE_ON - 128)) | (1 << (HiveSqlParser.T_COMMENT - 128)) | (1 << (HiveSqlParser.T_CHARACTER - 128)) | (1 << (HiveSqlParser.T_CHARSET - 128)) | (1 << (HiveSqlParser.T_ENGINE - 128)) | (1 << (HiveSqlParser.T_ALTER - 128)) | (1 << (HiveSqlParser.T_ADD2 - 128)) | (1 << (HiveSqlParser.T_CHAR - 128)) | (1 << (HiveSqlParser.T_BIGINT - 128)) | (1 << (HiveSqlParser.T_BINARY_DOUBLE - 128)) | (1 << (HiveSqlParser.T_BINARY_FLOAT - 128)) | (1 << (HiveSqlParser.T_BIT - 128)) | (1 << (HiveSqlParser.T_DATE - 128)) | (1 << (HiveSqlParser.T_DATETIME - 128)) | (1 << (HiveSqlParser.T_DEC - 128)) | (1 << (HiveSqlParser.T_DECIMAL - 128)) | (1 << (HiveSqlParser.T_DOUBLE - 128)) | (1 << (HiveSqlParser.T_PRECISION - 128)) | (1 << (HiveSqlParser.T_FLOAT - 128)) | (1 << (HiveSqlParser.T_INT - 128)) | (1 << (HiveSqlParser.T_INT2 - 128)) | (1 << (HiveSqlParser.T_INT4 - 128)) | (1 << (HiveSqlParser.T_INT8 - 128)) | (1 << (HiveSqlParser.T_INTEGER - 128)) | (1 << (HiveSqlParser.T_NCHAR - 128)) | (1 << (HiveSqlParser.T_NVARCHAR - 128)) | (1 << (HiveSqlParser.T_NUMBER - 128)) | (1 << (HiveSqlParser.T_NUMERIC - 128)))) !== 0) || ((((_la - 160)) & ~0x1f) == 0 && ((1 << (_la - 160)) & ((1 << (HiveSqlParser.T_REAL - 160)) | (1 << (HiveSqlParser.T_RESULT_SET_LOCATOR - 160)) | (1 << (HiveSqlParser.T_VARYING - 160)) | (1 << (HiveSqlParser.T_SIMPLE_FLOAT - 160)) | (1 << (HiveSqlParser.T_SIMPLE_DOUBLE - 160)) | (1 << (HiveSqlParser.T_SMALLINT - 160)) | (1 << (HiveSqlParser.T_SMALLDATETIME - 160)) | (1 << (HiveSqlParser.T_STRING - 160)) | (1 << (HiveSqlParser.T_SYS_REFCURSOR - 160)) | (1 << (HiveSqlParser.T_TIMESTAMP - 160)) | (1 << (HiveSqlParser.T_VARCHAR - 160)) | (1 << (HiveSqlParser.T_VARCHAR2 - 160)) | (1 << (HiveSqlParser.T_XML - 160)) | (1 << (HiveSqlParser.T_MAX - 160)) | (1 << (HiveSqlParser.T_BYTE - 160)) | (1 << (HiveSqlParser.T_CASESPECIFIC - 160)) | (1 << (HiveSqlParser.T_CS - 160)) | (1 << (HiveSqlParser.T_DATABASE - 160)) | (1 << (HiveSqlParser.T_SCHEMA - 160)) | (1 << (HiveSqlParser.T_LOCATION - 160)) | (1 << (HiveSqlParser.T_OR - 160)) | (1 << (HiveSqlParser.T_FUNCTION - 160)) | (1 << (HiveSqlParser.T_RETURNS - 160)) | (1 << (HiveSqlParser.T_PACKAGE - 160)) | (1 << (HiveSqlParser.T_PROC - 160)) | (1 << (HiveSqlParser.T_BODY - 160)) | (1 << (HiveSqlParser.T_OUT - 160)) | (1 << (HiveSqlParser.T_INOUT - 160)))) !== 0) || ((((_la - 192)) & ~0x1f) == 0 && ((1 << (_la - 192)) & ((1 << (HiveSqlParser.T_LANGUAGE - 192)) | (1 << (HiveSqlParser.T_SQL - 192)) | (1 << (HiveSqlParser.T_SECURITY - 192)) | (1 << (HiveSqlParser.T_CREATOR - 192)) | (1 << (HiveSqlParser.T_DEFINER - 192)) | (1 << (HiveSqlParser.T_INVOKER - 192)) | (1 << (HiveSqlParser.T_OWNER - 192)) | (1 << (HiveSqlParser.T_DYNAMIC - 192)) | (1 << (HiveSqlParser.T_SETS - 192)) | (1 << (HiveSqlParser.T_EXEC - 192)) | (1 << (HiveSqlParser.T_EXECUTE - 192)) | (1 << (HiveSqlParser.T_INTO - 192)) | (1 << (HiveSqlParser.T_INCLUDE - 192)) | (1 << (HiveSqlParser.T_INSERT - 192)) | (1 << (HiveSqlParser.T_OVERWRITE - 192)) | (1 << (HiveSqlParser.T_VALUES - 192)) | (1 << (HiveSqlParser.T_DIRECTORY - 192)) | (1 << (HiveSqlParser.T_GET - 192)) | (1 << (HiveSqlParser.T_DIAGNOSTICS - 192)) | (1 << (HiveSqlParser.T_MESSAGE_TEXT - 192)) | (1 << (HiveSqlParser.T_ROW_COUNT - 192)) | (1 << (HiveSqlParser.T_GRANT - 192)) | (1 << (HiveSqlParser.T_ROLE - 192)) | (1 << (HiveSqlParser.T_LEAVE - 192)) | (1 << (HiveSqlParser.T_OBJECT - 192)) | (1 << (HiveSqlParser.T_AT - 192)) | (1 << (HiveSqlParser.T_OPEN - 192)) | (1 << (HiveSqlParser.T_FETCH - 192)) | (1 << (HiveSqlParser.T_FROM - 192)))) !== 0) || ((((_la - 224)) & ~0x1f) == 0 && ((1 << (_la - 224)) & ((1 << (HiveSqlParser.T_COLLECT - 224)) | (1 << (HiveSqlParser.T_STATISTICS - 224)) | (1 << (HiveSqlParser.T_STATS - 224)) | (1 << (HiveSqlParser.T_COLUMN - 224)) | (1 << (HiveSqlParser.T_CLOSE - 224)) | (1 << (HiveSqlParser.T_CMP - 224)) | (1 << (HiveSqlParser.T_SUM - 224)) | (1 << (HiveSqlParser.T_COPY - 224)) | (1 << (HiveSqlParser.T_HDFS - 224)) | (1 << (HiveSqlParser.T_BATCHSIZE - 224)) | (1 << (HiveSqlParser.T_DELIMITER - 224)) | (1 << (HiveSqlParser.T_SQLINSERT - 224)) | (1 << (HiveSqlParser.T_IGNORE - 224)) | (1 << (HiveSqlParser.T_WORK - 224)) | (1 << (HiveSqlParser.T_PRINT - 224)) | (1 << (HiveSqlParser.T_QUIT - 224)) | (1 << (HiveSqlParser.T_RAISE - 224)) | (1 << (HiveSqlParser.T_RESIGNAL - 224)) | (1 << (HiveSqlParser.T_SQLSTATE - 224)) | (1 << (HiveSqlParser.T_VALUE - 224)) | (1 << (HiveSqlParser.T_ROLLBACK - 224)) | (1 << (HiveSqlParser.T_CURRENT - 224)) | (1 << (HiveSqlParser.T_CURRENT_SCHEMA - 224)) | (1 << (HiveSqlParser.T_ANSI_NULLS - 224)) | (1 << (HiveSqlParser.T_ANSI_PADDING - 224)) | (1 << (HiveSqlParser.T_NOCOUNT - 224)) | (1 << (HiveSqlParser.T_QUOTED_IDENTIFIER - 224)) | (1 << (HiveSqlParser.T_XACT_ABORT - 224)) | (1 << (HiveSqlParser.T_OFF - 224)) | (1 << (HiveSqlParser.T_QUERY_BAND - 224)) | (1 << (HiveSqlParser.T_NONE - 224)) | (1 << (HiveSqlParser.T_SESSION - 224)))) !== 0) || ((((_la - 256)) & ~0x1f) == 0 && ((1 << (_la - 256)) & ((1 << (HiveSqlParser.T_SIGNAL - 256)) | (1 << (HiveSqlParser.T_SUMMARY - 256)) | (1 << (HiveSqlParser.T_TOP - 256)) | (1 << (HiveSqlParser.T_LIMIT - 256)) | (1 << (HiveSqlParser.T_TRUNCATE - 256)) | (1 << (HiveSqlParser.T_USE - 256)) | (1 << (HiveSqlParser.T_WHILE - 256)) | (1 << (HiveSqlParser.T_DO - 256)) | (1 << (HiveSqlParser.T_LOOP - 256)) | (1 << (HiveSqlParser.T_REVERSE - 256)) | (1 << (HiveSqlParser.T_STEP - 256)) | (1 << (HiveSqlParser.T_USING - 256)) | (1 << (HiveSqlParser.T_ALL - 256)) | (1 << (HiveSqlParser.T_EXCEPT - 256)) | (1 << (HiveSqlParser.T_INTERSECT - 256)) | (1 << (HiveSqlParser.T_SELECT - 256)) | (1 << (HiveSqlParser.T_SEL - 256)) | (1 << (HiveSqlParser.T_DISTINCT - 256)) | (1 << (HiveSqlParser.T_TITLE - 256)) | (1 << (HiveSqlParser.T_INNER - 256)) | (1 << (HiveSqlParser.T_JOIN - 256)) | (1 << (HiveSqlParser.T_LEFT - 256)) | (1 << (HiveSqlParser.T_RIGHT - 256)) | (1 << (HiveSqlParser.T_FULL - 256)) | (1 << (HiveSqlParser.T_OUTER - 256)))) !== 0) || ((((_la - 288)) & ~0x1f) == 0 && ((1 << (_la - 288)) & ((1 << (HiveSqlParser.T_GROUP - 288)) | (1 << (HiveSqlParser.T_HAVING - 288)) | (1 << (HiveSqlParser.T_QUALIFY - 288)) | (1 << (HiveSqlParser.T_ORDER - 288)) | (1 << (HiveSqlParser.T_RR - 288)) | (1 << (HiveSqlParser.T_RS - 288)) | (1 << (HiveSqlParser.T_UR - 288)) | (1 << (HiveSqlParser.T_AND - 288)) | (1 << (HiveSqlParser.T_KEEP - 288)) | (1 << (HiveSqlParser.T_EXCLUSIVE - 288)) | (1 << (HiveSqlParser.T_SHARE - 288)) | (1 << (HiveSqlParser.T_LOCKS - 288)) | (1 << (HiveSqlParser.T_MERGE - 288)) | (1 << (HiveSqlParser.T_MATCHED - 288)) | (1 << (HiveSqlParser.T_DESCRIBE - 288)) | (1 << (HiveSqlParser.T_BETWEEN - 288)) | (1 << (HiveSqlParser.T_RLIKE - 288)) | (1 << (HiveSqlParser.T_REGEXP - 288)) | (1 << (HiveSqlParser.T_INTERVAL - 288)) | (1 << (HiveSqlParser.T_DAY - 288)) | (1 << (HiveSqlParser.T_DAYS - 288)) | (1 << (HiveSqlParser.T_MICROSECOND - 288)) | (1 << (HiveSqlParser.T_MICROSECONDS - 288)))) !== 0) || ((((_la - 320)) & ~0x1f) == 0 && ((1 << (_la - 320)) & ((1 << (HiveSqlParser.T_SECOND - 320)) | (1 << (HiveSqlParser.T_SECONDS - 320)) | (1 << (HiveSqlParser.T_CONCAT - 320)) | (1 << (HiveSqlParser.T_CASE - 320)) | (1 << (HiveSqlParser.T_ISOPEN - 320)) | (1 << (HiveSqlParser.T_NOTFOUND - 320)) | (1 << (HiveSqlParser.T_AVG - 320)) | (1 << (HiveSqlParser.T_COUNT - 320)) | (1 << (HiveSqlParser.T_COUNT_BIG - 320)) | (1 << (HiveSqlParser.T_CUME_DIST - 320)) | (1 << (HiveSqlParser.T_DENSE_RANK - 320)) | (1 << (HiveSqlParser.T_FIRST_VALUE - 320)) | (1 << (HiveSqlParser.T_LAG - 320)) | (1 << (HiveSqlParser.T_LAST_VALUE - 320)) | (1 << (HiveSqlParser.T_LEAD - 320)) | (1 << (HiveSqlParser.T_MIN - 320)) | (1 << (HiveSqlParser.T_RANK - 320)) | (1 << (HiveSqlParser.T_ROW_NUMBER - 320)) | (1 << (HiveSqlParser.T_STDEV - 320)) | (1 << (HiveSqlParser.T_VAR - 320)) | (1 << (HiveSqlParser.T_VARIANCE - 320)) | (1 << (HiveSqlParser.T_OVER - 320)) | (1 << (HiveSqlParser.T_PARTITION - 320)) | (1 << (HiveSqlParser.T_ACTIVITY_COUNT - 320)) | (1 << (HiveSqlParser.T_CAST - 320)) | (1 << (HiveSqlParser.T_CURRENT_DATE - 320)) | (1 << (HiveSqlParser.T_CURRENT_TIMESTAMP - 320)) | (1 << (HiveSqlParser.T_CURRENT_USER - 320)) | (1 << (HiveSqlParser.T_USER - 320)))) !== 0) || ((((_la - 356)) & ~0x1f) == 0 && ((1 << (_la - 356)) & ((1 << (HiveSqlParser.T_PART_COUNT - 356)) | (1 << (HiveSqlParser.T_PART_LOC - 356)) | (1 << (HiveSqlParser.T_TRIM - 356)) | (1 << (HiveSqlParser.T_SUBSTRING - 356)) | (1 << (HiveSqlParser.T_SYSDATE - 356)) | (1 << (HiveSqlParser.T_HIVE - 356)) | (1 << (HiveSqlParser.T_HOST - 356)) | (1 << (HiveSqlParser.T_TRUE - 356)) | (1 << (HiveSqlParser.T_FALSE - 356)) | (1 << (HiveSqlParser.T_DIR - 356)) | (1 << (HiveSqlParser.T_FILE - 356)) | (1 << (HiveSqlParser.T_FILES - 356)) | (1 << (HiveSqlParser.T_NEW - 356)) | (1 << (HiveSqlParser.T_PWD - 356)) | (1 << (HiveSqlParser.T_SESSIONS - 356)) | (1 << (HiveSqlParser.T_SUBDIR - 356)))) !== 0)); - this.state = 1081; - this.match(HiveSqlParser.T_CLOSE_P); + } while((((_la) & ~0x1f) == 0 && ((1 << _la) & ((1 << HiveSql.T_ACTION) | (1 << HiveSql.T_ADD2) | (1 << HiveSql.T_ALL) | (1 << HiveSql.T_ALLOCATE) | (1 << HiveSql.T_ALTER) | (1 << HiveSql.T_AND) | (1 << HiveSql.T_ANSI_NULLS) | (1 << HiveSql.T_ANSI_PADDING) | (1 << HiveSql.T_AS) | (1 << HiveSql.T_ASC) | (1 << HiveSql.T_ASSOCIATE) | (1 << HiveSql.T_AT) | (1 << HiveSql.T_AUTO_INCREMENT) | (1 << HiveSql.T_AVG) | (1 << HiveSql.T_BATCHSIZE) | (1 << HiveSql.T_BEGIN) | (1 << HiveSql.T_BETWEEN) | (1 << HiveSql.T_BIGINT) | (1 << HiveSql.T_BINARY_DOUBLE) | (1 << HiveSql.T_BINARY_FLOAT) | (1 << HiveSql.T_BIT) | (1 << HiveSql.T_BODY) | (1 << HiveSql.T_BREAK) | (1 << HiveSql.T_BY) | (1 << HiveSql.T_BYTE) | (1 << HiveSql.T_CALL) | (1 << HiveSql.T_CALLER) | (1 << HiveSql.T_CASCADE) | (1 << HiveSql.T_CASE) | (1 << HiveSql.T_CASESPECIFIC))) !== 0) || ((((_la - 32)) & ~0x1f) == 0 && ((1 << (_la - 32)) & ((1 << (HiveSql.T_CAST - 32)) | (1 << (HiveSql.T_CHAR - 32)) | (1 << (HiveSql.T_CHARACTER - 32)) | (1 << (HiveSql.T_CHARSET - 32)) | (1 << (HiveSql.T_CLIENT - 32)) | (1 << (HiveSql.T_CLOSE - 32)) | (1 << (HiveSql.T_CLUSTERED - 32)) | (1 << (HiveSql.T_CMP - 32)) | (1 << (HiveSql.T_COLLECT - 32)) | (1 << (HiveSql.T_COLLECTION - 32)) | (1 << (HiveSql.T_COLUMN - 32)) | (1 << (HiveSql.T_COMMENT - 32)) | (1 << (HiveSql.T_CONSTANT - 32)) | (1 << (HiveSql.T_COMMIT - 32)) | (1 << (HiveSql.T_COMPRESS - 32)) | (1 << (HiveSql.T_CONCAT - 32)) | (1 << (HiveSql.T_CONDITION - 32)) | (1 << (HiveSql.T_CONSTRAINT - 32)) | (1 << (HiveSql.T_CONTINUE - 32)) | (1 << (HiveSql.T_COPY - 32)) | (1 << (HiveSql.T_COUNT - 32)) | (1 << (HiveSql.T_COUNT_BIG - 32)) | (1 << (HiveSql.T_CREATE - 32)) | (1 << (HiveSql.T_CREATION - 32)) | (1 << (HiveSql.T_CREATOR - 32)) | (1 << (HiveSql.T_CS - 32)) | (1 << (HiveSql.T_CURRENT - 32)) | (1 << (HiveSql.T_CURRENT_SCHEMA - 32)) | (1 << (HiveSql.T_CURSOR - 32)) | (1 << (HiveSql.T_DATABASE - 32)) | (1 << (HiveSql.T_DATA - 32)) | (1 << (HiveSql.T_DATE - 32)))) !== 0) || ((((_la - 64)) & ~0x1f) == 0 && ((1 << (_la - 64)) & ((1 << (HiveSql.T_DATETIME - 64)) | (1 << (HiveSql.T_DAY - 64)) | (1 << (HiveSql.T_DAYS - 64)) | (1 << (HiveSql.T_DEC - 64)) | (1 << (HiveSql.T_DECIMAL - 64)) | (1 << (HiveSql.T_DECLARE - 64)) | (1 << (HiveSql.T_DEFAULT - 64)) | (1 << (HiveSql.T_DEFERRED - 64)) | (1 << (HiveSql.T_DEFINED - 64)) | (1 << (HiveSql.T_DEFINER - 64)) | (1 << (HiveSql.T_DEFINITION - 64)) | (1 << (HiveSql.T_DELETE - 64)) | (1 << (HiveSql.T_DELIMITED - 64)) | (1 << (HiveSql.T_DELIMITER - 64)) | (1 << (HiveSql.T_DESC - 64)) | (1 << (HiveSql.T_DESCRIBE - 64)) | (1 << (HiveSql.T_DIAGNOSTICS - 64)) | (1 << (HiveSql.T_DIR - 64)) | (1 << (HiveSql.T_DIRECTORY - 64)) | (1 << (HiveSql.T_DISTINCT - 64)) | (1 << (HiveSql.T_DISTRIBUTE - 64)) | (1 << (HiveSql.T_DO - 64)) | (1 << (HiveSql.T_DOUBLE - 64)) | (1 << (HiveSql.T_DROP - 64)) | (1 << (HiveSql.T_DYNAMIC - 64)) | (1 << (HiveSql.T_ENABLE - 64)) | (1 << (HiveSql.T_ENGINE - 64)) | (1 << (HiveSql.T_ESCAPED - 64)))) !== 0) || ((((_la - 96)) & ~0x1f) == 0 && ((1 << (_la - 96)) & ((1 << (HiveSql.T_EXCEPT - 96)) | (1 << (HiveSql.T_EXEC - 96)) | (1 << (HiveSql.T_EXECUTE - 96)) | (1 << (HiveSql.T_EXCEPTION - 96)) | (1 << (HiveSql.T_EXCLUSIVE - 96)) | (1 << (HiveSql.T_EXISTS - 96)) | (1 << (HiveSql.T_EXIT - 96)) | (1 << (HiveSql.T_FALLBACK - 96)) | (1 << (HiveSql.T_FALSE - 96)) | (1 << (HiveSql.T_FETCH - 96)) | (1 << (HiveSql.T_FIELDS - 96)) | (1 << (HiveSql.T_FILE - 96)) | (1 << (HiveSql.T_FILES - 96)) | (1 << (HiveSql.T_FLOAT - 96)) | (1 << (HiveSql.T_FOR - 96)) | (1 << (HiveSql.T_FOREIGN - 96)) | (1 << (HiveSql.T_FORMAT - 96)) | (1 << (HiveSql.T_FOUND - 96)) | (1 << (HiveSql.T_FROM - 96)) | (1 << (HiveSql.T_FULL - 96)) | (1 << (HiveSql.T_FUNCTION - 96)) | (1 << (HiveSql.T_GET - 96)) | (1 << (HiveSql.T_GLOBAL - 96)) | (1 << (HiveSql.T_GO - 96)) | (1 << (HiveSql.T_GRANT - 96)) | (1 << (HiveSql.T_GROUP - 96)) | (1 << (HiveSql.T_HANDLER - 96)) | (1 << (HiveSql.T_HASH - 96)) | (1 << (HiveSql.T_HAVING - 96)) | (1 << (HiveSql.T_HDFS - 96)) | (1 << (HiveSql.T_HIVE - 96)) | (1 << (HiveSql.T_HOST - 96)))) !== 0) || ((((_la - 128)) & ~0x1f) == 0 && ((1 << (_la - 128)) & ((1 << (HiveSql.T_IDENTITY - 128)) | (1 << (HiveSql.T_IF - 128)) | (1 << (HiveSql.T_IGNORE - 128)) | (1 << (HiveSql.T_IMMEDIATE - 128)) | (1 << (HiveSql.T_IN - 128)) | (1 << (HiveSql.T_INCLUDE - 128)) | (1 << (HiveSql.T_INDEX - 128)) | (1 << (HiveSql.T_INITRANS - 128)) | (1 << (HiveSql.T_INNER - 128)) | (1 << (HiveSql.T_INOUT - 128)) | (1 << (HiveSql.T_INSERT - 128)) | (1 << (HiveSql.T_INT - 128)) | (1 << (HiveSql.T_INT2 - 128)) | (1 << (HiveSql.T_INT4 - 128)) | (1 << (HiveSql.T_INT8 - 128)) | (1 << (HiveSql.T_INTEGER - 128)) | (1 << (HiveSql.T_INTERSECT - 128)) | (1 << (HiveSql.T_INTERVAL - 128)) | (1 << (HiveSql.T_INTO - 128)) | (1 << (HiveSql.T_INVOKER - 128)) | (1 << (HiveSql.T_IS - 128)) | (1 << (HiveSql.T_ISOPEN - 128)) | (1 << (HiveSql.T_ITEMS - 128)) | (1 << (HiveSql.T_JOIN - 128)) | (1 << (HiveSql.T_KEEP - 128)) | (1 << (HiveSql.T_KEY - 128)) | (1 << (HiveSql.T_KEYS - 128)) | (1 << (HiveSql.T_LANGUAGE - 128)) | (1 << (HiveSql.T_LEAVE - 128)) | (1 << (HiveSql.T_LEFT - 128)) | (1 << (HiveSql.T_LIKE - 128)) | (1 << (HiveSql.T_LIMIT - 128)))) !== 0) || ((((_la - 160)) & ~0x1f) == 0 && ((1 << (_la - 160)) & ((1 << (HiveSql.T_LINES - 160)) | (1 << (HiveSql.T_LOCAL - 160)) | (1 << (HiveSql.T_LOCATION - 160)) | (1 << (HiveSql.T_LOCATOR - 160)) | (1 << (HiveSql.T_LOCATORS - 160)) | (1 << (HiveSql.T_LOCKS - 160)) | (1 << (HiveSql.T_LOG - 160)) | (1 << (HiveSql.T_LOGGED - 160)) | (1 << (HiveSql.T_LOGGING - 160)) | (1 << (HiveSql.T_LOOP - 160)) | (1 << (HiveSql.T_MAP - 160)) | (1 << (HiveSql.T_MATCHED - 160)) | (1 << (HiveSql.T_MAX - 160)) | (1 << (HiveSql.T_MAXTRANS - 160)) | (1 << (HiveSql.T_MERGE - 160)) | (1 << (HiveSql.T_MESSAGE_TEXT - 160)) | (1 << (HiveSql.T_MICROSECOND - 160)) | (1 << (HiveSql.T_MICROSECONDS - 160)) | (1 << (HiveSql.T_MIN - 160)) | (1 << (HiveSql.T_MULTISET - 160)) | (1 << (HiveSql.T_NCHAR - 160)) | (1 << (HiveSql.T_NEW - 160)) | (1 << (HiveSql.T_NVARCHAR - 160)) | (1 << (HiveSql.T_NO - 160)) | (1 << (HiveSql.T_NOCOUNT - 160)) | (1 << (HiveSql.T_NOCOMPRESS - 160)) | (1 << (HiveSql.T_NOLOGGING - 160)) | (1 << (HiveSql.T_NONE - 160)) | (1 << (HiveSql.T_NOT - 160)) | (1 << (HiveSql.T_NOTFOUND - 160)) | (1 << (HiveSql.T_NUMERIC - 160)))) !== 0) || ((((_la - 192)) & ~0x1f) == 0 && ((1 << (_la - 192)) & ((1 << (HiveSql.T_NUMBER - 192)) | (1 << (HiveSql.T_OBJECT - 192)) | (1 << (HiveSql.T_OFF - 192)) | (1 << (HiveSql.T_ON - 192)) | (1 << (HiveSql.T_ONLY - 192)) | (1 << (HiveSql.T_OPEN - 192)) | (1 << (HiveSql.T_OR - 192)) | (1 << (HiveSql.T_ORDER - 192)) | (1 << (HiveSql.T_OUT - 192)) | (1 << (HiveSql.T_OUTER - 192)) | (1 << (HiveSql.T_OVER - 192)) | (1 << (HiveSql.T_OVERWRITE - 192)) | (1 << (HiveSql.T_OWNER - 192)) | (1 << (HiveSql.T_PACKAGE - 192)) | (1 << (HiveSql.T_PARTITION - 192)) | (1 << (HiveSql.T_PCTFREE - 192)) | (1 << (HiveSql.T_PCTUSED - 192)) | (1 << (HiveSql.T_PRECISION - 192)) | (1 << (HiveSql.T_PRESERVE - 192)) | (1 << (HiveSql.T_PRIMARY - 192)) | (1 << (HiveSql.T_PRINT - 192)) | (1 << (HiveSql.T_PROC - 192)) | (1 << (HiveSql.T_PROCEDURE - 192)) | (1 << (HiveSql.T_QUALIFY - 192)) | (1 << (HiveSql.T_QUERY_BAND - 192)) | (1 << (HiveSql.T_QUIT - 192)) | (1 << (HiveSql.T_QUOTED_IDENTIFIER - 192)) | (1 << (HiveSql.T_RAISE - 192)) | (1 << (HiveSql.T_REAL - 192)) | (1 << (HiveSql.T_REFERENCES - 192)) | (1 << (HiveSql.T_REGEXP - 192)))) !== 0) || ((((_la - 224)) & ~0x1f) == 0 && ((1 << (_la - 224)) & ((1 << (HiveSql.T_REPLACE - 224)) | (1 << (HiveSql.T_RESIGNAL - 224)) | (1 << (HiveSql.T_RESTRICT - 224)) | (1 << (HiveSql.T_RESULT - 224)) | (1 << (HiveSql.T_RESULT_SET_LOCATOR - 224)) | (1 << (HiveSql.T_RETURN - 224)) | (1 << (HiveSql.T_RETURNS - 224)) | (1 << (HiveSql.T_REVERSE - 224)) | (1 << (HiveSql.T_RIGHT - 224)) | (1 << (HiveSql.T_RLIKE - 224)) | (1 << (HiveSql.T_ROLE - 224)) | (1 << (HiveSql.T_ROLLBACK - 224)) | (1 << (HiveSql.T_ROW - 224)) | (1 << (HiveSql.T_ROWS - 224)) | (1 << (HiveSql.T_ROW_COUNT - 224)) | (1 << (HiveSql.T_RR - 224)) | (1 << (HiveSql.T_RS - 224)) | (1 << (HiveSql.T_PWD - 224)) | (1 << (HiveSql.T_TRIM - 224)) | (1 << (HiveSql.T_SCHEMA - 224)) | (1 << (HiveSql.T_SECOND - 224)) | (1 << (HiveSql.T_SECONDS - 224)) | (1 << (HiveSql.T_SECURITY - 224)) | (1 << (HiveSql.T_SEGMENT - 224)) | (1 << (HiveSql.T_SEL - 224)) | (1 << (HiveSql.T_SELECT - 224)) | (1 << (HiveSql.T_SET - 224)) | (1 << (HiveSql.T_SESSION - 224)) | (1 << (HiveSql.T_SESSIONS - 224)) | (1 << (HiveSql.T_SETS - 224)) | (1 << (HiveSql.T_SHARE - 224)))) !== 0) || ((((_la - 256)) & ~0x1f) == 0 && ((1 << (_la - 256)) & ((1 << (HiveSql.T_SIGNAL - 256)) | (1 << (HiveSql.T_SIMPLE_DOUBLE - 256)) | (1 << (HiveSql.T_SIMPLE_FLOAT - 256)) | (1 << (HiveSql.T_SMALLDATETIME - 256)) | (1 << (HiveSql.T_SMALLINT - 256)) | (1 << (HiveSql.T_SQL - 256)) | (1 << (HiveSql.T_SQLEXCEPTION - 256)) | (1 << (HiveSql.T_SQLINSERT - 256)) | (1 << (HiveSql.T_SQLSTATE - 256)) | (1 << (HiveSql.T_SQLWARNING - 256)) | (1 << (HiveSql.T_STATS - 256)) | (1 << (HiveSql.T_STATISTICS - 256)) | (1 << (HiveSql.T_STEP - 256)) | (1 << (HiveSql.T_STORAGE - 256)) | (1 << (HiveSql.T_STORED - 256)) | (1 << (HiveSql.T_STRING - 256)) | (1 << (HiveSql.T_SUBDIR - 256)) | (1 << (HiveSql.T_SUBSTRING - 256)) | (1 << (HiveSql.T_SUM - 256)) | (1 << (HiveSql.T_SUMMARY - 256)) | (1 << (HiveSql.T_SYS_REFCURSOR - 256)) | (1 << (HiveSql.T_TABLE - 256)) | (1 << (HiveSql.T_TABLESPACE - 256)) | (1 << (HiveSql.T_TEMPORARY - 256)) | (1 << (HiveSql.T_TERMINATED - 256)) | (1 << (HiveSql.T_TEXTIMAGE_ON - 256)) | (1 << (HiveSql.T_THEN - 256)) | (1 << (HiveSql.T_TIMESTAMP - 256)) | (1 << (HiveSql.T_TITLE - 256)) | (1 << (HiveSql.T_TO - 256)))) !== 0) || ((((_la - 288)) & ~0x1f) == 0 && ((1 << (_la - 288)) & ((1 << (HiveSql.T_TOP - 288)) | (1 << (HiveSql.T_TRANSACTION - 288)) | (1 << (HiveSql.T_TRUE - 288)) | (1 << (HiveSql.T_TRUNCATE - 288)) | (1 << (HiveSql.T_UNIQUE - 288)) | (1 << (HiveSql.T_UPDATE - 288)) | (1 << (HiveSql.T_UR - 288)) | (1 << (HiveSql.T_USE - 288)) | (1 << (HiveSql.T_USING - 288)) | (1 << (HiveSql.T_VALUE - 288)) | (1 << (HiveSql.T_VALUES - 288)) | (1 << (HiveSql.T_VAR - 288)) | (1 << (HiveSql.T_VARCHAR - 288)) | (1 << (HiveSql.T_VARCHAR2 - 288)) | (1 << (HiveSql.T_VARYING - 288)) | (1 << (HiveSql.T_VOLATILE - 288)) | (1 << (HiveSql.T_WHILE - 288)) | (1 << (HiveSql.T_WITH - 288)) | (1 << (HiveSql.T_WITHOUT - 288)) | (1 << (HiveSql.T_WORK - 288)) | (1 << (HiveSql.T_XACT_ABORT - 288)) | (1 << (HiveSql.T_XML - 288)) | (1 << (HiveSql.T_YES - 288)) | (1 << (HiveSql.T_ACTIVITY_COUNT - 288)) | (1 << (HiveSql.T_CUME_DIST - 288)) | (1 << (HiveSql.T_CURRENT_DATE - 288)) | (1 << (HiveSql.T_CURRENT_TIMESTAMP - 288)) | (1 << (HiveSql.T_CURRENT_USER - 288)))) !== 0) || ((((_la - 320)) & ~0x1f) == 0 && ((1 << (_la - 320)) & ((1 << (HiveSql.T_DENSE_RANK - 320)) | (1 << (HiveSql.T_FIRST_VALUE - 320)) | (1 << (HiveSql.T_LAG - 320)) | (1 << (HiveSql.T_LAST_VALUE - 320)) | (1 << (HiveSql.T_LEAD - 320)) | (1 << (HiveSql.T_PART_COUNT - 320)) | (1 << (HiveSql.T_PART_LOC - 320)) | (1 << (HiveSql.T_RANK - 320)) | (1 << (HiveSql.T_ROW_NUMBER - 320)) | (1 << (HiveSql.T_STDEV - 320)) | (1 << (HiveSql.T_SYSDATE - 320)) | (1 << (HiveSql.T_VARIANCE - 320)) | (1 << (HiveSql.T_USER - 320)))) !== 0) || _la===HiveSql.L_ID || _la===HiveSql.L_INT); + this.state = 1079; + this.match(HiveSql.T_CLOSE_P); break; - case HiveSqlParser.T_TABLESPACE: + case HiveSql.T_TABLESPACE: this.enterOuterAlt(localctx, 6); - this.state = 1082; - this.match(HiveSqlParser.T_TABLESPACE); - this.state = 1083; + this.state = 1080; + this.match(HiveSql.T_TABLESPACE); + this.state = 1081; this.ident(); break; default: @@ -10709,7 +10749,7 @@ function Create_table_options_db2_itemContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_create_table_options_db2_item; + this.ruleIndex = HiveSql.RULE_create_table_options_db2_item; return this; } @@ -10717,7 +10757,7 @@ Create_table_options_db2_itemContext.prototype = Object.create(antlr4.ParserRule Create_table_options_db2_itemContext.prototype.constructor = Create_table_options_db2_itemContext; Create_table_options_db2_itemContext.prototype.T_IN = function() { - return this.getToken(HiveSqlParser.T_IN, 0); + return this.getToken(HiveSql.T_IN, 0); }; Create_table_options_db2_itemContext.prototype.ident = function(i) { @@ -10732,35 +10772,35 @@ Create_table_options_db2_itemContext.prototype.ident = function(i) { }; Create_table_options_db2_itemContext.prototype.T_INDEX = function() { - return this.getToken(HiveSqlParser.T_INDEX, 0); + return this.getToken(HiveSql.T_INDEX, 0); }; Create_table_options_db2_itemContext.prototype.T_WITH = function() { - return this.getToken(HiveSqlParser.T_WITH, 0); + return this.getToken(HiveSql.T_WITH, 0); }; Create_table_options_db2_itemContext.prototype.T_REPLACE = function() { - return this.getToken(HiveSqlParser.T_REPLACE, 0); + return this.getToken(HiveSql.T_REPLACE, 0); }; Create_table_options_db2_itemContext.prototype.T_DISTRIBUTE = function() { - return this.getToken(HiveSqlParser.T_DISTRIBUTE, 0); + return this.getToken(HiveSql.T_DISTRIBUTE, 0); }; Create_table_options_db2_itemContext.prototype.T_BY = function() { - return this.getToken(HiveSqlParser.T_BY, 0); + return this.getToken(HiveSql.T_BY, 0); }; Create_table_options_db2_itemContext.prototype.T_HASH = function() { - return this.getToken(HiveSqlParser.T_HASH, 0); + return this.getToken(HiveSql.T_HASH, 0); }; Create_table_options_db2_itemContext.prototype.T_OPEN_P = function() { - return this.getToken(HiveSqlParser.T_OPEN_P, 0); + return this.getToken(HiveSql.T_OPEN_P, 0); }; Create_table_options_db2_itemContext.prototype.T_CLOSE_P = function() { - return this.getToken(HiveSqlParser.T_CLOSE_P, 0); + return this.getToken(HiveSql.T_CLOSE_P, 0); }; Create_table_options_db2_itemContext.prototype.T_COMMA = function(i) { @@ -10768,51 +10808,51 @@ Create_table_options_db2_itemContext.prototype.T_COMMA = function(i) { i = null; } if(i===null) { - return this.getTokens(HiveSqlParser.T_COMMA); + return this.getTokens(HiveSql.T_COMMA); } else { - return this.getToken(HiveSqlParser.T_COMMA, i); + return this.getToken(HiveSql.T_COMMA, i); } }; Create_table_options_db2_itemContext.prototype.T_LOGGED = function() { - return this.getToken(HiveSqlParser.T_LOGGED, 0); + return this.getToken(HiveSql.T_LOGGED, 0); }; Create_table_options_db2_itemContext.prototype.T_NOT = function() { - return this.getToken(HiveSqlParser.T_NOT, 0); + return this.getToken(HiveSql.T_NOT, 0); }; Create_table_options_db2_itemContext.prototype.T_COMPRESS = function() { - return this.getToken(HiveSqlParser.T_COMPRESS, 0); + return this.getToken(HiveSql.T_COMPRESS, 0); }; Create_table_options_db2_itemContext.prototype.T_YES = function() { - return this.getToken(HiveSqlParser.T_YES, 0); + return this.getToken(HiveSql.T_YES, 0); }; Create_table_options_db2_itemContext.prototype.T_NO = function() { - return this.getToken(HiveSqlParser.T_NO, 0); + return this.getToken(HiveSql.T_NO, 0); }; Create_table_options_db2_itemContext.prototype.T_DEFINITION = function() { - return this.getToken(HiveSqlParser.T_DEFINITION, 0); + return this.getToken(HiveSql.T_DEFINITION, 0); }; Create_table_options_db2_itemContext.prototype.T_ONLY = function() { - return this.getToken(HiveSqlParser.T_ONLY, 0); + return this.getToken(HiveSql.T_ONLY, 0); }; Create_table_options_db2_itemContext.prototype.T_RESTRICT = function() { - return this.getToken(HiveSqlParser.T_RESTRICT, 0); + return this.getToken(HiveSql.T_RESTRICT, 0); }; Create_table_options_db2_itemContext.prototype.T_ON = function() { - return this.getToken(HiveSqlParser.T_ON, 0); + return this.getToken(HiveSql.T_ON, 0); }; Create_table_options_db2_itemContext.prototype.T_DROP = function() { - return this.getToken(HiveSqlParser.T_DROP, 0); + return this.getToken(HiveSql.T_DROP, 0); }; Create_table_options_db2_itemContext.prototype.enterRule = function(listener) { @@ -10838,91 +10878,91 @@ Create_table_options_db2_itemContext.prototype.accept = function(visitor) { -HiveSqlParser.Create_table_options_db2_itemContext = Create_table_options_db2_itemContext; +HiveSql.Create_table_options_db2_itemContext = Create_table_options_db2_itemContext; -HiveSqlParser.prototype.create_table_options_db2_item = function() { +HiveSql.prototype.create_table_options_db2_item = function() { var localctx = new Create_table_options_db2_itemContext(this, this._ctx, this.state); - this.enterRule(localctx, 96, HiveSqlParser.RULE_create_table_options_db2_item); + this.enterRule(localctx, 96, HiveSql.RULE_create_table_options_db2_item); var _la = 0; // Token type try { - this.state = 1119; + this.state = 1117; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,92,this._ctx); switch(la_) { case 1: this.enterOuterAlt(localctx, 1); - this.state = 1087; + this.state = 1085; this._errHandler.sync(this); _la = this._input.LA(1); - if(_la===HiveSqlParser.T_INDEX) { - this.state = 1086; - this.match(HiveSqlParser.T_INDEX); + if(_la===HiveSql.T_INDEX) { + this.state = 1084; + this.match(HiveSql.T_INDEX); } - this.state = 1089; - this.match(HiveSqlParser.T_IN); - this.state = 1090; + this.state = 1087; + this.match(HiveSql.T_IN); + this.state = 1088; this.ident(); break; case 2: this.enterOuterAlt(localctx, 2); - this.state = 1091; - this.match(HiveSqlParser.T_WITH); - this.state = 1092; - this.match(HiveSqlParser.T_REPLACE); + this.state = 1089; + this.match(HiveSql.T_WITH); + this.state = 1090; + this.match(HiveSql.T_REPLACE); break; case 3: this.enterOuterAlt(localctx, 3); + this.state = 1091; + this.match(HiveSql.T_DISTRIBUTE); + this.state = 1092; + this.match(HiveSql.T_BY); this.state = 1093; - this.match(HiveSqlParser.T_DISTRIBUTE); + this.match(HiveSql.T_HASH); this.state = 1094; - this.match(HiveSqlParser.T_BY); + this.match(HiveSql.T_OPEN_P); this.state = 1095; - this.match(HiveSqlParser.T_HASH); - this.state = 1096; - this.match(HiveSqlParser.T_OPEN_P); - this.state = 1097; this.ident(); - this.state = 1102; + this.state = 1100; this._errHandler.sync(this); _la = this._input.LA(1); - while(_la===HiveSqlParser.T_COMMA) { - this.state = 1098; - this.match(HiveSqlParser.T_COMMA); - this.state = 1099; + while(_la===HiveSql.T_COMMA) { + this.state = 1096; + this.match(HiveSql.T_COMMA); + this.state = 1097; this.ident(); - this.state = 1104; + this.state = 1102; this._errHandler.sync(this); _la = this._input.LA(1); } - this.state = 1105; - this.match(HiveSqlParser.T_CLOSE_P); + this.state = 1103; + this.match(HiveSql.T_CLOSE_P); break; case 4: this.enterOuterAlt(localctx, 4); - this.state = 1108; + this.state = 1106; this._errHandler.sync(this); _la = this._input.LA(1); - if(_la===HiveSqlParser.T_NOT) { - this.state = 1107; - this.match(HiveSqlParser.T_NOT); + if(_la===HiveSql.T_NOT) { + this.state = 1105; + this.match(HiveSql.T_NOT); } - this.state = 1110; - this.match(HiveSqlParser.T_LOGGED); + this.state = 1108; + this.match(HiveSql.T_LOGGED); break; case 5: this.enterOuterAlt(localctx, 5); - this.state = 1111; - this.match(HiveSqlParser.T_COMPRESS); - this.state = 1112; + this.state = 1109; + this.match(HiveSql.T_COMPRESS); + this.state = 1110; _la = this._input.LA(1); - if(!(_la===HiveSqlParser.T_NO || _la===HiveSqlParser.T_YES)) { + if(!(_la===HiveSql.T_NO || _la===HiveSql.T_YES)) { this._errHandler.recoverInline(this); } else { @@ -10933,22 +10973,22 @@ HiveSqlParser.prototype.create_table_options_db2_item = function() { case 6: this.enterOuterAlt(localctx, 6); - this.state = 1113; - this.match(HiveSqlParser.T_DEFINITION); - this.state = 1114; - this.match(HiveSqlParser.T_ONLY); + this.state = 1111; + this.match(HiveSql.T_DEFINITION); + this.state = 1112; + this.match(HiveSql.T_ONLY); break; case 7: this.enterOuterAlt(localctx, 7); + this.state = 1113; + this.match(HiveSql.T_WITH); + this.state = 1114; + this.match(HiveSql.T_RESTRICT); this.state = 1115; - this.match(HiveSqlParser.T_WITH); + this.match(HiveSql.T_ON); this.state = 1116; - this.match(HiveSqlParser.T_RESTRICT); - this.state = 1117; - this.match(HiveSqlParser.T_ON); - this.state = 1118; - this.match(HiveSqlParser.T_DROP); + this.match(HiveSql.T_DROP); break; } @@ -10976,7 +11016,7 @@ function Create_table_options_td_itemContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_create_table_options_td_item; + this.ruleIndex = HiveSql.RULE_create_table_options_td_item; return this; } @@ -10984,15 +11024,15 @@ Create_table_options_td_itemContext.prototype = Object.create(antlr4.ParserRuleC Create_table_options_td_itemContext.prototype.constructor = Create_table_options_td_itemContext; Create_table_options_td_itemContext.prototype.T_PRIMARY = function() { - return this.getToken(HiveSqlParser.T_PRIMARY, 0); + return this.getToken(HiveSql.T_PRIMARY, 0); }; Create_table_options_td_itemContext.prototype.T_INDEX = function() { - return this.getToken(HiveSqlParser.T_INDEX, 0); + return this.getToken(HiveSql.T_INDEX, 0); }; Create_table_options_td_itemContext.prototype.T_OPEN_P = function() { - return this.getToken(HiveSqlParser.T_OPEN_P, 0); + return this.getToken(HiveSql.T_OPEN_P, 0); }; Create_table_options_td_itemContext.prototype.ident = function(i) { @@ -11007,11 +11047,11 @@ Create_table_options_td_itemContext.prototype.ident = function(i) { }; Create_table_options_td_itemContext.prototype.T_CLOSE_P = function() { - return this.getToken(HiveSqlParser.T_CLOSE_P, 0); + return this.getToken(HiveSql.T_CLOSE_P, 0); }; Create_table_options_td_itemContext.prototype.T_UNIQUE = function() { - return this.getToken(HiveSqlParser.T_UNIQUE, 0); + return this.getToken(HiveSql.T_UNIQUE, 0); }; Create_table_options_td_itemContext.prototype.T_COMMA = function(i) { @@ -11019,19 +11059,19 @@ Create_table_options_td_itemContext.prototype.T_COMMA = function(i) { i = null; } if(i===null) { - return this.getTokens(HiveSqlParser.T_COMMA); + return this.getTokens(HiveSql.T_COMMA); } else { - return this.getToken(HiveSqlParser.T_COMMA, i); + return this.getToken(HiveSql.T_COMMA, i); } }; Create_table_options_td_itemContext.prototype.T_WITH = function() { - return this.getToken(HiveSqlParser.T_WITH, 0); + return this.getToken(HiveSql.T_WITH, 0); }; Create_table_options_td_itemContext.prototype.T_DATA = function() { - return this.getToken(HiveSqlParser.T_DATA, 0); + return this.getToken(HiveSql.T_DATA, 0); }; Create_table_options_td_itemContext.prototype.enterRule = function(listener) { @@ -11057,57 +11097,57 @@ Create_table_options_td_itemContext.prototype.accept = function(visitor) { -HiveSqlParser.Create_table_options_td_itemContext = Create_table_options_td_itemContext; +HiveSql.Create_table_options_td_itemContext = Create_table_options_td_itemContext; -HiveSqlParser.prototype.create_table_options_td_item = function() { +HiveSql.prototype.create_table_options_td_item = function() { var localctx = new Create_table_options_td_itemContext(this, this._ctx, this.state); - this.enterRule(localctx, 98, HiveSqlParser.RULE_create_table_options_td_item); + this.enterRule(localctx, 98, HiveSql.RULE_create_table_options_td_item); var _la = 0; // Token type try { - this.state = 1139; + this.state = 1137; this._errHandler.sync(this); switch(this._input.LA(1)) { - case HiveSqlParser.T_PRIMARY: - case HiveSqlParser.T_UNIQUE: + case HiveSql.T_PRIMARY: + case HiveSql.T_UNIQUE: this.enterOuterAlt(localctx, 1); - this.state = 1122; + this.state = 1120; this._errHandler.sync(this); _la = this._input.LA(1); - if(_la===HiveSqlParser.T_UNIQUE) { - this.state = 1121; - this.match(HiveSqlParser.T_UNIQUE); + if(_la===HiveSql.T_UNIQUE) { + this.state = 1119; + this.match(HiveSql.T_UNIQUE); } + this.state = 1122; + this.match(HiveSql.T_PRIMARY); + this.state = 1123; + this.match(HiveSql.T_INDEX); this.state = 1124; - this.match(HiveSqlParser.T_PRIMARY); + this.match(HiveSql.T_OPEN_P); this.state = 1125; - this.match(HiveSqlParser.T_INDEX); - this.state = 1126; - this.match(HiveSqlParser.T_OPEN_P); - this.state = 1127; this.ident(); - this.state = 1132; + this.state = 1130; this._errHandler.sync(this); _la = this._input.LA(1); - while(_la===HiveSqlParser.T_COMMA) { - this.state = 1128; - this.match(HiveSqlParser.T_COMMA); - this.state = 1129; + while(_la===HiveSql.T_COMMA) { + this.state = 1126; + this.match(HiveSql.T_COMMA); + this.state = 1127; this.ident(); - this.state = 1134; + this.state = 1132; this._errHandler.sync(this); _la = this._input.LA(1); } - this.state = 1135; - this.match(HiveSqlParser.T_CLOSE_P); + this.state = 1133; + this.match(HiveSql.T_CLOSE_P); break; - case HiveSqlParser.T_WITH: + case HiveSql.T_WITH: this.enterOuterAlt(localctx, 2); - this.state = 1137; - this.match(HiveSqlParser.T_WITH); - this.state = 1138; - this.match(HiveSqlParser.T_DATA); + this.state = 1135; + this.match(HiveSql.T_WITH); + this.state = 1136; + this.match(HiveSql.T_DATA); break; default: throw new antlr4.error.NoViableAltException(this); @@ -11136,7 +11176,7 @@ function Create_table_options_hive_itemContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_create_table_options_hive_item; + this.ruleIndex = HiveSql.RULE_create_table_options_hive_item; return this; } @@ -11148,11 +11188,11 @@ Create_table_options_hive_itemContext.prototype.create_table_hive_row_format = f }; Create_table_options_hive_itemContext.prototype.T_STORED = function() { - return this.getToken(HiveSqlParser.T_STORED, 0); + return this.getToken(HiveSql.T_STORED, 0); }; Create_table_options_hive_itemContext.prototype.T_AS = function() { - return this.getToken(HiveSqlParser.T_AS, 0); + return this.getToken(HiveSql.T_AS, 0); }; Create_table_options_hive_itemContext.prototype.ident = function() { @@ -11182,28 +11222,28 @@ Create_table_options_hive_itemContext.prototype.accept = function(visitor) { -HiveSqlParser.Create_table_options_hive_itemContext = Create_table_options_hive_itemContext; +HiveSql.Create_table_options_hive_itemContext = Create_table_options_hive_itemContext; -HiveSqlParser.prototype.create_table_options_hive_item = function() { +HiveSql.prototype.create_table_options_hive_item = function() { var localctx = new Create_table_options_hive_itemContext(this, this._ctx, this.state); - this.enterRule(localctx, 100, HiveSqlParser.RULE_create_table_options_hive_item); + this.enterRule(localctx, 100, HiveSql.RULE_create_table_options_hive_item); try { - this.state = 1145; + this.state = 1143; this._errHandler.sync(this); switch(this._input.LA(1)) { - case HiveSqlParser.T_ROW: + case HiveSql.T_ROW: this.enterOuterAlt(localctx, 1); - this.state = 1141; + this.state = 1139; this.create_table_hive_row_format(); break; - case HiveSqlParser.T_STORED: + case HiveSql.T_STORED: this.enterOuterAlt(localctx, 2); + this.state = 1140; + this.match(HiveSql.T_STORED); + this.state = 1141; + this.match(HiveSql.T_AS); this.state = 1142; - this.match(HiveSqlParser.T_STORED); - this.state = 1143; - this.match(HiveSqlParser.T_AS); - this.state = 1144; this.ident(); break; default: @@ -11233,7 +11273,7 @@ function Create_table_hive_row_formatContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_create_table_hive_row_format; + this.ruleIndex = HiveSql.RULE_create_table_hive_row_format; return this; } @@ -11241,15 +11281,15 @@ Create_table_hive_row_formatContext.prototype = Object.create(antlr4.ParserRuleC Create_table_hive_row_formatContext.prototype.constructor = Create_table_hive_row_formatContext; Create_table_hive_row_formatContext.prototype.T_ROW = function() { - return this.getToken(HiveSqlParser.T_ROW, 0); + return this.getToken(HiveSql.T_ROW, 0); }; Create_table_hive_row_formatContext.prototype.T_FORMAT = function() { - return this.getToken(HiveSqlParser.T_FORMAT, 0); + return this.getToken(HiveSql.T_FORMAT, 0); }; Create_table_hive_row_formatContext.prototype.T_DELIMITED = function() { - return this.getToken(HiveSqlParser.T_DELIMITED, 0); + return this.getToken(HiveSql.T_DELIMITED, 0); }; Create_table_hive_row_formatContext.prototype.create_table_hive_row_format_fields = function(i) { @@ -11286,29 +11326,29 @@ Create_table_hive_row_formatContext.prototype.accept = function(visitor) { -HiveSqlParser.Create_table_hive_row_formatContext = Create_table_hive_row_formatContext; +HiveSql.Create_table_hive_row_formatContext = Create_table_hive_row_formatContext; -HiveSqlParser.prototype.create_table_hive_row_format = function() { +HiveSql.prototype.create_table_hive_row_format = function() { var localctx = new Create_table_hive_row_formatContext(this, this._ctx, this.state); - this.enterRule(localctx, 102, HiveSqlParser.RULE_create_table_hive_row_format); + this.enterRule(localctx, 102, HiveSql.RULE_create_table_hive_row_format); try { this.enterOuterAlt(localctx, 1); + this.state = 1145; + this.match(HiveSql.T_ROW); + this.state = 1146; + this.match(HiveSql.T_FORMAT); this.state = 1147; - this.match(HiveSqlParser.T_ROW); - this.state = 1148; - this.match(HiveSqlParser.T_FORMAT); - this.state = 1149; - this.match(HiveSqlParser.T_DELIMITED); - this.state = 1153; + this.match(HiveSql.T_DELIMITED); + this.state = 1151; this._errHandler.sync(this); var _alt = this._interp.adaptivePredict(this._input,97,this._ctx) while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { if(_alt===1) { - this.state = 1150; + this.state = 1148; this.create_table_hive_row_format_fields(); } - this.state = 1155; + this.state = 1153; this._errHandler.sync(this); _alt = this._interp.adaptivePredict(this._input,97,this._ctx); } @@ -11337,7 +11377,7 @@ function Create_table_hive_row_format_fieldsContext(parser, parent, invokingStat } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_create_table_hive_row_format_fields; + this.ruleIndex = HiveSql.RULE_create_table_hive_row_format_fields; return this; } @@ -11345,11 +11385,11 @@ Create_table_hive_row_format_fieldsContext.prototype = Object.create(antlr4.Pars Create_table_hive_row_format_fieldsContext.prototype.constructor = Create_table_hive_row_format_fieldsContext; Create_table_hive_row_format_fieldsContext.prototype.T_FIELDS = function() { - return this.getToken(HiveSqlParser.T_FIELDS, 0); + return this.getToken(HiveSql.T_FIELDS, 0); }; Create_table_hive_row_format_fieldsContext.prototype.T_TERMINATED = function() { - return this.getToken(HiveSqlParser.T_TERMINATED, 0); + return this.getToken(HiveSql.T_TERMINATED, 0); }; Create_table_hive_row_format_fieldsContext.prototype.T_BY = function(i) { @@ -11357,9 +11397,9 @@ Create_table_hive_row_format_fieldsContext.prototype.T_BY = function(i) { i = null; } if(i===null) { - return this.getTokens(HiveSqlParser.T_BY); + return this.getTokens(HiveSql.T_BY); } else { - return this.getToken(HiveSqlParser.T_BY, i); + return this.getToken(HiveSql.T_BY, i); } }; @@ -11376,39 +11416,39 @@ Create_table_hive_row_format_fieldsContext.prototype.expr = function(i) { }; Create_table_hive_row_format_fieldsContext.prototype.T_ESCAPED = function() { - return this.getToken(HiveSqlParser.T_ESCAPED, 0); + return this.getToken(HiveSql.T_ESCAPED, 0); }; Create_table_hive_row_format_fieldsContext.prototype.T_COLLECTION = function() { - return this.getToken(HiveSqlParser.T_COLLECTION, 0); + return this.getToken(HiveSql.T_COLLECTION, 0); }; Create_table_hive_row_format_fieldsContext.prototype.T_ITEMS = function() { - return this.getToken(HiveSqlParser.T_ITEMS, 0); + return this.getToken(HiveSql.T_ITEMS, 0); }; Create_table_hive_row_format_fieldsContext.prototype.T_MAP = function() { - return this.getToken(HiveSqlParser.T_MAP, 0); + return this.getToken(HiveSql.T_MAP, 0); }; Create_table_hive_row_format_fieldsContext.prototype.T_KEYS = function() { - return this.getToken(HiveSqlParser.T_KEYS, 0); + return this.getToken(HiveSql.T_KEYS, 0); }; Create_table_hive_row_format_fieldsContext.prototype.T_LINES = function() { - return this.getToken(HiveSqlParser.T_LINES, 0); + return this.getToken(HiveSql.T_LINES, 0); }; Create_table_hive_row_format_fieldsContext.prototype.T_NULL = function() { - return this.getToken(HiveSqlParser.T_NULL, 0); + return this.getToken(HiveSql.T_NULL, 0); }; Create_table_hive_row_format_fieldsContext.prototype.T_DEFINED = function() { - return this.getToken(HiveSqlParser.T_DEFINED, 0); + return this.getToken(HiveSql.T_DEFINED, 0); }; Create_table_hive_row_format_fieldsContext.prototype.T_AS = function() { - return this.getToken(HiveSqlParser.T_AS, 0); + return this.getToken(HiveSql.T_AS, 0); }; Create_table_hive_row_format_fieldsContext.prototype.enterRule = function(listener) { @@ -11434,85 +11474,85 @@ Create_table_hive_row_format_fieldsContext.prototype.accept = function(visitor) -HiveSqlParser.Create_table_hive_row_format_fieldsContext = Create_table_hive_row_format_fieldsContext; +HiveSql.Create_table_hive_row_format_fieldsContext = Create_table_hive_row_format_fieldsContext; -HiveSqlParser.prototype.create_table_hive_row_format_fields = function() { +HiveSql.prototype.create_table_hive_row_format_fields = function() { var localctx = new Create_table_hive_row_format_fieldsContext(this, this._ctx, this.state); - this.enterRule(localctx, 104, HiveSqlParser.RULE_create_table_hive_row_format_fields); + this.enterRule(localctx, 104, HiveSql.RULE_create_table_hive_row_format_fields); try { - this.state = 1183; + this.state = 1181; this._errHandler.sync(this); switch(this._input.LA(1)) { - case HiveSqlParser.T_FIELDS: + case HiveSql.T_FIELDS: this.enterOuterAlt(localctx, 1); + this.state = 1154; + this.match(HiveSql.T_FIELDS); + this.state = 1155; + this.match(HiveSql.T_TERMINATED); this.state = 1156; - this.match(HiveSqlParser.T_FIELDS); + this.match(HiveSql.T_BY); this.state = 1157; - this.match(HiveSqlParser.T_TERMINATED); - this.state = 1158; - this.match(HiveSqlParser.T_BY); - this.state = 1159; this.expr(0); - this.state = 1163; + this.state = 1161; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,98,this._ctx); if(la_===1) { + this.state = 1158; + this.match(HiveSql.T_ESCAPED); + this.state = 1159; + this.match(HiveSql.T_BY); this.state = 1160; - this.match(HiveSqlParser.T_ESCAPED); - this.state = 1161; - this.match(HiveSqlParser.T_BY); - this.state = 1162; this.expr(0); } break; - case HiveSqlParser.T_COLLECTION: + case HiveSql.T_COLLECTION: this.enterOuterAlt(localctx, 2); + this.state = 1163; + this.match(HiveSql.T_COLLECTION); + this.state = 1164; + this.match(HiveSql.T_ITEMS); this.state = 1165; - this.match(HiveSqlParser.T_COLLECTION); + this.match(HiveSql.T_TERMINATED); this.state = 1166; - this.match(HiveSqlParser.T_ITEMS); + this.match(HiveSql.T_BY); this.state = 1167; - this.match(HiveSqlParser.T_TERMINATED); - this.state = 1168; - this.match(HiveSqlParser.T_BY); - this.state = 1169; this.expr(0); break; - case HiveSqlParser.T_MAP: + case HiveSql.T_MAP: this.enterOuterAlt(localctx, 3); + this.state = 1168; + this.match(HiveSql.T_MAP); + this.state = 1169; + this.match(HiveSql.T_KEYS); this.state = 1170; - this.match(HiveSqlParser.T_MAP); + this.match(HiveSql.T_TERMINATED); this.state = 1171; - this.match(HiveSqlParser.T_KEYS); + this.match(HiveSql.T_BY); this.state = 1172; - this.match(HiveSqlParser.T_TERMINATED); - this.state = 1173; - this.match(HiveSqlParser.T_BY); - this.state = 1174; this.expr(0); break; - case HiveSqlParser.T_LINES: + case HiveSql.T_LINES: this.enterOuterAlt(localctx, 4); + this.state = 1173; + this.match(HiveSql.T_LINES); + this.state = 1174; + this.match(HiveSql.T_TERMINATED); this.state = 1175; - this.match(HiveSqlParser.T_LINES); + this.match(HiveSql.T_BY); this.state = 1176; - this.match(HiveSqlParser.T_TERMINATED); - this.state = 1177; - this.match(HiveSqlParser.T_BY); - this.state = 1178; this.expr(0); break; - case HiveSqlParser.T_NULL: + case HiveSql.T_NULL: this.enterOuterAlt(localctx, 5); + this.state = 1177; + this.match(HiveSql.T_NULL); + this.state = 1178; + this.match(HiveSql.T_DEFINED); this.state = 1179; - this.match(HiveSqlParser.T_NULL); + this.match(HiveSql.T_AS); this.state = 1180; - this.match(HiveSqlParser.T_DEFINED); - this.state = 1181; - this.match(HiveSqlParser.T_AS); - this.state = 1182; this.expr(0); break; default: @@ -11542,7 +11582,7 @@ function Create_table_options_mssql_itemContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_create_table_options_mssql_item; + this.ruleIndex = HiveSql.RULE_create_table_options_mssql_item; return this; } @@ -11550,7 +11590,7 @@ Create_table_options_mssql_itemContext.prototype = Object.create(antlr4.ParserRu Create_table_options_mssql_itemContext.prototype.constructor = Create_table_options_mssql_itemContext; Create_table_options_mssql_itemContext.prototype.T_ON = function() { - return this.getToken(HiveSqlParser.T_ON, 0); + return this.getToken(HiveSql.T_ON, 0); }; Create_table_options_mssql_itemContext.prototype.ident = function() { @@ -11558,7 +11598,7 @@ Create_table_options_mssql_itemContext.prototype.ident = function() { }; Create_table_options_mssql_itemContext.prototype.T_TEXTIMAGE_ON = function() { - return this.getToken(HiveSqlParser.T_TEXTIMAGE_ON, 0); + return this.getToken(HiveSql.T_TEXTIMAGE_ON, 0); }; Create_table_options_mssql_itemContext.prototype.enterRule = function(listener) { @@ -11584,28 +11624,28 @@ Create_table_options_mssql_itemContext.prototype.accept = function(visitor) { -HiveSqlParser.Create_table_options_mssql_itemContext = Create_table_options_mssql_itemContext; +HiveSql.Create_table_options_mssql_itemContext = Create_table_options_mssql_itemContext; -HiveSqlParser.prototype.create_table_options_mssql_item = function() { +HiveSql.prototype.create_table_options_mssql_item = function() { var localctx = new Create_table_options_mssql_itemContext(this, this._ctx, this.state); - this.enterRule(localctx, 106, HiveSqlParser.RULE_create_table_options_mssql_item); + this.enterRule(localctx, 106, HiveSql.RULE_create_table_options_mssql_item); try { - this.state = 1189; + this.state = 1187; this._errHandler.sync(this); switch(this._input.LA(1)) { - case HiveSqlParser.T_ON: + case HiveSql.T_ON: this.enterOuterAlt(localctx, 1); - this.state = 1185; - this.match(HiveSqlParser.T_ON); - this.state = 1186; + this.state = 1183; + this.match(HiveSql.T_ON); + this.state = 1184; this.ident(); break; - case HiveSqlParser.T_TEXTIMAGE_ON: + case HiveSql.T_TEXTIMAGE_ON: this.enterOuterAlt(localctx, 2); - this.state = 1187; - this.match(HiveSqlParser.T_TEXTIMAGE_ON); - this.state = 1188; + this.state = 1185; + this.match(HiveSql.T_TEXTIMAGE_ON); + this.state = 1186; this.ident(); break; default: @@ -11635,7 +11675,7 @@ function Create_table_options_mysql_itemContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_create_table_options_mysql_item; + this.ruleIndex = HiveSql.RULE_create_table_options_mysql_item; return this; } @@ -11643,7 +11683,7 @@ Create_table_options_mysql_itemContext.prototype = Object.create(antlr4.ParserRu Create_table_options_mysql_itemContext.prototype.constructor = Create_table_options_mysql_itemContext; Create_table_options_mysql_itemContext.prototype.T_AUTO_INCREMENT = function() { - return this.getToken(HiveSqlParser.T_AUTO_INCREMENT, 0); + return this.getToken(HiveSql.T_AUTO_INCREMENT, 0); }; Create_table_options_mysql_itemContext.prototype.expr = function() { @@ -11651,31 +11691,31 @@ Create_table_options_mysql_itemContext.prototype.expr = function() { }; Create_table_options_mysql_itemContext.prototype.T_EQUAL = function() { - return this.getToken(HiveSqlParser.T_EQUAL, 0); + return this.getToken(HiveSql.T_EQUAL, 0); }; Create_table_options_mysql_itemContext.prototype.T_COMMENT = function() { - return this.getToken(HiveSqlParser.T_COMMENT, 0); + return this.getToken(HiveSql.T_COMMENT, 0); }; Create_table_options_mysql_itemContext.prototype.T_CHARACTER = function() { - return this.getToken(HiveSqlParser.T_CHARACTER, 0); + return this.getToken(HiveSql.T_CHARACTER, 0); }; Create_table_options_mysql_itemContext.prototype.T_SET = function() { - return this.getToken(HiveSqlParser.T_SET, 0); + return this.getToken(HiveSql.T_SET, 0); }; Create_table_options_mysql_itemContext.prototype.T_CHARSET = function() { - return this.getToken(HiveSqlParser.T_CHARSET, 0); + return this.getToken(HiveSql.T_CHARSET, 0); }; Create_table_options_mysql_itemContext.prototype.T_DEFAULT = function() { - return this.getToken(HiveSqlParser.T_DEFAULT, 0); + return this.getToken(HiveSql.T_DEFAULT, 0); }; Create_table_options_mysql_itemContext.prototype.T_ENGINE = function() { - return this.getToken(HiveSqlParser.T_ENGINE, 0); + return this.getToken(HiveSql.T_ENGINE, 0); }; Create_table_options_mysql_itemContext.prototype.enterRule = function(listener) { @@ -11701,99 +11741,99 @@ Create_table_options_mysql_itemContext.prototype.accept = function(visitor) { -HiveSqlParser.Create_table_options_mysql_itemContext = Create_table_options_mysql_itemContext; +HiveSql.Create_table_options_mysql_itemContext = Create_table_options_mysql_itemContext; -HiveSqlParser.prototype.create_table_options_mysql_item = function() { +HiveSql.prototype.create_table_options_mysql_item = function() { var localctx = new Create_table_options_mysql_itemContext(this, this._ctx, this.state); - this.enterRule(localctx, 108, HiveSqlParser.RULE_create_table_options_mysql_item); + this.enterRule(localctx, 108, HiveSql.RULE_create_table_options_mysql_item); var _la = 0; // Token type try { - this.state = 1218; + this.state = 1216; this._errHandler.sync(this); switch(this._input.LA(1)) { - case HiveSqlParser.T_AUTO_INCREMENT: + case HiveSql.T_AUTO_INCREMENT: this.enterOuterAlt(localctx, 1); + this.state = 1189; + this.match(HiveSql.T_AUTO_INCREMENT); this.state = 1191; - this.match(HiveSqlParser.T_AUTO_INCREMENT); + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===HiveSql.T_EQUAL) { + this.state = 1190; + this.match(HiveSql.T_EQUAL); + } + this.state = 1193; - this._errHandler.sync(this); - _la = this._input.LA(1); - if(_la===HiveSqlParser.T_EQUAL) { - this.state = 1192; - this.match(HiveSqlParser.T_EQUAL); - } - - this.state = 1195; this.expr(0); break; - case HiveSqlParser.T_COMMENT: + case HiveSql.T_COMMENT: this.enterOuterAlt(localctx, 2); + this.state = 1194; + this.match(HiveSql.T_COMMENT); this.state = 1196; - this.match(HiveSqlParser.T_COMMENT); - this.state = 1198; this._errHandler.sync(this); _la = this._input.LA(1); - if(_la===HiveSqlParser.T_EQUAL) { - this.state = 1197; - this.match(HiveSqlParser.T_EQUAL); + if(_la===HiveSql.T_EQUAL) { + this.state = 1195; + this.match(HiveSql.T_EQUAL); } - this.state = 1200; + this.state = 1198; this.expr(0); break; - case HiveSqlParser.T_DEFAULT: - case HiveSqlParser.T_CHARACTER: - case HiveSqlParser.T_CHARSET: + case HiveSql.T_CHARACTER: + case HiveSql.T_CHARSET: + case HiveSql.T_DEFAULT: this.enterOuterAlt(localctx, 3); - this.state = 1202; + this.state = 1200; this._errHandler.sync(this); _la = this._input.LA(1); - if(_la===HiveSqlParser.T_DEFAULT) { - this.state = 1201; - this.match(HiveSqlParser.T_DEFAULT); + if(_la===HiveSql.T_DEFAULT) { + this.state = 1199; + this.match(HiveSql.T_DEFAULT); } - this.state = 1207; + this.state = 1205; this._errHandler.sync(this); switch(this._input.LA(1)) { - case HiveSqlParser.T_CHARACTER: - this.state = 1204; - this.match(HiveSqlParser.T_CHARACTER); - this.state = 1205; - this.match(HiveSqlParser.T_SET); + case HiveSql.T_CHARACTER: + this.state = 1202; + this.match(HiveSql.T_CHARACTER); + this.state = 1203; + this.match(HiveSql.T_SET); break; - case HiveSqlParser.T_CHARSET: - this.state = 1206; - this.match(HiveSqlParser.T_CHARSET); + case HiveSql.T_CHARSET: + this.state = 1204; + this.match(HiveSql.T_CHARSET); break; default: throw new antlr4.error.NoViableAltException(this); } - this.state = 1210; + this.state = 1208; this._errHandler.sync(this); _la = this._input.LA(1); - if(_la===HiveSqlParser.T_EQUAL) { - this.state = 1209; - this.match(HiveSqlParser.T_EQUAL); + if(_la===HiveSql.T_EQUAL) { + this.state = 1207; + this.match(HiveSql.T_EQUAL); } - this.state = 1212; + this.state = 1210; this.expr(0); break; - case HiveSqlParser.T_ENGINE: + case HiveSql.T_ENGINE: this.enterOuterAlt(localctx, 4); + this.state = 1211; + this.match(HiveSql.T_ENGINE); this.state = 1213; - this.match(HiveSqlParser.T_ENGINE); - this.state = 1215; this._errHandler.sync(this); _la = this._input.LA(1); - if(_la===HiveSqlParser.T_EQUAL) { - this.state = 1214; - this.match(HiveSqlParser.T_EQUAL); + if(_la===HiveSql.T_EQUAL) { + this.state = 1212; + this.match(HiveSql.T_EQUAL); } - this.state = 1217; + this.state = 1215; this.expr(0); break; default: @@ -11823,7 +11863,7 @@ function Alter_table_stmtContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_alter_table_stmt; + this.ruleIndex = HiveSql.RULE_alter_table_stmt; return this; } @@ -11831,11 +11871,11 @@ Alter_table_stmtContext.prototype = Object.create(antlr4.ParserRuleContext.proto Alter_table_stmtContext.prototype.constructor = Alter_table_stmtContext; Alter_table_stmtContext.prototype.T_ALTER = function() { - return this.getToken(HiveSqlParser.T_ALTER, 0); + return this.getToken(HiveSql.T_ALTER, 0); }; Alter_table_stmtContext.prototype.T_TABLE = function() { - return this.getToken(HiveSqlParser.T_TABLE, 0); + return this.getToken(HiveSql.T_TABLE, 0); }; Alter_table_stmtContext.prototype.table_name = function() { @@ -11869,21 +11909,21 @@ Alter_table_stmtContext.prototype.accept = function(visitor) { -HiveSqlParser.Alter_table_stmtContext = Alter_table_stmtContext; +HiveSql.Alter_table_stmtContext = Alter_table_stmtContext; -HiveSqlParser.prototype.alter_table_stmt = function() { +HiveSql.prototype.alter_table_stmt = function() { var localctx = new Alter_table_stmtContext(this, this._ctx, this.state); - this.enterRule(localctx, 110, HiveSqlParser.RULE_alter_table_stmt); + this.enterRule(localctx, 110, HiveSql.RULE_alter_table_stmt); try { this.enterOuterAlt(localctx, 1); + this.state = 1218; + this.match(HiveSql.T_ALTER); + this.state = 1219; + this.match(HiveSql.T_TABLE); this.state = 1220; - this.match(HiveSqlParser.T_ALTER); - this.state = 1221; - this.match(HiveSqlParser.T_TABLE); - this.state = 1222; this.table_name(); - this.state = 1223; + this.state = 1221; this.alter_table_item(); } catch (re) { if(re instanceof antlr4.error.RecognitionException) { @@ -11909,7 +11949,7 @@ function Alter_table_itemContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_alter_table_item; + this.ruleIndex = HiveSql.RULE_alter_table_item; return this; } @@ -11943,15 +11983,15 @@ Alter_table_itemContext.prototype.accept = function(visitor) { -HiveSqlParser.Alter_table_itemContext = Alter_table_itemContext; +HiveSql.Alter_table_itemContext = Alter_table_itemContext; -HiveSqlParser.prototype.alter_table_item = function() { +HiveSql.prototype.alter_table_item = function() { var localctx = new Alter_table_itemContext(this, this._ctx, this.state); - this.enterRule(localctx, 112, HiveSqlParser.RULE_alter_table_item); + this.enterRule(localctx, 112, HiveSql.RULE_alter_table_item); try { this.enterOuterAlt(localctx, 1); - this.state = 1225; + this.state = 1223; this.alter_table_add_constraint(); } catch (re) { if(re instanceof antlr4.error.RecognitionException) { @@ -11977,7 +12017,7 @@ function Alter_table_add_constraintContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_alter_table_add_constraint; + this.ruleIndex = HiveSql.RULE_alter_table_add_constraint; return this; } @@ -11985,7 +12025,7 @@ Alter_table_add_constraintContext.prototype = Object.create(antlr4.ParserRuleCon Alter_table_add_constraintContext.prototype.constructor = Alter_table_add_constraintContext; Alter_table_add_constraintContext.prototype.T_ADD2 = function() { - return this.getToken(HiveSqlParser.T_ADD2, 0); + return this.getToken(HiveSql.T_ADD2, 0); }; Alter_table_add_constraintContext.prototype.alter_table_add_constraint_item = function() { @@ -11993,7 +12033,7 @@ Alter_table_add_constraintContext.prototype.alter_table_add_constraint_item = fu }; Alter_table_add_constraintContext.prototype.T_CONSTRAINT = function() { - return this.getToken(HiveSqlParser.T_CONSTRAINT, 0); + return this.getToken(HiveSql.T_CONSTRAINT, 0); }; Alter_table_add_constraintContext.prototype.ident = function() { @@ -12023,28 +12063,28 @@ Alter_table_add_constraintContext.prototype.accept = function(visitor) { -HiveSqlParser.Alter_table_add_constraintContext = Alter_table_add_constraintContext; +HiveSql.Alter_table_add_constraintContext = Alter_table_add_constraintContext; -HiveSqlParser.prototype.alter_table_add_constraint = function() { +HiveSql.prototype.alter_table_add_constraint = function() { var localctx = new Alter_table_add_constraintContext(this, this._ctx, this.state); - this.enterRule(localctx, 114, HiveSqlParser.RULE_alter_table_add_constraint); + this.enterRule(localctx, 114, HiveSql.RULE_alter_table_add_constraint); var _la = 0; // Token type try { this.enterOuterAlt(localctx, 1); - this.state = 1227; - this.match(HiveSqlParser.T_ADD2); - this.state = 1230; + this.state = 1225; + this.match(HiveSql.T_ADD2); + this.state = 1228; this._errHandler.sync(this); _la = this._input.LA(1); - if(_la===HiveSqlParser.T_CONSTRAINT) { - this.state = 1228; - this.match(HiveSqlParser.T_CONSTRAINT); - this.state = 1229; + if(_la===HiveSql.T_CONSTRAINT) { + this.state = 1226; + this.match(HiveSql.T_CONSTRAINT); + this.state = 1227; this.ident(); } - this.state = 1232; + this.state = 1230; this.alter_table_add_constraint_item(); } catch (re) { if(re instanceof antlr4.error.RecognitionException) { @@ -12070,7 +12110,7 @@ function Alter_table_add_constraint_itemContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_alter_table_add_constraint_item; + this.ruleIndex = HiveSql.RULE_alter_table_add_constraint_item; return this; } @@ -12078,11 +12118,11 @@ Alter_table_add_constraint_itemContext.prototype = Object.create(antlr4.ParserRu Alter_table_add_constraint_itemContext.prototype.constructor = Alter_table_add_constraint_itemContext; Alter_table_add_constraint_itemContext.prototype.T_PRIMARY = function() { - return this.getToken(HiveSqlParser.T_PRIMARY, 0); + return this.getToken(HiveSql.T_PRIMARY, 0); }; Alter_table_add_constraint_itemContext.prototype.T_KEY = function() { - return this.getToken(HiveSqlParser.T_KEY, 0); + return this.getToken(HiveSql.T_KEY, 0); }; Alter_table_add_constraint_itemContext.prototype.T_OPEN_P = function(i) { @@ -12090,9 +12130,9 @@ Alter_table_add_constraint_itemContext.prototype.T_OPEN_P = function(i) { i = null; } if(i===null) { - return this.getTokens(HiveSqlParser.T_OPEN_P); + return this.getTokens(HiveSql.T_OPEN_P); } else { - return this.getToken(HiveSqlParser.T_OPEN_P, i); + return this.getToken(HiveSql.T_OPEN_P, i); } }; @@ -12113,15 +12153,15 @@ Alter_table_add_constraint_itemContext.prototype.T_CLOSE_P = function(i) { i = null; } if(i===null) { - return this.getTokens(HiveSqlParser.T_CLOSE_P); + return this.getTokens(HiveSql.T_CLOSE_P); } else { - return this.getToken(HiveSqlParser.T_CLOSE_P, i); + return this.getToken(HiveSql.T_CLOSE_P, i); } }; Alter_table_add_constraint_itemContext.prototype.T_CLUSTERED = function() { - return this.getToken(HiveSqlParser.T_CLUSTERED, 0); + return this.getToken(HiveSql.T_CLUSTERED, 0); }; Alter_table_add_constraint_itemContext.prototype.T_COMMA = function(i) { @@ -12129,15 +12169,15 @@ Alter_table_add_constraint_itemContext.prototype.T_COMMA = function(i) { i = null; } if(i===null) { - return this.getTokens(HiveSqlParser.T_COMMA); + return this.getTokens(HiveSql.T_COMMA); } else { - return this.getToken(HiveSqlParser.T_COMMA, i); + return this.getToken(HiveSql.T_COMMA, i); } }; Alter_table_add_constraint_itemContext.prototype.T_ENABLE = function() { - return this.getToken(HiveSqlParser.T_ENABLE, 0); + return this.getToken(HiveSql.T_ENABLE, 0); }; Alter_table_add_constraint_itemContext.prototype.index_storage_clause = function() { @@ -12149,9 +12189,9 @@ Alter_table_add_constraint_itemContext.prototype.T_ASC = function(i) { i = null; } if(i===null) { - return this.getTokens(HiveSqlParser.T_ASC); + return this.getTokens(HiveSql.T_ASC); } else { - return this.getToken(HiveSqlParser.T_ASC, i); + return this.getToken(HiveSql.T_ASC, i); } }; @@ -12161,19 +12201,19 @@ Alter_table_add_constraint_itemContext.prototype.T_DESC = function(i) { i = null; } if(i===null) { - return this.getTokens(HiveSqlParser.T_DESC); + return this.getTokens(HiveSql.T_DESC); } else { - return this.getToken(HiveSqlParser.T_DESC, i); + return this.getToken(HiveSql.T_DESC, i); } }; Alter_table_add_constraint_itemContext.prototype.T_FOREIGN = function() { - return this.getToken(HiveSqlParser.T_FOREIGN, 0); + return this.getToken(HiveSql.T_FOREIGN, 0); }; Alter_table_add_constraint_itemContext.prototype.T_REFERENCES = function() { - return this.getToken(HiveSqlParser.T_REFERENCES, 0); + return this.getToken(HiveSql.T_REFERENCES, 0); }; Alter_table_add_constraint_itemContext.prototype.table_name = function() { @@ -12192,7 +12232,7 @@ Alter_table_add_constraint_itemContext.prototype.create_table_fk_action = functi }; Alter_table_add_constraint_itemContext.prototype.T_DEFAULT = function() { - return this.getToken(HiveSqlParser.T_DEFAULT, 0); + return this.getToken(HiveSql.T_DEFAULT, 0); }; Alter_table_add_constraint_itemContext.prototype.expr = function() { @@ -12200,7 +12240,7 @@ Alter_table_add_constraint_itemContext.prototype.expr = function() { }; Alter_table_add_constraint_itemContext.prototype.T_FOR = function() { - return this.getToken(HiveSqlParser.T_FOR, 0); + return this.getToken(HiveSql.T_FOR, 0); }; Alter_table_add_constraint_itemContext.prototype.enterRule = function(listener) { @@ -12226,42 +12266,42 @@ Alter_table_add_constraint_itemContext.prototype.accept = function(visitor) { -HiveSqlParser.Alter_table_add_constraint_itemContext = Alter_table_add_constraint_itemContext; +HiveSql.Alter_table_add_constraint_itemContext = Alter_table_add_constraint_itemContext; -HiveSqlParser.prototype.alter_table_add_constraint_item = function() { +HiveSql.prototype.alter_table_add_constraint_item = function() { var localctx = new Alter_table_add_constraint_itemContext(this, this._ctx, this.state); - this.enterRule(localctx, 116, HiveSqlParser.RULE_alter_table_add_constraint_item); + this.enterRule(localctx, 116, HiveSql.RULE_alter_table_add_constraint_item); var _la = 0; // Token type try { - this.state = 1296; + this.state = 1294; this._errHandler.sync(this); switch(this._input.LA(1)) { - case HiveSqlParser.T_PRIMARY: + case HiveSql.T_PRIMARY: this.enterOuterAlt(localctx, 1); - this.state = 1234; - this.match(HiveSqlParser.T_PRIMARY); + this.state = 1232; + this.match(HiveSql.T_PRIMARY); + this.state = 1233; + this.match(HiveSql.T_KEY); this.state = 1235; - this.match(HiveSqlParser.T_KEY); - this.state = 1237; this._errHandler.sync(this); _la = this._input.LA(1); - if(_la===HiveSqlParser.T_CLUSTERED) { - this.state = 1236; - this.match(HiveSqlParser.T_CLUSTERED); + if(_la===HiveSql.T_CLUSTERED) { + this.state = 1234; + this.match(HiveSql.T_CLUSTERED); } - this.state = 1239; - this.match(HiveSqlParser.T_OPEN_P); - this.state = 1240; + this.state = 1237; + this.match(HiveSql.T_OPEN_P); + this.state = 1238; this.ident(); - this.state = 1242; + this.state = 1240; this._errHandler.sync(this); _la = this._input.LA(1); - if(_la===HiveSqlParser.T_ASC || _la===HiveSqlParser.T_DESC) { - this.state = 1241; + if(_la===HiveSql.T_ASC || _la===HiveSql.T_DESC) { + this.state = 1239; _la = this._input.LA(1); - if(!(_la===HiveSqlParser.T_ASC || _la===HiveSqlParser.T_DESC)) { + if(!(_la===HiveSql.T_ASC || _la===HiveSql.T_DESC)) { this._errHandler.recoverInline(this); } else { @@ -12270,21 +12310,21 @@ HiveSqlParser.prototype.alter_table_add_constraint_item = function() { } } - this.state = 1251; + this.state = 1249; this._errHandler.sync(this); _la = this._input.LA(1); - while(_la===HiveSqlParser.T_COMMA) { - this.state = 1244; - this.match(HiveSqlParser.T_COMMA); - this.state = 1245; + while(_la===HiveSql.T_COMMA) { + this.state = 1242; + this.match(HiveSql.T_COMMA); + this.state = 1243; this.ident(); - this.state = 1247; + this.state = 1245; this._errHandler.sync(this); _la = this._input.LA(1); - if(_la===HiveSqlParser.T_ASC || _la===HiveSqlParser.T_DESC) { - this.state = 1246; + if(_la===HiveSql.T_ASC || _la===HiveSql.T_DESC) { + this.state = 1244; _la = this._input.LA(1); - if(!(_la===HiveSqlParser.T_ASC || _la===HiveSqlParser.T_DESC)) { + if(!(_la===HiveSql.T_ASC || _la===HiveSql.T_DESC)) { this._errHandler.recoverInline(this); } else { @@ -12293,98 +12333,98 @@ HiveSqlParser.prototype.alter_table_add_constraint_item = function() { } } - this.state = 1253; + this.state = 1251; this._errHandler.sync(this); _la = this._input.LA(1); } + this.state = 1252; + this.match(HiveSql.T_CLOSE_P); this.state = 1254; - this.match(HiveSqlParser.T_CLOSE_P); - this.state = 1256; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,113,this._ctx); if(la_===1) { - this.state = 1255; - this.match(HiveSqlParser.T_ENABLE); + this.state = 1253; + this.match(HiveSql.T_ENABLE); } - this.state = 1259; + this.state = 1257; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,114,this._ctx); if(la_===1) { - this.state = 1258; + this.state = 1256; this.index_storage_clause(); } break; - case HiveSqlParser.T_FOREIGN: + case HiveSql.T_FOREIGN: this.enterOuterAlt(localctx, 2); + this.state = 1259; + this.match(HiveSql.T_FOREIGN); + this.state = 1260; + this.match(HiveSql.T_KEY); this.state = 1261; - this.match(HiveSqlParser.T_FOREIGN); + this.match(HiveSql.T_OPEN_P); this.state = 1262; - this.match(HiveSqlParser.T_KEY); - this.state = 1263; - this.match(HiveSqlParser.T_OPEN_P); - this.state = 1264; this.ident(); - this.state = 1269; + this.state = 1267; this._errHandler.sync(this); _la = this._input.LA(1); - while(_la===HiveSqlParser.T_COMMA) { - this.state = 1265; - this.match(HiveSqlParser.T_COMMA); - this.state = 1266; + while(_la===HiveSql.T_COMMA) { + this.state = 1263; + this.match(HiveSql.T_COMMA); + this.state = 1264; this.ident(); - this.state = 1271; + this.state = 1269; this._errHandler.sync(this); _la = this._input.LA(1); } + this.state = 1270; + this.match(HiveSql.T_CLOSE_P); + this.state = 1271; + this.match(HiveSql.T_REFERENCES); this.state = 1272; - this.match(HiveSqlParser.T_CLOSE_P); - this.state = 1273; - this.match(HiveSqlParser.T_REFERENCES); - this.state = 1274; this.table_name(); - this.state = 1275; - this.match(HiveSqlParser.T_OPEN_P); - this.state = 1276; + this.state = 1273; + this.match(HiveSql.T_OPEN_P); + this.state = 1274; this.ident(); - this.state = 1281; + this.state = 1279; this._errHandler.sync(this); _la = this._input.LA(1); - while(_la===HiveSqlParser.T_COMMA) { - this.state = 1277; - this.match(HiveSqlParser.T_COMMA); - this.state = 1278; + while(_la===HiveSql.T_COMMA) { + this.state = 1275; + this.match(HiveSql.T_COMMA); + this.state = 1276; this.ident(); - this.state = 1283; + this.state = 1281; this._errHandler.sync(this); _la = this._input.LA(1); } - this.state = 1284; - this.match(HiveSqlParser.T_CLOSE_P); - this.state = 1288; + this.state = 1282; + this.match(HiveSql.T_CLOSE_P); + this.state = 1286; this._errHandler.sync(this); var _alt = this._interp.adaptivePredict(this._input,117,this._ctx) while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { if(_alt===1) { - this.state = 1285; + this.state = 1283; this.create_table_fk_action(); } - this.state = 1290; + this.state = 1288; this._errHandler.sync(this); _alt = this._interp.adaptivePredict(this._input,117,this._ctx); } break; - case HiveSqlParser.T_DEFAULT: + case HiveSql.T_DEFAULT: this.enterOuterAlt(localctx, 3); - this.state = 1291; - this.match(HiveSqlParser.T_DEFAULT); - this.state = 1292; + this.state = 1289; + this.match(HiveSql.T_DEFAULT); + this.state = 1290; this.expr(0); - this.state = 1293; - this.match(HiveSqlParser.T_FOR); - this.state = 1294; + this.state = 1291; + this.match(HiveSql.T_FOR); + this.state = 1292; this.ident(); break; default: @@ -12414,7 +12454,7 @@ function DtypeContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_dtype; + this.ruleIndex = HiveSql.RULE_dtype; return this; } @@ -12422,171 +12462,171 @@ DtypeContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); DtypeContext.prototype.constructor = DtypeContext; DtypeContext.prototype.T_CHAR = function() { - return this.getToken(HiveSqlParser.T_CHAR, 0); -}; - -DtypeContext.prototype.T_CHARACTER = function() { - return this.getToken(HiveSqlParser.T_CHARACTER, 0); + return this.getToken(HiveSql.T_CHAR, 0); }; DtypeContext.prototype.T_BIGINT = function() { - return this.getToken(HiveSqlParser.T_BIGINT, 0); + return this.getToken(HiveSql.T_BIGINT, 0); }; DtypeContext.prototype.T_BINARY_DOUBLE = function() { - return this.getToken(HiveSqlParser.T_BINARY_DOUBLE, 0); + return this.getToken(HiveSql.T_BINARY_DOUBLE, 0); }; DtypeContext.prototype.T_BINARY_FLOAT = function() { - return this.getToken(HiveSqlParser.T_BINARY_FLOAT, 0); + return this.getToken(HiveSql.T_BINARY_FLOAT, 0); }; DtypeContext.prototype.T_BINARY_INTEGER = function() { - return this.getToken(HiveSqlParser.T_BINARY_INTEGER, 0); + return this.getToken(HiveSql.T_BINARY_INTEGER, 0); }; DtypeContext.prototype.T_BIT = function() { - return this.getToken(HiveSqlParser.T_BIT, 0); + return this.getToken(HiveSql.T_BIT, 0); }; DtypeContext.prototype.T_DATE = function() { - return this.getToken(HiveSqlParser.T_DATE, 0); + return this.getToken(HiveSql.T_DATE, 0); }; DtypeContext.prototype.T_DATETIME = function() { - return this.getToken(HiveSqlParser.T_DATETIME, 0); + return this.getToken(HiveSql.T_DATETIME, 0); }; DtypeContext.prototype.T_DEC = function() { - return this.getToken(HiveSqlParser.T_DEC, 0); + return this.getToken(HiveSql.T_DEC, 0); }; DtypeContext.prototype.T_DECIMAL = function() { - return this.getToken(HiveSqlParser.T_DECIMAL, 0); + return this.getToken(HiveSql.T_DECIMAL, 0); }; DtypeContext.prototype.T_DOUBLE = function() { - return this.getToken(HiveSqlParser.T_DOUBLE, 0); + return this.getToken(HiveSql.T_DOUBLE, 0); }; DtypeContext.prototype.T_PRECISION = function() { - return this.getToken(HiveSqlParser.T_PRECISION, 0); + return this.getToken(HiveSql.T_PRECISION, 0); }; DtypeContext.prototype.T_FLOAT = function() { - return this.getToken(HiveSqlParser.T_FLOAT, 0); + return this.getToken(HiveSql.T_FLOAT, 0); }; DtypeContext.prototype.T_INT = function() { - return this.getToken(HiveSqlParser.T_INT, 0); + return this.getToken(HiveSql.T_INT, 0); }; DtypeContext.prototype.T_INT2 = function() { - return this.getToken(HiveSqlParser.T_INT2, 0); + return this.getToken(HiveSql.T_INT2, 0); }; DtypeContext.prototype.T_INT4 = function() { - return this.getToken(HiveSqlParser.T_INT4, 0); + return this.getToken(HiveSql.T_INT4, 0); }; DtypeContext.prototype.T_INT8 = function() { - return this.getToken(HiveSqlParser.T_INT8, 0); + return this.getToken(HiveSql.T_INT8, 0); }; DtypeContext.prototype.T_INTEGER = function() { - return this.getToken(HiveSqlParser.T_INTEGER, 0); + return this.getToken(HiveSql.T_INTEGER, 0); }; DtypeContext.prototype.T_NCHAR = function() { - return this.getToken(HiveSqlParser.T_NCHAR, 0); + return this.getToken(HiveSql.T_NCHAR, 0); }; DtypeContext.prototype.T_NVARCHAR = function() { - return this.getToken(HiveSqlParser.T_NVARCHAR, 0); + return this.getToken(HiveSql.T_NVARCHAR, 0); }; DtypeContext.prototype.T_NUMBER = function() { - return this.getToken(HiveSqlParser.T_NUMBER, 0); + return this.getToken(HiveSql.T_NUMBER, 0); }; DtypeContext.prototype.T_NUMERIC = function() { - return this.getToken(HiveSqlParser.T_NUMERIC, 0); + return this.getToken(HiveSql.T_NUMERIC, 0); }; DtypeContext.prototype.T_PLS_INTEGER = function() { - return this.getToken(HiveSqlParser.T_PLS_INTEGER, 0); + return this.getToken(HiveSql.T_PLS_INTEGER, 0); }; DtypeContext.prototype.T_REAL = function() { - return this.getToken(HiveSqlParser.T_REAL, 0); + return this.getToken(HiveSql.T_REAL, 0); }; DtypeContext.prototype.T_RESULT_SET_LOCATOR = function() { - return this.getToken(HiveSqlParser.T_RESULT_SET_LOCATOR, 0); + return this.getToken(HiveSql.T_RESULT_SET_LOCATOR, 0); }; DtypeContext.prototype.T_VARYING = function() { - return this.getToken(HiveSqlParser.T_VARYING, 0); + return this.getToken(HiveSql.T_VARYING, 0); }; DtypeContext.prototype.T_SIMPLE_FLOAT = function() { - return this.getToken(HiveSqlParser.T_SIMPLE_FLOAT, 0); + return this.getToken(HiveSql.T_SIMPLE_FLOAT, 0); }; DtypeContext.prototype.T_SIMPLE_DOUBLE = function() { - return this.getToken(HiveSqlParser.T_SIMPLE_DOUBLE, 0); + return this.getToken(HiveSql.T_SIMPLE_DOUBLE, 0); }; DtypeContext.prototype.T_SIMPLE_INTEGER = function() { - return this.getToken(HiveSqlParser.T_SIMPLE_INTEGER, 0); + return this.getToken(HiveSql.T_SIMPLE_INTEGER, 0); }; DtypeContext.prototype.T_SMALLINT = function() { - return this.getToken(HiveSqlParser.T_SMALLINT, 0); + return this.getToken(HiveSql.T_SMALLINT, 0); }; DtypeContext.prototype.T_SMALLDATETIME = function() { - return this.getToken(HiveSqlParser.T_SMALLDATETIME, 0); + return this.getToken(HiveSql.T_SMALLDATETIME, 0); }; DtypeContext.prototype.T_STRING = function() { - return this.getToken(HiveSqlParser.T_STRING, 0); + return this.getToken(HiveSql.T_STRING, 0); }; DtypeContext.prototype.T_SYS_REFCURSOR = function() { - return this.getToken(HiveSqlParser.T_SYS_REFCURSOR, 0); + return this.getToken(HiveSql.T_SYS_REFCURSOR, 0); }; DtypeContext.prototype.T_TIMESTAMP = function() { - return this.getToken(HiveSqlParser.T_TIMESTAMP, 0); + return this.getToken(HiveSql.T_TIMESTAMP, 0); }; DtypeContext.prototype.T_TINYINT = function() { - return this.getToken(HiveSqlParser.T_TINYINT, 0); + return this.getToken(HiveSql.T_TINYINT, 0); }; DtypeContext.prototype.T_VARCHAR = function() { - return this.getToken(HiveSqlParser.T_VARCHAR, 0); + return this.getToken(HiveSql.T_VARCHAR, 0); }; DtypeContext.prototype.T_VARCHAR2 = function() { - return this.getToken(HiveSqlParser.T_VARCHAR2, 0); + return this.getToken(HiveSql.T_VARCHAR2, 0); }; DtypeContext.prototype.T_XML = function() { - return this.getToken(HiveSqlParser.T_XML, 0); + return this.getToken(HiveSql.T_XML, 0); }; DtypeContext.prototype.ident = function() { return this.getTypedRuleContext(IdentContext,0); }; +DtypeContext.prototype.T_PRECENT = function() { + return this.getToken(HiveSql.T_PRECENT, 0); +}; + DtypeContext.prototype.T_TYPE = function() { - return this.getToken(HiveSqlParser.T_TYPE, 0); + return this.getToken(HiveSql.T_TYPE, 0); }; DtypeContext.prototype.T_ROWTYPE = function() { - return this.getToken(HiveSqlParser.T_ROWTYPE, 0); + return this.getToken(HiveSql.T_ROWTYPE, 0); }; DtypeContext.prototype.enterRule = function(listener) { @@ -12612,263 +12652,257 @@ DtypeContext.prototype.accept = function(visitor) { -HiveSqlParser.DtypeContext = DtypeContext; +HiveSql.DtypeContext = DtypeContext; -HiveSqlParser.prototype.dtype = function() { +HiveSql.prototype.dtype = function() { var localctx = new DtypeContext(this, this._ctx, this.state); - this.enterRule(localctx, 118, HiveSqlParser.RULE_dtype); + this.enterRule(localctx, 118, HiveSql.RULE_dtype); var _la = 0; // Token type try { - this.state = 1344; + this.state = 1341; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,121,this._ctx); switch(la_) { case 1: this.enterOuterAlt(localctx, 1); - this.state = 1298; - this.match(HiveSqlParser.T_CHAR); + this.state = 1296; + this.match(HiveSql.T_CHAR); break; case 2: this.enterOuterAlt(localctx, 2); - this.state = 1299; - this.match(HiveSqlParser.T_CHARACTER); + this.state = 1297; + this.match(HiveSql.T_BIGINT); break; case 3: this.enterOuterAlt(localctx, 3); - this.state = 1300; - this.match(HiveSqlParser.T_BIGINT); + this.state = 1298; + this.match(HiveSql.T_BINARY_DOUBLE); break; case 4: this.enterOuterAlt(localctx, 4); - this.state = 1301; - this.match(HiveSqlParser.T_BINARY_DOUBLE); + this.state = 1299; + this.match(HiveSql.T_BINARY_FLOAT); break; case 5: this.enterOuterAlt(localctx, 5); - this.state = 1302; - this.match(HiveSqlParser.T_BINARY_FLOAT); + this.state = 1300; + this.match(HiveSql.T_BINARY_INTEGER); break; case 6: this.enterOuterAlt(localctx, 6); - this.state = 1303; - this.match(HiveSqlParser.T_BINARY_INTEGER); + this.state = 1301; + this.match(HiveSql.T_BIT); break; case 7: this.enterOuterAlt(localctx, 7); - this.state = 1304; - this.match(HiveSqlParser.T_BIT); + this.state = 1302; + this.match(HiveSql.T_DATE); break; case 8: this.enterOuterAlt(localctx, 8); - this.state = 1305; - this.match(HiveSqlParser.T_DATE); + this.state = 1303; + this.match(HiveSql.T_DATETIME); break; case 9: this.enterOuterAlt(localctx, 9); - this.state = 1306; - this.match(HiveSqlParser.T_DATETIME); + this.state = 1304; + this.match(HiveSql.T_DEC); break; case 10: this.enterOuterAlt(localctx, 10); - this.state = 1307; - this.match(HiveSqlParser.T_DEC); + this.state = 1305; + this.match(HiveSql.T_DECIMAL); break; case 11: this.enterOuterAlt(localctx, 11); + this.state = 1306; + this.match(HiveSql.T_DOUBLE); this.state = 1308; - this.match(HiveSqlParser.T_DECIMAL); - break; - - case 12: - this.enterOuterAlt(localctx, 12); - this.state = 1309; - this.match(HiveSqlParser.T_DOUBLE); - this.state = 1311; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,119,this._ctx); if(la_===1) { - this.state = 1310; - this.match(HiveSqlParser.T_PRECISION); + this.state = 1307; + this.match(HiveSql.T_PRECISION); } break; + case 12: + this.enterOuterAlt(localctx, 12); + this.state = 1310; + this.match(HiveSql.T_FLOAT); + break; + case 13: this.enterOuterAlt(localctx, 13); - this.state = 1313; - this.match(HiveSqlParser.T_FLOAT); + this.state = 1311; + this.match(HiveSql.T_INT); break; case 14: this.enterOuterAlt(localctx, 14); - this.state = 1314; - this.match(HiveSqlParser.T_INT); + this.state = 1312; + this.match(HiveSql.T_INT2); break; case 15: this.enterOuterAlt(localctx, 15); - this.state = 1315; - this.match(HiveSqlParser.T_INT2); + this.state = 1313; + this.match(HiveSql.T_INT4); break; case 16: this.enterOuterAlt(localctx, 16); - this.state = 1316; - this.match(HiveSqlParser.T_INT4); + this.state = 1314; + this.match(HiveSql.T_INT8); break; case 17: this.enterOuterAlt(localctx, 17); - this.state = 1317; - this.match(HiveSqlParser.T_INT8); + this.state = 1315; + this.match(HiveSql.T_INTEGER); break; case 18: this.enterOuterAlt(localctx, 18); - this.state = 1318; - this.match(HiveSqlParser.T_INTEGER); + this.state = 1316; + this.match(HiveSql.T_NCHAR); break; case 19: this.enterOuterAlt(localctx, 19); - this.state = 1319; - this.match(HiveSqlParser.T_NCHAR); + this.state = 1317; + this.match(HiveSql.T_NVARCHAR); break; case 20: this.enterOuterAlt(localctx, 20); - this.state = 1320; - this.match(HiveSqlParser.T_NVARCHAR); + this.state = 1318; + this.match(HiveSql.T_NUMBER); break; case 21: this.enterOuterAlt(localctx, 21); - this.state = 1321; - this.match(HiveSqlParser.T_NUMBER); + this.state = 1319; + this.match(HiveSql.T_NUMERIC); break; case 22: this.enterOuterAlt(localctx, 22); - this.state = 1322; - this.match(HiveSqlParser.T_NUMERIC); + this.state = 1320; + this.match(HiveSql.T_PLS_INTEGER); break; case 23: this.enterOuterAlt(localctx, 23); - this.state = 1323; - this.match(HiveSqlParser.T_PLS_INTEGER); + this.state = 1321; + this.match(HiveSql.T_REAL); break; case 24: this.enterOuterAlt(localctx, 24); - this.state = 1324; - this.match(HiveSqlParser.T_REAL); + this.state = 1322; + this.match(HiveSql.T_RESULT_SET_LOCATOR); + this.state = 1323; + this.match(HiveSql.T_VARYING); break; case 25: this.enterOuterAlt(localctx, 25); - this.state = 1325; - this.match(HiveSqlParser.T_RESULT_SET_LOCATOR); - this.state = 1326; - this.match(HiveSqlParser.T_VARYING); + this.state = 1324; + this.match(HiveSql.T_SIMPLE_FLOAT); break; case 26: this.enterOuterAlt(localctx, 26); - this.state = 1327; - this.match(HiveSqlParser.T_SIMPLE_FLOAT); + this.state = 1325; + this.match(HiveSql.T_SIMPLE_DOUBLE); break; case 27: this.enterOuterAlt(localctx, 27); - this.state = 1328; - this.match(HiveSqlParser.T_SIMPLE_DOUBLE); + this.state = 1326; + this.match(HiveSql.T_SIMPLE_INTEGER); break; case 28: this.enterOuterAlt(localctx, 28); - this.state = 1329; - this.match(HiveSqlParser.T_SIMPLE_INTEGER); + this.state = 1327; + this.match(HiveSql.T_SMALLINT); break; case 29: this.enterOuterAlt(localctx, 29); - this.state = 1330; - this.match(HiveSqlParser.T_SMALLINT); + this.state = 1328; + this.match(HiveSql.T_SMALLDATETIME); break; case 30: this.enterOuterAlt(localctx, 30); - this.state = 1331; - this.match(HiveSqlParser.T_SMALLDATETIME); + this.state = 1329; + this.match(HiveSql.T_STRING); break; case 31: this.enterOuterAlt(localctx, 31); - this.state = 1332; - this.match(HiveSqlParser.T_STRING); + this.state = 1330; + this.match(HiveSql.T_SYS_REFCURSOR); break; case 32: this.enterOuterAlt(localctx, 32); - this.state = 1333; - this.match(HiveSqlParser.T_SYS_REFCURSOR); + this.state = 1331; + this.match(HiveSql.T_TIMESTAMP); break; case 33: this.enterOuterAlt(localctx, 33); - this.state = 1334; - this.match(HiveSqlParser.T_TIMESTAMP); + this.state = 1332; + this.match(HiveSql.T_TINYINT); break; case 34: this.enterOuterAlt(localctx, 34); - this.state = 1335; - this.match(HiveSqlParser.T_TINYINT); + this.state = 1333; + this.match(HiveSql.T_VARCHAR); break; case 35: this.enterOuterAlt(localctx, 35); - this.state = 1336; - this.match(HiveSqlParser.T_VARCHAR); + this.state = 1334; + this.match(HiveSql.T_VARCHAR2); break; case 36: this.enterOuterAlt(localctx, 36); - this.state = 1337; - this.match(HiveSqlParser.T_VARCHAR2); + this.state = 1335; + this.match(HiveSql.T_XML); break; case 37: this.enterOuterAlt(localctx, 37); - this.state = 1338; - this.match(HiveSqlParser.T_XML); - break; - - case 38: - this.enterOuterAlt(localctx, 38); - this.state = 1339; + this.state = 1336; this.ident(); - this.state = 1342; + this.state = 1339; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,120,this._ctx); if(la_===1) { - this.state = 1340; - this.match(HiveSqlParser.T__3); - this.state = 1341; + this.state = 1337; + this.match(HiveSql.T_PRECENT); + this.state = 1338; _la = this._input.LA(1); - if(!(_la===HiveSqlParser.T_TYPE || _la===HiveSqlParser.T_ROWTYPE)) { + if(!(_la===HiveSql.T_ROWTYPE || _la===HiveSql.T_TYPE)) { this._errHandler.recoverInline(this); } else { @@ -12904,7 +12938,7 @@ function Dtype_lenContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_dtype_len; + this.ruleIndex = HiveSql.RULE_dtype_len; return this; } @@ -12912,11 +12946,11 @@ Dtype_lenContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); Dtype_lenContext.prototype.constructor = Dtype_lenContext; Dtype_lenContext.prototype.T_OPEN_P = function() { - return this.getToken(HiveSqlParser.T_OPEN_P, 0); + return this.getToken(HiveSql.T_OPEN_P, 0); }; Dtype_lenContext.prototype.T_CLOSE_P = function() { - return this.getToken(HiveSqlParser.T_CLOSE_P, 0); + return this.getToken(HiveSql.T_CLOSE_P, 0); }; Dtype_lenContext.prototype.L_INT = function(i) { @@ -12924,27 +12958,27 @@ Dtype_lenContext.prototype.L_INT = function(i) { i = null; } if(i===null) { - return this.getTokens(HiveSqlParser.L_INT); + return this.getTokens(HiveSql.L_INT); } else { - return this.getToken(HiveSqlParser.L_INT, i); + return this.getToken(HiveSql.L_INT, i); } }; Dtype_lenContext.prototype.T_MAX = function() { - return this.getToken(HiveSqlParser.T_MAX, 0); + return this.getToken(HiveSql.T_MAX, 0); }; Dtype_lenContext.prototype.T_COMMA = function() { - return this.getToken(HiveSqlParser.T_COMMA, 0); + return this.getToken(HiveSql.T_COMMA, 0); }; Dtype_lenContext.prototype.T_CHAR = function() { - return this.getToken(HiveSqlParser.T_CHAR, 0); + return this.getToken(HiveSql.T_CHAR, 0); }; Dtype_lenContext.prototype.T_BYTE = function() { - return this.getToken(HiveSqlParser.T_BYTE, 0); + return this.getToken(HiveSql.T_BYTE, 0); }; Dtype_lenContext.prototype.enterRule = function(listener) { @@ -12970,33 +13004,33 @@ Dtype_lenContext.prototype.accept = function(visitor) { -HiveSqlParser.Dtype_lenContext = Dtype_lenContext; +HiveSql.Dtype_lenContext = Dtype_lenContext; -HiveSqlParser.prototype.dtype_len = function() { +HiveSql.prototype.dtype_len = function() { var localctx = new Dtype_lenContext(this, this._ctx, this.state); - this.enterRule(localctx, 120, HiveSqlParser.RULE_dtype_len); + this.enterRule(localctx, 120, HiveSql.RULE_dtype_len); var _la = 0; // Token type try { this.enterOuterAlt(localctx, 1); - this.state = 1346; - this.match(HiveSqlParser.T_OPEN_P); - this.state = 1347; + this.state = 1343; + this.match(HiveSql.T_OPEN_P); + this.state = 1344; _la = this._input.LA(1); - if(!(_la===HiveSqlParser.L_INT || _la===HiveSqlParser.T_MAX)) { + if(!(_la===HiveSql.T_MAX || _la===HiveSql.L_INT)) { this._errHandler.recoverInline(this); } else { this._errHandler.reportMatch(this); this.consume(); } - this.state = 1349; + this.state = 1346; this._errHandler.sync(this); _la = this._input.LA(1); - if(_la===HiveSqlParser.T_CHAR || _la===HiveSqlParser.T_BYTE) { - this.state = 1348; + if(_la===HiveSql.T_BYTE || _la===HiveSql.T_CHAR) { + this.state = 1345; _la = this._input.LA(1); - if(!(_la===HiveSqlParser.T_CHAR || _la===HiveSqlParser.T_BYTE)) { + if(!(_la===HiveSql.T_BYTE || _la===HiveSql.T_CHAR)) { this._errHandler.recoverInline(this); } else { @@ -13005,18 +13039,18 @@ HiveSqlParser.prototype.dtype_len = function() { } } - this.state = 1353; + this.state = 1350; this._errHandler.sync(this); _la = this._input.LA(1); - if(_la===HiveSqlParser.T_COMMA) { - this.state = 1351; - this.match(HiveSqlParser.T_COMMA); - this.state = 1352; - this.match(HiveSqlParser.L_INT); + if(_la===HiveSql.T_COMMA) { + this.state = 1348; + this.match(HiveSql.T_COMMA); + this.state = 1349; + this.match(HiveSql.L_INT); } - this.state = 1355; - this.match(HiveSqlParser.T_CLOSE_P); + this.state = 1352; + this.match(HiveSql.T_CLOSE_P); } catch (re) { if(re instanceof antlr4.error.RecognitionException) { localctx.exception = re; @@ -13041,7 +13075,7 @@ function Dtype_attrContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_dtype_attr; + this.ruleIndex = HiveSql.RULE_dtype_attr; return this; } @@ -13049,19 +13083,19 @@ Dtype_attrContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); Dtype_attrContext.prototype.constructor = Dtype_attrContext; Dtype_attrContext.prototype.T_NULL = function() { - return this.getToken(HiveSqlParser.T_NULL, 0); + return this.getToken(HiveSql.T_NULL, 0); }; Dtype_attrContext.prototype.T_NOT = function() { - return this.getToken(HiveSqlParser.T_NOT, 0); + return this.getToken(HiveSql.T_NOT, 0); }; Dtype_attrContext.prototype.T_CHARACTER = function() { - return this.getToken(HiveSqlParser.T_CHARACTER, 0); + return this.getToken(HiveSql.T_CHARACTER, 0); }; Dtype_attrContext.prototype.T_SET = function() { - return this.getToken(HiveSqlParser.T_SET, 0); + return this.getToken(HiveSql.T_SET, 0); }; Dtype_attrContext.prototype.ident = function() { @@ -13069,11 +13103,11 @@ Dtype_attrContext.prototype.ident = function() { }; Dtype_attrContext.prototype.T_CASESPECIFIC = function() { - return this.getToken(HiveSqlParser.T_CASESPECIFIC, 0); + return this.getToken(HiveSql.T_CASESPECIFIC, 0); }; Dtype_attrContext.prototype.T_CS = function() { - return this.getToken(HiveSqlParser.T_CS, 0); + return this.getToken(HiveSql.T_CS, 0); }; Dtype_attrContext.prototype.enterRule = function(listener) { @@ -13099,55 +13133,55 @@ Dtype_attrContext.prototype.accept = function(visitor) { -HiveSqlParser.Dtype_attrContext = Dtype_attrContext; +HiveSql.Dtype_attrContext = Dtype_attrContext; -HiveSqlParser.prototype.dtype_attr = function() { +HiveSql.prototype.dtype_attr = function() { var localctx = new Dtype_attrContext(this, this._ctx, this.state); - this.enterRule(localctx, 122, HiveSqlParser.RULE_dtype_attr); + this.enterRule(localctx, 122, HiveSql.RULE_dtype_attr); var _la = 0; // Token type try { - this.state = 1368; + this.state = 1365; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,126,this._ctx); switch(la_) { case 1: this.enterOuterAlt(localctx, 1); - this.state = 1358; + this.state = 1355; this._errHandler.sync(this); _la = this._input.LA(1); - if(_la===HiveSqlParser.T_NOT) { - this.state = 1357; - this.match(HiveSqlParser.T_NOT); + if(_la===HiveSql.T_NOT) { + this.state = 1354; + this.match(HiveSql.T_NOT); } - this.state = 1360; - this.match(HiveSqlParser.T_NULL); + this.state = 1357; + this.match(HiveSql.T_NULL); break; case 2: this.enterOuterAlt(localctx, 2); - this.state = 1361; - this.match(HiveSqlParser.T_CHARACTER); - this.state = 1362; - this.match(HiveSqlParser.T_SET); - this.state = 1363; + this.state = 1358; + this.match(HiveSql.T_CHARACTER); + this.state = 1359; + this.match(HiveSql.T_SET); + this.state = 1360; this.ident(); break; case 3: this.enterOuterAlt(localctx, 3); - this.state = 1365; + this.state = 1362; this._errHandler.sync(this); _la = this._input.LA(1); - if(_la===HiveSqlParser.T_NOT) { - this.state = 1364; - this.match(HiveSqlParser.T_NOT); + if(_la===HiveSql.T_NOT) { + this.state = 1361; + this.match(HiveSql.T_NOT); } - this.state = 1367; + this.state = 1364; _la = this._input.LA(1); - if(!(_la===HiveSqlParser.T_CASESPECIFIC || _la===HiveSqlParser.T_CS)) { + if(!(_la===HiveSql.T_CASESPECIFIC || _la===HiveSql.T_CS)) { this._errHandler.recoverInline(this); } else { @@ -13181,7 +13215,7 @@ function Dtype_defaultContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_dtype_default; + this.ruleIndex = HiveSql.RULE_dtype_default; return this; } @@ -13189,7 +13223,7 @@ Dtype_defaultContext.prototype = Object.create(antlr4.ParserRuleContext.prototyp Dtype_defaultContext.prototype.constructor = Dtype_defaultContext; Dtype_defaultContext.prototype.T_EQUAL = function() { - return this.getToken(HiveSqlParser.T_EQUAL, 0); + return this.getToken(HiveSql.T_EQUAL, 0); }; Dtype_defaultContext.prototype.expr = function() { @@ -13197,15 +13231,15 @@ Dtype_defaultContext.prototype.expr = function() { }; Dtype_defaultContext.prototype.T_COLON = function() { - return this.getToken(HiveSqlParser.T_COLON, 0); + return this.getToken(HiveSql.T_COLON, 0); }; Dtype_defaultContext.prototype.T_DEFAULT = function() { - return this.getToken(HiveSqlParser.T_DEFAULT, 0); + return this.getToken(HiveSql.T_DEFAULT, 0); }; Dtype_defaultContext.prototype.T_WITH = function() { - return this.getToken(HiveSqlParser.T_WITH, 0); + return this.getToken(HiveSql.T_WITH, 0); }; Dtype_defaultContext.prototype.enterRule = function(listener) { @@ -13231,51 +13265,51 @@ Dtype_defaultContext.prototype.accept = function(visitor) { -HiveSqlParser.Dtype_defaultContext = Dtype_defaultContext; +HiveSql.Dtype_defaultContext = Dtype_defaultContext; -HiveSqlParser.prototype.dtype_default = function() { +HiveSql.prototype.dtype_default = function() { var localctx = new Dtype_defaultContext(this, this._ctx, this.state); - this.enterRule(localctx, 124, HiveSqlParser.RULE_dtype_default); + this.enterRule(localctx, 124, HiveSql.RULE_dtype_default); var _la = 0; // Token type try { - this.state = 1382; + this.state = 1379; this._errHandler.sync(this); switch(this._input.LA(1)) { - case HiveSqlParser.T_COLON: - case HiveSqlParser.T_EQUAL: + case HiveSql.T_COLON: + case HiveSql.T_EQUAL: this.enterOuterAlt(localctx, 1); - this.state = 1371; + this.state = 1368; this._errHandler.sync(this); _la = this._input.LA(1); - if(_la===HiveSqlParser.T_COLON) { - this.state = 1370; - this.match(HiveSqlParser.T_COLON); + if(_la===HiveSql.T_COLON) { + this.state = 1367; + this.match(HiveSql.T_COLON); } - this.state = 1373; - this.match(HiveSqlParser.T_EQUAL); - this.state = 1374; + this.state = 1370; + this.match(HiveSql.T_EQUAL); + this.state = 1371; this.expr(0); break; - case HiveSqlParser.T_WITH: - case HiveSqlParser.T_DEFAULT: + case HiveSql.T_DEFAULT: + case HiveSql.T_WITH: this.enterOuterAlt(localctx, 2); - this.state = 1376; + this.state = 1373; this._errHandler.sync(this); _la = this._input.LA(1); - if(_la===HiveSqlParser.T_WITH) { - this.state = 1375; - this.match(HiveSqlParser.T_WITH); + if(_la===HiveSql.T_WITH) { + this.state = 1372; + this.match(HiveSql.T_WITH); } - this.state = 1378; - this.match(HiveSqlParser.T_DEFAULT); - this.state = 1380; + this.state = 1375; + this.match(HiveSql.T_DEFAULT); + this.state = 1377; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,129,this._ctx); if(la_===1) { - this.state = 1379; + this.state = 1376; this.expr(0); } @@ -13307,7 +13341,7 @@ function Create_database_stmtContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_create_database_stmt; + this.ruleIndex = HiveSql.RULE_create_database_stmt; return this; } @@ -13315,7 +13349,7 @@ Create_database_stmtContext.prototype = Object.create(antlr4.ParserRuleContext.p Create_database_stmtContext.prototype.constructor = Create_database_stmtContext; Create_database_stmtContext.prototype.T_CREATE = function() { - return this.getToken(HiveSqlParser.T_CREATE, 0); + return this.getToken(HiveSql.T_CREATE, 0); }; Create_database_stmtContext.prototype.expr = function() { @@ -13323,23 +13357,23 @@ Create_database_stmtContext.prototype.expr = function() { }; Create_database_stmtContext.prototype.T_DATABASE = function() { - return this.getToken(HiveSqlParser.T_DATABASE, 0); + return this.getToken(HiveSql.T_DATABASE, 0); }; Create_database_stmtContext.prototype.T_SCHEMA = function() { - return this.getToken(HiveSqlParser.T_SCHEMA, 0); + return this.getToken(HiveSql.T_SCHEMA, 0); }; Create_database_stmtContext.prototype.T_IF = function() { - return this.getToken(HiveSqlParser.T_IF, 0); + return this.getToken(HiveSql.T_IF, 0); }; Create_database_stmtContext.prototype.T_NOT = function() { - return this.getToken(HiveSqlParser.T_NOT, 0); + return this.getToken(HiveSql.T_NOT, 0); }; Create_database_stmtContext.prototype.T_EXISTS = function() { - return this.getToken(HiveSqlParser.T_EXISTS, 0); + return this.getToken(HiveSql.T_EXISTS, 0); }; Create_database_stmtContext.prototype.create_database_option = function(i) { @@ -13376,49 +13410,49 @@ Create_database_stmtContext.prototype.accept = function(visitor) { -HiveSqlParser.Create_database_stmtContext = Create_database_stmtContext; +HiveSql.Create_database_stmtContext = Create_database_stmtContext; -HiveSqlParser.prototype.create_database_stmt = function() { +HiveSql.prototype.create_database_stmt = function() { var localctx = new Create_database_stmtContext(this, this._ctx, this.state); - this.enterRule(localctx, 126, HiveSqlParser.RULE_create_database_stmt); + this.enterRule(localctx, 126, HiveSql.RULE_create_database_stmt); var _la = 0; // Token type try { this.enterOuterAlt(localctx, 1); - this.state = 1384; - this.match(HiveSqlParser.T_CREATE); - this.state = 1385; + this.state = 1381; + this.match(HiveSql.T_CREATE); + this.state = 1382; _la = this._input.LA(1); - if(!(_la===HiveSqlParser.T_DATABASE || _la===HiveSqlParser.T_SCHEMA)) { + if(!(_la===HiveSql.T_DATABASE || _la===HiveSql.T_SCHEMA)) { this._errHandler.recoverInline(this); } else { this._errHandler.reportMatch(this); this.consume(); } - this.state = 1389; + this.state = 1386; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,131,this._ctx); if(la_===1) { - this.state = 1386; - this.match(HiveSqlParser.T_IF); - this.state = 1387; - this.match(HiveSqlParser.T_NOT); - this.state = 1388; - this.match(HiveSqlParser.T_EXISTS); + this.state = 1383; + this.match(HiveSql.T_IF); + this.state = 1384; + this.match(HiveSql.T_NOT); + this.state = 1385; + this.match(HiveSql.T_EXISTS); } - this.state = 1391; + this.state = 1388; this.expr(0); - this.state = 1395; + this.state = 1392; this._errHandler.sync(this); var _alt = this._interp.adaptivePredict(this._input,132,this._ctx) while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { if(_alt===1) { - this.state = 1392; + this.state = 1389; this.create_database_option(); } - this.state = 1397; + this.state = 1394; this._errHandler.sync(this); _alt = this._interp.adaptivePredict(this._input,132,this._ctx); } @@ -13447,7 +13481,7 @@ function Create_database_optionContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_create_database_option; + this.ruleIndex = HiveSql.RULE_create_database_option; return this; } @@ -13455,7 +13489,7 @@ Create_database_optionContext.prototype = Object.create(antlr4.ParserRuleContext Create_database_optionContext.prototype.constructor = Create_database_optionContext; Create_database_optionContext.prototype.T_COMMENT = function() { - return this.getToken(HiveSqlParser.T_COMMENT, 0); + return this.getToken(HiveSql.T_COMMENT, 0); }; Create_database_optionContext.prototype.expr = function() { @@ -13463,7 +13497,7 @@ Create_database_optionContext.prototype.expr = function() { }; Create_database_optionContext.prototype.T_LOCATION = function() { - return this.getToken(HiveSqlParser.T_LOCATION, 0); + return this.getToken(HiveSql.T_LOCATION, 0); }; Create_database_optionContext.prototype.enterRule = function(listener) { @@ -13489,28 +13523,28 @@ Create_database_optionContext.prototype.accept = function(visitor) { -HiveSqlParser.Create_database_optionContext = Create_database_optionContext; +HiveSql.Create_database_optionContext = Create_database_optionContext; -HiveSqlParser.prototype.create_database_option = function() { +HiveSql.prototype.create_database_option = function() { var localctx = new Create_database_optionContext(this, this._ctx, this.state); - this.enterRule(localctx, 128, HiveSqlParser.RULE_create_database_option); + this.enterRule(localctx, 128, HiveSql.RULE_create_database_option); try { - this.state = 1402; + this.state = 1399; this._errHandler.sync(this); switch(this._input.LA(1)) { - case HiveSqlParser.T_COMMENT: + case HiveSql.T_COMMENT: this.enterOuterAlt(localctx, 1); - this.state = 1398; - this.match(HiveSqlParser.T_COMMENT); - this.state = 1399; + this.state = 1395; + this.match(HiveSql.T_COMMENT); + this.state = 1396; this.expr(0); break; - case HiveSqlParser.T_LOCATION: + case HiveSql.T_LOCATION: this.enterOuterAlt(localctx, 2); - this.state = 1400; - this.match(HiveSqlParser.T_LOCATION); - this.state = 1401; + this.state = 1397; + this.match(HiveSql.T_LOCATION); + this.state = 1398; this.expr(0); break; default: @@ -13540,7 +13574,7 @@ function Create_function_stmtContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_create_function_stmt; + this.ruleIndex = HiveSql.RULE_create_function_stmt; return this; } @@ -13548,7 +13582,7 @@ Create_function_stmtContext.prototype = Object.create(antlr4.ParserRuleContext.p Create_function_stmtContext.prototype.constructor = Create_function_stmtContext; Create_function_stmtContext.prototype.T_FUNCTION = function() { - return this.getToken(HiveSqlParser.T_FUNCTION, 0); + return this.getToken(HiveSql.T_FUNCTION, 0); }; Create_function_stmtContext.prototype.ident = function() { @@ -13564,15 +13598,15 @@ Create_function_stmtContext.prototype.single_block_stmt = function() { }; Create_function_stmtContext.prototype.T_ALTER = function() { - return this.getToken(HiveSqlParser.T_ALTER, 0); + return this.getToken(HiveSql.T_ALTER, 0); }; Create_function_stmtContext.prototype.T_CREATE = function() { - return this.getToken(HiveSqlParser.T_CREATE, 0); + return this.getToken(HiveSql.T_CREATE, 0); }; Create_function_stmtContext.prototype.T_REPLACE = function() { - return this.getToken(HiveSqlParser.T_REPLACE, 0); + return this.getToken(HiveSql.T_REPLACE, 0); }; Create_function_stmtContext.prototype.create_routine_params = function() { @@ -13584,15 +13618,15 @@ Create_function_stmtContext.prototype.declare_block_inplace = function() { }; Create_function_stmtContext.prototype.T_AS = function() { - return this.getToken(HiveSqlParser.T_AS, 0); + return this.getToken(HiveSql.T_AS, 0); }; Create_function_stmtContext.prototype.T_IS = function() { - return this.getToken(HiveSqlParser.T_IS, 0); + return this.getToken(HiveSql.T_IS, 0); }; Create_function_stmtContext.prototype.T_OR = function() { - return this.getToken(HiveSqlParser.T_OR, 0); + return this.getToken(HiveSql.T_OR, 0); }; Create_function_stmtContext.prototype.enterRule = function(listener) { @@ -13618,66 +13652,66 @@ Create_function_stmtContext.prototype.accept = function(visitor) { -HiveSqlParser.Create_function_stmtContext = Create_function_stmtContext; +HiveSql.Create_function_stmtContext = Create_function_stmtContext; -HiveSqlParser.prototype.create_function_stmt = function() { +HiveSql.prototype.create_function_stmt = function() { var localctx = new Create_function_stmtContext(this, this._ctx, this.state); - this.enterRule(localctx, 130, HiveSqlParser.RULE_create_function_stmt); + this.enterRule(localctx, 130, HiveSql.RULE_create_function_stmt); var _la = 0; // Token type try { this.enterOuterAlt(localctx, 1); - this.state = 1411; + this.state = 1408; this._errHandler.sync(this); switch (this._input.LA(1)) { - case HiveSqlParser.T_ALTER: - this.state = 1404; - this.match(HiveSqlParser.T_ALTER); + case HiveSql.T_ALTER: + this.state = 1401; + this.match(HiveSql.T_ALTER); break; - case HiveSqlParser.T_CREATE: + case HiveSql.T_CREATE: + this.state = 1402; + this.match(HiveSql.T_CREATE); this.state = 1405; - this.match(HiveSqlParser.T_CREATE); - this.state = 1408; this._errHandler.sync(this); _la = this._input.LA(1); - if(_la===HiveSqlParser.T_OR) { - this.state = 1406; - this.match(HiveSqlParser.T_OR); - this.state = 1407; - this.match(HiveSqlParser.T_REPLACE); + if(_la===HiveSql.T_OR) { + this.state = 1403; + this.match(HiveSql.T_OR); + this.state = 1404; + this.match(HiveSql.T_REPLACE); } break; - case HiveSqlParser.T_REPLACE: - this.state = 1410; - this.match(HiveSqlParser.T_REPLACE); + case HiveSql.T_REPLACE: + this.state = 1407; + this.match(HiveSql.T_REPLACE); break; - case HiveSqlParser.T_FUNCTION: + case HiveSql.T_FUNCTION: break; default: break; } - this.state = 1413; - this.match(HiveSqlParser.T_FUNCTION); - this.state = 1414; + this.state = 1410; + this.match(HiveSql.T_FUNCTION); + this.state = 1411; this.ident(); - this.state = 1416; + this.state = 1413; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,136,this._ctx); if(la_===1) { - this.state = 1415; + this.state = 1412; this.create_routine_params(); } - this.state = 1418; + this.state = 1415; this.create_function_return(); - this.state = 1420; + this.state = 1417; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,137,this._ctx); if(la_===1) { - this.state = 1419; + this.state = 1416; _la = this._input.LA(1); - if(!(_la===HiveSqlParser.T_AS || _la===HiveSqlParser.T_IS)) { + if(!(_la===HiveSql.T_AS || _la===HiveSql.T_IS)) { this._errHandler.recoverInline(this); } else { @@ -13686,15 +13720,15 @@ HiveSqlParser.prototype.create_function_stmt = function() { } } - this.state = 1423; + this.state = 1420; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,138,this._ctx); if(la_===1) { - this.state = 1422; + this.state = 1419; this.declare_block_inplace(); } - this.state = 1425; + this.state = 1422; this.single_block_stmt(); } catch (re) { if(re instanceof antlr4.error.RecognitionException) { @@ -13720,7 +13754,7 @@ function Create_function_returnContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_create_function_return; + this.ruleIndex = HiveSql.RULE_create_function_return; return this; } @@ -13732,11 +13766,11 @@ Create_function_returnContext.prototype.dtype = function() { }; Create_function_returnContext.prototype.T_RETURN = function() { - return this.getToken(HiveSqlParser.T_RETURN, 0); + return this.getToken(HiveSql.T_RETURN, 0); }; Create_function_returnContext.prototype.T_RETURNS = function() { - return this.getToken(HiveSqlParser.T_RETURNS, 0); + return this.getToken(HiveSql.T_RETURNS, 0); }; Create_function_returnContext.prototype.dtype_len = function() { @@ -13766,31 +13800,31 @@ Create_function_returnContext.prototype.accept = function(visitor) { -HiveSqlParser.Create_function_returnContext = Create_function_returnContext; +HiveSql.Create_function_returnContext = Create_function_returnContext; -HiveSqlParser.prototype.create_function_return = function() { +HiveSql.prototype.create_function_return = function() { var localctx = new Create_function_returnContext(this, this._ctx, this.state); - this.enterRule(localctx, 132, HiveSqlParser.RULE_create_function_return); + this.enterRule(localctx, 132, HiveSql.RULE_create_function_return); var _la = 0; // Token type try { this.enterOuterAlt(localctx, 1); - this.state = 1427; + this.state = 1424; _la = this._input.LA(1); - if(!(_la===HiveSqlParser.T_RETURN || _la===HiveSqlParser.T_RETURNS)) { + if(!(_la===HiveSql.T_RETURN || _la===HiveSql.T_RETURNS)) { this._errHandler.recoverInline(this); } else { this._errHandler.reportMatch(this); this.consume(); } - this.state = 1428; + this.state = 1425; this.dtype(); - this.state = 1430; + this.state = 1427; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,139,this._ctx); if(la_===1) { - this.state = 1429; + this.state = 1426; this.dtype_len(); } @@ -13818,7 +13852,7 @@ function Create_package_stmtContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_create_package_stmt; + this.ruleIndex = HiveSql.RULE_create_package_stmt; return this; } @@ -13826,7 +13860,7 @@ Create_package_stmtContext.prototype = Object.create(antlr4.ParserRuleContext.pr Create_package_stmtContext.prototype.constructor = Create_package_stmtContext; Create_package_stmtContext.prototype.T_PACKAGE = function() { - return this.getToken(HiveSqlParser.T_PACKAGE, 0); + return this.getToken(HiveSql.T_PACKAGE, 0); }; Create_package_stmtContext.prototype.ident = function(i) { @@ -13845,35 +13879,35 @@ Create_package_stmtContext.prototype.package_spec = function() { }; Create_package_stmtContext.prototype.T_END = function() { - return this.getToken(HiveSqlParser.T_END, 0); + return this.getToken(HiveSql.T_END, 0); }; Create_package_stmtContext.prototype.T_AS = function() { - return this.getToken(HiveSqlParser.T_AS, 0); + return this.getToken(HiveSql.T_AS, 0); }; Create_package_stmtContext.prototype.T_IS = function() { - return this.getToken(HiveSqlParser.T_IS, 0); + return this.getToken(HiveSql.T_IS, 0); }; Create_package_stmtContext.prototype.T_ALTER = function() { - return this.getToken(HiveSqlParser.T_ALTER, 0); + return this.getToken(HiveSql.T_ALTER, 0); }; Create_package_stmtContext.prototype.T_CREATE = function() { - return this.getToken(HiveSqlParser.T_CREATE, 0); + return this.getToken(HiveSql.T_CREATE, 0); }; Create_package_stmtContext.prototype.T_REPLACE = function() { - return this.getToken(HiveSqlParser.T_REPLACE, 0); + return this.getToken(HiveSql.T_REPLACE, 0); }; Create_package_stmtContext.prototype.T_SEMICOLON = function() { - return this.getToken(HiveSqlParser.T_SEMICOLON, 0); + return this.getToken(HiveSql.T_SEMICOLON, 0); }; Create_package_stmtContext.prototype.T_OR = function() { - return this.getToken(HiveSqlParser.T_OR, 0); + return this.getToken(HiveSql.T_OR, 0); }; Create_package_stmtContext.prototype.enterRule = function(listener) { @@ -13899,70 +13933,70 @@ Create_package_stmtContext.prototype.accept = function(visitor) { -HiveSqlParser.Create_package_stmtContext = Create_package_stmtContext; +HiveSql.Create_package_stmtContext = Create_package_stmtContext; -HiveSqlParser.prototype.create_package_stmt = function() { +HiveSql.prototype.create_package_stmt = function() { var localctx = new Create_package_stmtContext(this, this._ctx, this.state); - this.enterRule(localctx, 134, HiveSqlParser.RULE_create_package_stmt); + this.enterRule(localctx, 134, HiveSql.RULE_create_package_stmt); var _la = 0; // Token type try { this.enterOuterAlt(localctx, 1); - this.state = 1439; + this.state = 1436; this._errHandler.sync(this); switch (this._input.LA(1)) { - case HiveSqlParser.T_ALTER: - this.state = 1432; - this.match(HiveSqlParser.T_ALTER); + case HiveSql.T_ALTER: + this.state = 1429; + this.match(HiveSql.T_ALTER); break; - case HiveSqlParser.T_CREATE: + case HiveSql.T_CREATE: + this.state = 1430; + this.match(HiveSql.T_CREATE); this.state = 1433; - this.match(HiveSqlParser.T_CREATE); - this.state = 1436; this._errHandler.sync(this); _la = this._input.LA(1); - if(_la===HiveSqlParser.T_OR) { - this.state = 1434; - this.match(HiveSqlParser.T_OR); - this.state = 1435; - this.match(HiveSqlParser.T_REPLACE); + if(_la===HiveSql.T_OR) { + this.state = 1431; + this.match(HiveSql.T_OR); + this.state = 1432; + this.match(HiveSql.T_REPLACE); } break; - case HiveSqlParser.T_REPLACE: - this.state = 1438; - this.match(HiveSqlParser.T_REPLACE); + case HiveSql.T_REPLACE: + this.state = 1435; + this.match(HiveSql.T_REPLACE); break; - case HiveSqlParser.T_PACKAGE: + case HiveSql.T_PACKAGE: break; default: break; } - this.state = 1441; - this.match(HiveSqlParser.T_PACKAGE); - this.state = 1442; + this.state = 1438; + this.match(HiveSql.T_PACKAGE); + this.state = 1439; this.ident(); - this.state = 1443; + this.state = 1440; _la = this._input.LA(1); - if(!(_la===HiveSqlParser.T_AS || _la===HiveSqlParser.T_IS)) { + if(!(_la===HiveSql.T_AS || _la===HiveSql.T_IS)) { this._errHandler.recoverInline(this); } else { this._errHandler.reportMatch(this); this.consume(); } - this.state = 1444; + this.state = 1441; this.package_spec(); - this.state = 1445; - this.match(HiveSqlParser.T_END); - this.state = 1449; + this.state = 1442; + this.match(HiveSql.T_END); + this.state = 1446; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,142,this._ctx); if(la_===1) { - this.state = 1446; + this.state = 1443; this.ident(); - this.state = 1447; - this.match(HiveSqlParser.T_SEMICOLON); + this.state = 1444; + this.match(HiveSql.T_SEMICOLON); } } catch (re) { @@ -13989,7 +14023,7 @@ function Package_specContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_package_spec; + this.ruleIndex = HiveSql.RULE_package_spec; return this; } @@ -14012,9 +14046,9 @@ Package_specContext.prototype.T_SEMICOLON = function(i) { i = null; } if(i===null) { - return this.getTokens(HiveSqlParser.T_SEMICOLON); + return this.getTokens(HiveSql.T_SEMICOLON); } else { - return this.getToken(HiveSqlParser.T_SEMICOLON, i); + return this.getToken(HiveSql.T_SEMICOLON, i); } }; @@ -14042,28 +14076,28 @@ Package_specContext.prototype.accept = function(visitor) { -HiveSqlParser.Package_specContext = Package_specContext; +HiveSql.Package_specContext = Package_specContext; -HiveSqlParser.prototype.package_spec = function() { +HiveSql.prototype.package_spec = function() { var localctx = new Package_specContext(this, this._ctx, this.state); - this.enterRule(localctx, 136, HiveSqlParser.RULE_package_spec); + this.enterRule(localctx, 136, HiveSql.RULE_package_spec); var _la = 0; // Token type try { this.enterOuterAlt(localctx, 1); - this.state = 1451; + this.state = 1448; this.package_spec_item(); - this.state = 1452; - this.match(HiveSqlParser.T_SEMICOLON); - this.state = 1458; + this.state = 1449; + this.match(HiveSql.T_SEMICOLON); + this.state = 1455; this._errHandler.sync(this); _la = this._input.LA(1); - while((((_la) & ~0x1f) == 0 && ((1 << _la) & ((1 << HiveSqlParser.T__8) | (1 << HiveSqlParser.T_GO) | (1 << HiveSqlParser.T_BEGIN) | (1 << HiveSqlParser.T_EXCEPTION) | (1 << HiveSqlParser.L_ID) | (1 << HiveSqlParser.T_THEN) | (1 << HiveSqlParser.T_SET) | (1 << HiveSqlParser.T_ALLOCATE) | (1 << HiveSqlParser.T_CURSOR) | (1 << HiveSqlParser.T_FOR) | (1 << HiveSqlParser.T_RESULT) | (1 << HiveSqlParser.T_PROCEDURE) | (1 << HiveSqlParser.T_ASSOCIATE))) !== 0) || ((((_la - 32)) & ~0x1f) == 0 && ((1 << (_la - 32)) & ((1 << (HiveSqlParser.T_LOCATOR - 32)) | (1 << (HiveSqlParser.T_LOCATORS - 32)) | (1 << (HiveSqlParser.T_WITH - 32)) | (1 << (HiveSqlParser.T_TRANSACTION - 32)) | (1 << (HiveSqlParser.T_BREAK - 32)) | (1 << (HiveSqlParser.T_CALL - 32)) | (1 << (HiveSqlParser.T_DECLARE - 32)) | (1 << (HiveSqlParser.T_AS - 32)) | (1 << (HiveSqlParser.T_CONSTANT - 32)) | (1 << (HiveSqlParser.T_CONDITION - 32)) | (1 << (HiveSqlParser.T_IS - 32)) | (1 << (HiveSqlParser.T_RETURN - 32)) | (1 << (HiveSqlParser.T_ONLY - 32)) | (1 << (HiveSqlParser.T_TO - 32)) | (1 << (HiveSqlParser.T_CALLER - 32)) | (1 << (HiveSqlParser.T_CLIENT - 32)) | (1 << (HiveSqlParser.T_WITHOUT - 32)) | (1 << (HiveSqlParser.T_CONTINUE - 32)) | (1 << (HiveSqlParser.T_EXIT - 32)) | (1 << (HiveSqlParser.T_HANDLER - 32)) | (1 << (HiveSqlParser.T_SQLEXCEPTION - 32)) | (1 << (HiveSqlParser.T_SQLWARNING - 32)) | (1 << (HiveSqlParser.T_NOT - 32)) | (1 << (HiveSqlParser.T_FOUND - 32)) | (1 << (HiveSqlParser.T_GLOBAL - 32)) | (1 << (HiveSqlParser.T_TEMPORARY - 32)) | (1 << (HiveSqlParser.T_TABLE - 32)) | (1 << (HiveSqlParser.T_CREATE - 32)) | (1 << (HiveSqlParser.T_IF - 32)) | (1 << (HiveSqlParser.T_EXISTS - 32)) | (1 << (HiveSqlParser.T_LOCAL - 32)) | (1 << (HiveSqlParser.T_MULTISET - 32)))) !== 0) || ((((_la - 64)) & ~0x1f) == 0 && ((1 << (_la - 64)) & ((1 << (HiveSqlParser.T_VOLATILE - 64)) | (1 << (HiveSqlParser.T_LIKE - 64)) | (1 << (HiveSqlParser.T_CONSTRAINT - 64)) | (1 << (HiveSqlParser.T_PRIMARY - 64)) | (1 << (HiveSqlParser.T_KEY - 64)) | (1 << (HiveSqlParser.T_UNIQUE - 64)) | (1 << (HiveSqlParser.T_REFERENCES - 64)) | (1 << (HiveSqlParser.T_IDENTITY - 64)) | (1 << (HiveSqlParser.T_AUTO_INCREMENT - 64)) | (1 << (HiveSqlParser.T_ENABLE - 64)) | (1 << (HiveSqlParser.T_CLUSTERED - 64)) | (1 << (HiveSqlParser.T_ASC - 64)) | (1 << (HiveSqlParser.T_DESC - 64)) | (1 << (HiveSqlParser.T_FOREIGN - 64)) | (1 << (HiveSqlParser.T_ON - 64)) | (1 << (HiveSqlParser.T_UPDATE - 64)) | (1 << (HiveSqlParser.T_DELETE - 64)) | (1 << (HiveSqlParser.T_NO - 64)) | (1 << (HiveSqlParser.T_ACTION - 64)) | (1 << (HiveSqlParser.T_RESTRICT - 64)) | (1 << (HiveSqlParser.T_DEFAULT - 64)) | (1 << (HiveSqlParser.T_CASCADE - 64)) | (1 << (HiveSqlParser.T_LOG - 64)) | (1 << (HiveSqlParser.T_FALLBACK - 64)) | (1 << (HiveSqlParser.T_COMMIT - 64)) | (1 << (HiveSqlParser.T_PRESERVE - 64)) | (1 << (HiveSqlParser.T_ROWS - 64)) | (1 << (HiveSqlParser.T_SEGMENT - 64)) | (1 << (HiveSqlParser.T_CREATION - 64)) | (1 << (HiveSqlParser.T_IMMEDIATE - 64)) | (1 << (HiveSqlParser.T_DEFERRED - 64)))) !== 0) || ((((_la - 96)) & ~0x1f) == 0 && ((1 << (_la - 96)) & ((1 << (HiveSqlParser.T_PCTFREE - 96)) | (1 << (HiveSqlParser.T_PCTUSED - 96)) | (1 << (HiveSqlParser.T_INITRANS - 96)) | (1 << (HiveSqlParser.T_MAXTRANS - 96)) | (1 << (HiveSqlParser.T_NOCOMPRESS - 96)) | (1 << (HiveSqlParser.T_LOGGING - 96)) | (1 << (HiveSqlParser.T_NOLOGGING - 96)) | (1 << (HiveSqlParser.T_STORAGE - 96)) | (1 << (HiveSqlParser.T_TABLESPACE - 96)) | (1 << (HiveSqlParser.T_INDEX - 96)) | (1 << (HiveSqlParser.T_IN - 96)) | (1 << (HiveSqlParser.T_REPLACE - 96)) | (1 << (HiveSqlParser.T_DISTRIBUTE - 96)) | (1 << (HiveSqlParser.T_BY - 96)) | (1 << (HiveSqlParser.T_HASH - 96)) | (1 << (HiveSqlParser.T_LOGGED - 96)) | (1 << (HiveSqlParser.T_COMPRESS - 96)) | (1 << (HiveSqlParser.T_YES - 96)) | (1 << (HiveSqlParser.T_DEFINITION - 96)) | (1 << (HiveSqlParser.T_DROP - 96)) | (1 << (HiveSqlParser.T_DATA - 96)) | (1 << (HiveSqlParser.T_STORED - 96)) | (1 << (HiveSqlParser.T_ROW - 96)) | (1 << (HiveSqlParser.T_FORMAT - 96)) | (1 << (HiveSqlParser.T_DELIMITED - 96)) | (1 << (HiveSqlParser.T_FIELDS - 96)) | (1 << (HiveSqlParser.T_TERMINATED - 96)) | (1 << (HiveSqlParser.T_ESCAPED - 96)) | (1 << (HiveSqlParser.T_COLLECTION - 96)) | (1 << (HiveSqlParser.T_ITEMS - 96)) | (1 << (HiveSqlParser.T_MAP - 96)) | (1 << (HiveSqlParser.T_KEYS - 96)))) !== 0) || ((((_la - 128)) & ~0x1f) == 0 && ((1 << (_la - 128)) & ((1 << (HiveSqlParser.T_LINES - 128)) | (1 << (HiveSqlParser.T_DEFINED - 128)) | (1 << (HiveSqlParser.T_TEXTIMAGE_ON - 128)) | (1 << (HiveSqlParser.T_COMMENT - 128)) | (1 << (HiveSqlParser.T_CHARACTER - 128)) | (1 << (HiveSqlParser.T_CHARSET - 128)) | (1 << (HiveSqlParser.T_ENGINE - 128)) | (1 << (HiveSqlParser.T_ALTER - 128)) | (1 << (HiveSqlParser.T_ADD2 - 128)) | (1 << (HiveSqlParser.T_CHAR - 128)) | (1 << (HiveSqlParser.T_BIGINT - 128)) | (1 << (HiveSqlParser.T_BINARY_DOUBLE - 128)) | (1 << (HiveSqlParser.T_BINARY_FLOAT - 128)) | (1 << (HiveSqlParser.T_BIT - 128)) | (1 << (HiveSqlParser.T_DATE - 128)) | (1 << (HiveSqlParser.T_DATETIME - 128)) | (1 << (HiveSqlParser.T_DEC - 128)) | (1 << (HiveSqlParser.T_DECIMAL - 128)) | (1 << (HiveSqlParser.T_DOUBLE - 128)) | (1 << (HiveSqlParser.T_PRECISION - 128)) | (1 << (HiveSqlParser.T_FLOAT - 128)) | (1 << (HiveSqlParser.T_INT - 128)) | (1 << (HiveSqlParser.T_INT2 - 128)) | (1 << (HiveSqlParser.T_INT4 - 128)) | (1 << (HiveSqlParser.T_INT8 - 128)) | (1 << (HiveSqlParser.T_INTEGER - 128)) | (1 << (HiveSqlParser.T_NCHAR - 128)) | (1 << (HiveSqlParser.T_NVARCHAR - 128)) | (1 << (HiveSqlParser.T_NUMBER - 128)) | (1 << (HiveSqlParser.T_NUMERIC - 128)))) !== 0) || ((((_la - 160)) & ~0x1f) == 0 && ((1 << (_la - 160)) & ((1 << (HiveSqlParser.T_REAL - 160)) | (1 << (HiveSqlParser.T_RESULT_SET_LOCATOR - 160)) | (1 << (HiveSqlParser.T_VARYING - 160)) | (1 << (HiveSqlParser.T_SIMPLE_FLOAT - 160)) | (1 << (HiveSqlParser.T_SIMPLE_DOUBLE - 160)) | (1 << (HiveSqlParser.T_SMALLINT - 160)) | (1 << (HiveSqlParser.T_SMALLDATETIME - 160)) | (1 << (HiveSqlParser.T_STRING - 160)) | (1 << (HiveSqlParser.T_SYS_REFCURSOR - 160)) | (1 << (HiveSqlParser.T_TIMESTAMP - 160)) | (1 << (HiveSqlParser.T_VARCHAR - 160)) | (1 << (HiveSqlParser.T_VARCHAR2 - 160)) | (1 << (HiveSqlParser.T_XML - 160)) | (1 << (HiveSqlParser.T_MAX - 160)) | (1 << (HiveSqlParser.T_BYTE - 160)) | (1 << (HiveSqlParser.T_CASESPECIFIC - 160)) | (1 << (HiveSqlParser.T_CS - 160)) | (1 << (HiveSqlParser.T_DATABASE - 160)) | (1 << (HiveSqlParser.T_SCHEMA - 160)) | (1 << (HiveSqlParser.T_LOCATION - 160)) | (1 << (HiveSqlParser.T_OR - 160)) | (1 << (HiveSqlParser.T_FUNCTION - 160)) | (1 << (HiveSqlParser.T_RETURNS - 160)) | (1 << (HiveSqlParser.T_PACKAGE - 160)) | (1 << (HiveSqlParser.T_PROC - 160)) | (1 << (HiveSqlParser.T_BODY - 160)) | (1 << (HiveSqlParser.T_OUT - 160)) | (1 << (HiveSqlParser.T_INOUT - 160)))) !== 0) || ((((_la - 192)) & ~0x1f) == 0 && ((1 << (_la - 192)) & ((1 << (HiveSqlParser.T_LANGUAGE - 192)) | (1 << (HiveSqlParser.T_SQL - 192)) | (1 << (HiveSqlParser.T_SECURITY - 192)) | (1 << (HiveSqlParser.T_CREATOR - 192)) | (1 << (HiveSqlParser.T_DEFINER - 192)) | (1 << (HiveSqlParser.T_INVOKER - 192)) | (1 << (HiveSqlParser.T_OWNER - 192)) | (1 << (HiveSqlParser.T_DYNAMIC - 192)) | (1 << (HiveSqlParser.T_SETS - 192)) | (1 << (HiveSqlParser.T_EXEC - 192)) | (1 << (HiveSqlParser.T_EXECUTE - 192)) | (1 << (HiveSqlParser.T_INTO - 192)) | (1 << (HiveSqlParser.T_INCLUDE - 192)) | (1 << (HiveSqlParser.T_INSERT - 192)) | (1 << (HiveSqlParser.T_OVERWRITE - 192)) | (1 << (HiveSqlParser.T_VALUES - 192)) | (1 << (HiveSqlParser.T_DIRECTORY - 192)) | (1 << (HiveSqlParser.T_GET - 192)) | (1 << (HiveSqlParser.T_DIAGNOSTICS - 192)) | (1 << (HiveSqlParser.T_MESSAGE_TEXT - 192)) | (1 << (HiveSqlParser.T_ROW_COUNT - 192)) | (1 << (HiveSqlParser.T_GRANT - 192)) | (1 << (HiveSqlParser.T_ROLE - 192)) | (1 << (HiveSqlParser.T_LEAVE - 192)) | (1 << (HiveSqlParser.T_OBJECT - 192)) | (1 << (HiveSqlParser.T_AT - 192)) | (1 << (HiveSqlParser.T_OPEN - 192)) | (1 << (HiveSqlParser.T_FETCH - 192)) | (1 << (HiveSqlParser.T_FROM - 192)))) !== 0) || ((((_la - 224)) & ~0x1f) == 0 && ((1 << (_la - 224)) & ((1 << (HiveSqlParser.T_COLLECT - 224)) | (1 << (HiveSqlParser.T_STATISTICS - 224)) | (1 << (HiveSqlParser.T_STATS - 224)) | (1 << (HiveSqlParser.T_COLUMN - 224)) | (1 << (HiveSqlParser.T_CLOSE - 224)) | (1 << (HiveSqlParser.T_CMP - 224)) | (1 << (HiveSqlParser.T_SUM - 224)) | (1 << (HiveSqlParser.T_COPY - 224)) | (1 << (HiveSqlParser.T_HDFS - 224)) | (1 << (HiveSqlParser.T_BATCHSIZE - 224)) | (1 << (HiveSqlParser.T_DELIMITER - 224)) | (1 << (HiveSqlParser.T_SQLINSERT - 224)) | (1 << (HiveSqlParser.T_IGNORE - 224)) | (1 << (HiveSqlParser.T_WORK - 224)) | (1 << (HiveSqlParser.T_PRINT - 224)) | (1 << (HiveSqlParser.T_QUIT - 224)) | (1 << (HiveSqlParser.T_RAISE - 224)) | (1 << (HiveSqlParser.T_RESIGNAL - 224)) | (1 << (HiveSqlParser.T_SQLSTATE - 224)) | (1 << (HiveSqlParser.T_VALUE - 224)) | (1 << (HiveSqlParser.T_ROLLBACK - 224)) | (1 << (HiveSqlParser.T_CURRENT - 224)) | (1 << (HiveSqlParser.T_CURRENT_SCHEMA - 224)) | (1 << (HiveSqlParser.T_ANSI_NULLS - 224)) | (1 << (HiveSqlParser.T_ANSI_PADDING - 224)) | (1 << (HiveSqlParser.T_NOCOUNT - 224)) | (1 << (HiveSqlParser.T_QUOTED_IDENTIFIER - 224)) | (1 << (HiveSqlParser.T_XACT_ABORT - 224)) | (1 << (HiveSqlParser.T_OFF - 224)) | (1 << (HiveSqlParser.T_QUERY_BAND - 224)) | (1 << (HiveSqlParser.T_NONE - 224)) | (1 << (HiveSqlParser.T_SESSION - 224)))) !== 0) || ((((_la - 256)) & ~0x1f) == 0 && ((1 << (_la - 256)) & ((1 << (HiveSqlParser.T_SIGNAL - 256)) | (1 << (HiveSqlParser.T_SUMMARY - 256)) | (1 << (HiveSqlParser.T_TOP - 256)) | (1 << (HiveSqlParser.T_LIMIT - 256)) | (1 << (HiveSqlParser.T_TRUNCATE - 256)) | (1 << (HiveSqlParser.T_USE - 256)) | (1 << (HiveSqlParser.T_WHILE - 256)) | (1 << (HiveSqlParser.T_DO - 256)) | (1 << (HiveSqlParser.T_LOOP - 256)) | (1 << (HiveSqlParser.T_REVERSE - 256)) | (1 << (HiveSqlParser.T_STEP - 256)) | (1 << (HiveSqlParser.T_USING - 256)) | (1 << (HiveSqlParser.T_ALL - 256)) | (1 << (HiveSqlParser.T_EXCEPT - 256)) | (1 << (HiveSqlParser.T_INTERSECT - 256)) | (1 << (HiveSqlParser.T_SELECT - 256)) | (1 << (HiveSqlParser.T_SEL - 256)) | (1 << (HiveSqlParser.T_DISTINCT - 256)) | (1 << (HiveSqlParser.T_TITLE - 256)) | (1 << (HiveSqlParser.T_INNER - 256)) | (1 << (HiveSqlParser.T_JOIN - 256)) | (1 << (HiveSqlParser.T_LEFT - 256)) | (1 << (HiveSqlParser.T_RIGHT - 256)) | (1 << (HiveSqlParser.T_FULL - 256)) | (1 << (HiveSqlParser.T_OUTER - 256)))) !== 0) || ((((_la - 288)) & ~0x1f) == 0 && ((1 << (_la - 288)) & ((1 << (HiveSqlParser.T_GROUP - 288)) | (1 << (HiveSqlParser.T_HAVING - 288)) | (1 << (HiveSqlParser.T_QUALIFY - 288)) | (1 << (HiveSqlParser.T_ORDER - 288)) | (1 << (HiveSqlParser.T_RR - 288)) | (1 << (HiveSqlParser.T_RS - 288)) | (1 << (HiveSqlParser.T_UR - 288)) | (1 << (HiveSqlParser.T_AND - 288)) | (1 << (HiveSqlParser.T_KEEP - 288)) | (1 << (HiveSqlParser.T_EXCLUSIVE - 288)) | (1 << (HiveSqlParser.T_SHARE - 288)) | (1 << (HiveSqlParser.T_LOCKS - 288)) | (1 << (HiveSqlParser.T_MERGE - 288)) | (1 << (HiveSqlParser.T_MATCHED - 288)) | (1 << (HiveSqlParser.T_DESCRIBE - 288)) | (1 << (HiveSqlParser.T_BETWEEN - 288)) | (1 << (HiveSqlParser.T_RLIKE - 288)) | (1 << (HiveSqlParser.T_REGEXP - 288)) | (1 << (HiveSqlParser.T_INTERVAL - 288)) | (1 << (HiveSqlParser.T_DAY - 288)) | (1 << (HiveSqlParser.T_DAYS - 288)) | (1 << (HiveSqlParser.T_MICROSECOND - 288)) | (1 << (HiveSqlParser.T_MICROSECONDS - 288)))) !== 0) || ((((_la - 320)) & ~0x1f) == 0 && ((1 << (_la - 320)) & ((1 << (HiveSqlParser.T_SECOND - 320)) | (1 << (HiveSqlParser.T_SECONDS - 320)) | (1 << (HiveSqlParser.T_CONCAT - 320)) | (1 << (HiveSqlParser.T_CASE - 320)) | (1 << (HiveSqlParser.T_ISOPEN - 320)) | (1 << (HiveSqlParser.T_NOTFOUND - 320)) | (1 << (HiveSqlParser.T_AVG - 320)) | (1 << (HiveSqlParser.T_COUNT - 320)) | (1 << (HiveSqlParser.T_COUNT_BIG - 320)) | (1 << (HiveSqlParser.T_CUME_DIST - 320)) | (1 << (HiveSqlParser.T_DENSE_RANK - 320)) | (1 << (HiveSqlParser.T_FIRST_VALUE - 320)) | (1 << (HiveSqlParser.T_LAG - 320)) | (1 << (HiveSqlParser.T_LAST_VALUE - 320)) | (1 << (HiveSqlParser.T_LEAD - 320)) | (1 << (HiveSqlParser.T_MIN - 320)) | (1 << (HiveSqlParser.T_RANK - 320)) | (1 << (HiveSqlParser.T_ROW_NUMBER - 320)) | (1 << (HiveSqlParser.T_STDEV - 320)) | (1 << (HiveSqlParser.T_VAR - 320)) | (1 << (HiveSqlParser.T_VARIANCE - 320)) | (1 << (HiveSqlParser.T_OVER - 320)) | (1 << (HiveSqlParser.T_PARTITION - 320)) | (1 << (HiveSqlParser.T_ACTIVITY_COUNT - 320)) | (1 << (HiveSqlParser.T_CAST - 320)) | (1 << (HiveSqlParser.T_CURRENT_DATE - 320)) | (1 << (HiveSqlParser.T_CURRENT_TIMESTAMP - 320)) | (1 << (HiveSqlParser.T_CURRENT_USER - 320)) | (1 << (HiveSqlParser.T_USER - 320)))) !== 0) || ((((_la - 356)) & ~0x1f) == 0 && ((1 << (_la - 356)) & ((1 << (HiveSqlParser.T_PART_COUNT - 356)) | (1 << (HiveSqlParser.T_PART_LOC - 356)) | (1 << (HiveSqlParser.T_TRIM - 356)) | (1 << (HiveSqlParser.T_SUBSTRING - 356)) | (1 << (HiveSqlParser.T_SYSDATE - 356)) | (1 << (HiveSqlParser.T_HIVE - 356)) | (1 << (HiveSqlParser.T_HOST - 356)) | (1 << (HiveSqlParser.T_TRUE - 356)) | (1 << (HiveSqlParser.T_FALSE - 356)) | (1 << (HiveSqlParser.T_DIR - 356)) | (1 << (HiveSqlParser.T_FILE - 356)) | (1 << (HiveSqlParser.T_FILES - 356)) | (1 << (HiveSqlParser.T_NEW - 356)) | (1 << (HiveSqlParser.T_PWD - 356)) | (1 << (HiveSqlParser.T_SESSIONS - 356)) | (1 << (HiveSqlParser.T_SUBDIR - 356)))) !== 0)) { - this.state = 1453; + while((((_la) & ~0x1f) == 0 && ((1 << _la) & ((1 << HiveSql.T_ACTION) | (1 << HiveSql.T_ADD2) | (1 << HiveSql.T_ALL) | (1 << HiveSql.T_ALLOCATE) | (1 << HiveSql.T_ALTER) | (1 << HiveSql.T_AND) | (1 << HiveSql.T_ANSI_NULLS) | (1 << HiveSql.T_ANSI_PADDING) | (1 << HiveSql.T_AS) | (1 << HiveSql.T_ASC) | (1 << HiveSql.T_ASSOCIATE) | (1 << HiveSql.T_AT) | (1 << HiveSql.T_AUTO_INCREMENT) | (1 << HiveSql.T_AVG) | (1 << HiveSql.T_BATCHSIZE) | (1 << HiveSql.T_BEGIN) | (1 << HiveSql.T_BETWEEN) | (1 << HiveSql.T_BIGINT) | (1 << HiveSql.T_BINARY_DOUBLE) | (1 << HiveSql.T_BINARY_FLOAT) | (1 << HiveSql.T_BIT) | (1 << HiveSql.T_BODY) | (1 << HiveSql.T_BREAK) | (1 << HiveSql.T_BY) | (1 << HiveSql.T_BYTE) | (1 << HiveSql.T_CALL) | (1 << HiveSql.T_CALLER) | (1 << HiveSql.T_CASCADE) | (1 << HiveSql.T_CASE) | (1 << HiveSql.T_CASESPECIFIC))) !== 0) || ((((_la - 32)) & ~0x1f) == 0 && ((1 << (_la - 32)) & ((1 << (HiveSql.T_CAST - 32)) | (1 << (HiveSql.T_CHAR - 32)) | (1 << (HiveSql.T_CHARACTER - 32)) | (1 << (HiveSql.T_CHARSET - 32)) | (1 << (HiveSql.T_CLIENT - 32)) | (1 << (HiveSql.T_CLOSE - 32)) | (1 << (HiveSql.T_CLUSTERED - 32)) | (1 << (HiveSql.T_CMP - 32)) | (1 << (HiveSql.T_COLLECT - 32)) | (1 << (HiveSql.T_COLLECTION - 32)) | (1 << (HiveSql.T_COLUMN - 32)) | (1 << (HiveSql.T_COMMENT - 32)) | (1 << (HiveSql.T_CONSTANT - 32)) | (1 << (HiveSql.T_COMMIT - 32)) | (1 << (HiveSql.T_COMPRESS - 32)) | (1 << (HiveSql.T_CONCAT - 32)) | (1 << (HiveSql.T_CONDITION - 32)) | (1 << (HiveSql.T_CONSTRAINT - 32)) | (1 << (HiveSql.T_CONTINUE - 32)) | (1 << (HiveSql.T_COPY - 32)) | (1 << (HiveSql.T_COUNT - 32)) | (1 << (HiveSql.T_COUNT_BIG - 32)) | (1 << (HiveSql.T_CREATE - 32)) | (1 << (HiveSql.T_CREATION - 32)) | (1 << (HiveSql.T_CREATOR - 32)) | (1 << (HiveSql.T_CS - 32)) | (1 << (HiveSql.T_CURRENT - 32)) | (1 << (HiveSql.T_CURRENT_SCHEMA - 32)) | (1 << (HiveSql.T_CURSOR - 32)) | (1 << (HiveSql.T_DATABASE - 32)) | (1 << (HiveSql.T_DATA - 32)) | (1 << (HiveSql.T_DATE - 32)))) !== 0) || ((((_la - 64)) & ~0x1f) == 0 && ((1 << (_la - 64)) & ((1 << (HiveSql.T_DATETIME - 64)) | (1 << (HiveSql.T_DAY - 64)) | (1 << (HiveSql.T_DAYS - 64)) | (1 << (HiveSql.T_DEC - 64)) | (1 << (HiveSql.T_DECIMAL - 64)) | (1 << (HiveSql.T_DECLARE - 64)) | (1 << (HiveSql.T_DEFAULT - 64)) | (1 << (HiveSql.T_DEFERRED - 64)) | (1 << (HiveSql.T_DEFINED - 64)) | (1 << (HiveSql.T_DEFINER - 64)) | (1 << (HiveSql.T_DEFINITION - 64)) | (1 << (HiveSql.T_DELETE - 64)) | (1 << (HiveSql.T_DELIMITED - 64)) | (1 << (HiveSql.T_DELIMITER - 64)) | (1 << (HiveSql.T_DESC - 64)) | (1 << (HiveSql.T_DESCRIBE - 64)) | (1 << (HiveSql.T_DIAGNOSTICS - 64)) | (1 << (HiveSql.T_DIR - 64)) | (1 << (HiveSql.T_DIRECTORY - 64)) | (1 << (HiveSql.T_DISTINCT - 64)) | (1 << (HiveSql.T_DISTRIBUTE - 64)) | (1 << (HiveSql.T_DO - 64)) | (1 << (HiveSql.T_DOUBLE - 64)) | (1 << (HiveSql.T_DROP - 64)) | (1 << (HiveSql.T_DYNAMIC - 64)) | (1 << (HiveSql.T_ENABLE - 64)) | (1 << (HiveSql.T_ENGINE - 64)) | (1 << (HiveSql.T_ESCAPED - 64)))) !== 0) || ((((_la - 96)) & ~0x1f) == 0 && ((1 << (_la - 96)) & ((1 << (HiveSql.T_EXCEPT - 96)) | (1 << (HiveSql.T_EXEC - 96)) | (1 << (HiveSql.T_EXECUTE - 96)) | (1 << (HiveSql.T_EXCEPTION - 96)) | (1 << (HiveSql.T_EXCLUSIVE - 96)) | (1 << (HiveSql.T_EXISTS - 96)) | (1 << (HiveSql.T_EXIT - 96)) | (1 << (HiveSql.T_FALLBACK - 96)) | (1 << (HiveSql.T_FALSE - 96)) | (1 << (HiveSql.T_FETCH - 96)) | (1 << (HiveSql.T_FIELDS - 96)) | (1 << (HiveSql.T_FILE - 96)) | (1 << (HiveSql.T_FILES - 96)) | (1 << (HiveSql.T_FLOAT - 96)) | (1 << (HiveSql.T_FOR - 96)) | (1 << (HiveSql.T_FOREIGN - 96)) | (1 << (HiveSql.T_FORMAT - 96)) | (1 << (HiveSql.T_FOUND - 96)) | (1 << (HiveSql.T_FROM - 96)) | (1 << (HiveSql.T_FULL - 96)) | (1 << (HiveSql.T_FUNCTION - 96)) | (1 << (HiveSql.T_GET - 96)) | (1 << (HiveSql.T_GLOBAL - 96)) | (1 << (HiveSql.T_GO - 96)) | (1 << (HiveSql.T_GRANT - 96)) | (1 << (HiveSql.T_GROUP - 96)) | (1 << (HiveSql.T_HANDLER - 96)) | (1 << (HiveSql.T_HASH - 96)) | (1 << (HiveSql.T_HAVING - 96)) | (1 << (HiveSql.T_HDFS - 96)) | (1 << (HiveSql.T_HIVE - 96)) | (1 << (HiveSql.T_HOST - 96)))) !== 0) || ((((_la - 128)) & ~0x1f) == 0 && ((1 << (_la - 128)) & ((1 << (HiveSql.T_IDENTITY - 128)) | (1 << (HiveSql.T_IF - 128)) | (1 << (HiveSql.T_IGNORE - 128)) | (1 << (HiveSql.T_IMMEDIATE - 128)) | (1 << (HiveSql.T_IN - 128)) | (1 << (HiveSql.T_INCLUDE - 128)) | (1 << (HiveSql.T_INDEX - 128)) | (1 << (HiveSql.T_INITRANS - 128)) | (1 << (HiveSql.T_INNER - 128)) | (1 << (HiveSql.T_INOUT - 128)) | (1 << (HiveSql.T_INSERT - 128)) | (1 << (HiveSql.T_INT - 128)) | (1 << (HiveSql.T_INT2 - 128)) | (1 << (HiveSql.T_INT4 - 128)) | (1 << (HiveSql.T_INT8 - 128)) | (1 << (HiveSql.T_INTEGER - 128)) | (1 << (HiveSql.T_INTERSECT - 128)) | (1 << (HiveSql.T_INTERVAL - 128)) | (1 << (HiveSql.T_INTO - 128)) | (1 << (HiveSql.T_INVOKER - 128)) | (1 << (HiveSql.T_IS - 128)) | (1 << (HiveSql.T_ISOPEN - 128)) | (1 << (HiveSql.T_ITEMS - 128)) | (1 << (HiveSql.T_JOIN - 128)) | (1 << (HiveSql.T_KEEP - 128)) | (1 << (HiveSql.T_KEY - 128)) | (1 << (HiveSql.T_KEYS - 128)) | (1 << (HiveSql.T_LANGUAGE - 128)) | (1 << (HiveSql.T_LEAVE - 128)) | (1 << (HiveSql.T_LEFT - 128)) | (1 << (HiveSql.T_LIKE - 128)) | (1 << (HiveSql.T_LIMIT - 128)))) !== 0) || ((((_la - 160)) & ~0x1f) == 0 && ((1 << (_la - 160)) & ((1 << (HiveSql.T_LINES - 160)) | (1 << (HiveSql.T_LOCAL - 160)) | (1 << (HiveSql.T_LOCATION - 160)) | (1 << (HiveSql.T_LOCATOR - 160)) | (1 << (HiveSql.T_LOCATORS - 160)) | (1 << (HiveSql.T_LOCKS - 160)) | (1 << (HiveSql.T_LOG - 160)) | (1 << (HiveSql.T_LOGGED - 160)) | (1 << (HiveSql.T_LOGGING - 160)) | (1 << (HiveSql.T_LOOP - 160)) | (1 << (HiveSql.T_MAP - 160)) | (1 << (HiveSql.T_MATCHED - 160)) | (1 << (HiveSql.T_MAX - 160)) | (1 << (HiveSql.T_MAXTRANS - 160)) | (1 << (HiveSql.T_MERGE - 160)) | (1 << (HiveSql.T_MESSAGE_TEXT - 160)) | (1 << (HiveSql.T_MICROSECOND - 160)) | (1 << (HiveSql.T_MICROSECONDS - 160)) | (1 << (HiveSql.T_MIN - 160)) | (1 << (HiveSql.T_MULTISET - 160)) | (1 << (HiveSql.T_NCHAR - 160)) | (1 << (HiveSql.T_NEW - 160)) | (1 << (HiveSql.T_NVARCHAR - 160)) | (1 << (HiveSql.T_NO - 160)) | (1 << (HiveSql.T_NOCOUNT - 160)) | (1 << (HiveSql.T_NOCOMPRESS - 160)) | (1 << (HiveSql.T_NOLOGGING - 160)) | (1 << (HiveSql.T_NONE - 160)) | (1 << (HiveSql.T_NOT - 160)) | (1 << (HiveSql.T_NOTFOUND - 160)) | (1 << (HiveSql.T_NUMERIC - 160)))) !== 0) || ((((_la - 192)) & ~0x1f) == 0 && ((1 << (_la - 192)) & ((1 << (HiveSql.T_NUMBER - 192)) | (1 << (HiveSql.T_OBJECT - 192)) | (1 << (HiveSql.T_OFF - 192)) | (1 << (HiveSql.T_ON - 192)) | (1 << (HiveSql.T_ONLY - 192)) | (1 << (HiveSql.T_OPEN - 192)) | (1 << (HiveSql.T_OR - 192)) | (1 << (HiveSql.T_ORDER - 192)) | (1 << (HiveSql.T_OUT - 192)) | (1 << (HiveSql.T_OUTER - 192)) | (1 << (HiveSql.T_OVER - 192)) | (1 << (HiveSql.T_OVERWRITE - 192)) | (1 << (HiveSql.T_OWNER - 192)) | (1 << (HiveSql.T_PACKAGE - 192)) | (1 << (HiveSql.T_PARTITION - 192)) | (1 << (HiveSql.T_PCTFREE - 192)) | (1 << (HiveSql.T_PCTUSED - 192)) | (1 << (HiveSql.T_PRECISION - 192)) | (1 << (HiveSql.T_PRESERVE - 192)) | (1 << (HiveSql.T_PRIMARY - 192)) | (1 << (HiveSql.T_PRINT - 192)) | (1 << (HiveSql.T_PROC - 192)) | (1 << (HiveSql.T_PROCEDURE - 192)) | (1 << (HiveSql.T_QUALIFY - 192)) | (1 << (HiveSql.T_QUERY_BAND - 192)) | (1 << (HiveSql.T_QUIT - 192)) | (1 << (HiveSql.T_QUOTED_IDENTIFIER - 192)) | (1 << (HiveSql.T_RAISE - 192)) | (1 << (HiveSql.T_REAL - 192)) | (1 << (HiveSql.T_REFERENCES - 192)) | (1 << (HiveSql.T_REGEXP - 192)))) !== 0) || ((((_la - 224)) & ~0x1f) == 0 && ((1 << (_la - 224)) & ((1 << (HiveSql.T_REPLACE - 224)) | (1 << (HiveSql.T_RESIGNAL - 224)) | (1 << (HiveSql.T_RESTRICT - 224)) | (1 << (HiveSql.T_RESULT - 224)) | (1 << (HiveSql.T_RESULT_SET_LOCATOR - 224)) | (1 << (HiveSql.T_RETURN - 224)) | (1 << (HiveSql.T_RETURNS - 224)) | (1 << (HiveSql.T_REVERSE - 224)) | (1 << (HiveSql.T_RIGHT - 224)) | (1 << (HiveSql.T_RLIKE - 224)) | (1 << (HiveSql.T_ROLE - 224)) | (1 << (HiveSql.T_ROLLBACK - 224)) | (1 << (HiveSql.T_ROW - 224)) | (1 << (HiveSql.T_ROWS - 224)) | (1 << (HiveSql.T_ROW_COUNT - 224)) | (1 << (HiveSql.T_RR - 224)) | (1 << (HiveSql.T_RS - 224)) | (1 << (HiveSql.T_PWD - 224)) | (1 << (HiveSql.T_TRIM - 224)) | (1 << (HiveSql.T_SCHEMA - 224)) | (1 << (HiveSql.T_SECOND - 224)) | (1 << (HiveSql.T_SECONDS - 224)) | (1 << (HiveSql.T_SECURITY - 224)) | (1 << (HiveSql.T_SEGMENT - 224)) | (1 << (HiveSql.T_SEL - 224)) | (1 << (HiveSql.T_SELECT - 224)) | (1 << (HiveSql.T_SET - 224)) | (1 << (HiveSql.T_SESSION - 224)) | (1 << (HiveSql.T_SESSIONS - 224)) | (1 << (HiveSql.T_SETS - 224)) | (1 << (HiveSql.T_SHARE - 224)))) !== 0) || ((((_la - 256)) & ~0x1f) == 0 && ((1 << (_la - 256)) & ((1 << (HiveSql.T_SIGNAL - 256)) | (1 << (HiveSql.T_SIMPLE_DOUBLE - 256)) | (1 << (HiveSql.T_SIMPLE_FLOAT - 256)) | (1 << (HiveSql.T_SMALLDATETIME - 256)) | (1 << (HiveSql.T_SMALLINT - 256)) | (1 << (HiveSql.T_SQL - 256)) | (1 << (HiveSql.T_SQLEXCEPTION - 256)) | (1 << (HiveSql.T_SQLINSERT - 256)) | (1 << (HiveSql.T_SQLSTATE - 256)) | (1 << (HiveSql.T_SQLWARNING - 256)) | (1 << (HiveSql.T_STATS - 256)) | (1 << (HiveSql.T_STATISTICS - 256)) | (1 << (HiveSql.T_STEP - 256)) | (1 << (HiveSql.T_STORAGE - 256)) | (1 << (HiveSql.T_STORED - 256)) | (1 << (HiveSql.T_STRING - 256)) | (1 << (HiveSql.T_SUBDIR - 256)) | (1 << (HiveSql.T_SUBSTRING - 256)) | (1 << (HiveSql.T_SUM - 256)) | (1 << (HiveSql.T_SUMMARY - 256)) | (1 << (HiveSql.T_SYS_REFCURSOR - 256)) | (1 << (HiveSql.T_TABLE - 256)) | (1 << (HiveSql.T_TABLESPACE - 256)) | (1 << (HiveSql.T_TEMPORARY - 256)) | (1 << (HiveSql.T_TERMINATED - 256)) | (1 << (HiveSql.T_TEXTIMAGE_ON - 256)) | (1 << (HiveSql.T_THEN - 256)) | (1 << (HiveSql.T_TIMESTAMP - 256)) | (1 << (HiveSql.T_TITLE - 256)) | (1 << (HiveSql.T_TO - 256)))) !== 0) || ((((_la - 288)) & ~0x1f) == 0 && ((1 << (_la - 288)) & ((1 << (HiveSql.T_TOP - 288)) | (1 << (HiveSql.T_TRANSACTION - 288)) | (1 << (HiveSql.T_TRUE - 288)) | (1 << (HiveSql.T_TRUNCATE - 288)) | (1 << (HiveSql.T_UNIQUE - 288)) | (1 << (HiveSql.T_UPDATE - 288)) | (1 << (HiveSql.T_UR - 288)) | (1 << (HiveSql.T_USE - 288)) | (1 << (HiveSql.T_USING - 288)) | (1 << (HiveSql.T_VALUE - 288)) | (1 << (HiveSql.T_VALUES - 288)) | (1 << (HiveSql.T_VAR - 288)) | (1 << (HiveSql.T_VARCHAR - 288)) | (1 << (HiveSql.T_VARCHAR2 - 288)) | (1 << (HiveSql.T_VARYING - 288)) | (1 << (HiveSql.T_VOLATILE - 288)) | (1 << (HiveSql.T_WHILE - 288)) | (1 << (HiveSql.T_WITH - 288)) | (1 << (HiveSql.T_WITHOUT - 288)) | (1 << (HiveSql.T_WORK - 288)) | (1 << (HiveSql.T_XACT_ABORT - 288)) | (1 << (HiveSql.T_XML - 288)) | (1 << (HiveSql.T_YES - 288)) | (1 << (HiveSql.T_ACTIVITY_COUNT - 288)) | (1 << (HiveSql.T_CUME_DIST - 288)) | (1 << (HiveSql.T_CURRENT_DATE - 288)) | (1 << (HiveSql.T_CURRENT_TIMESTAMP - 288)) | (1 << (HiveSql.T_CURRENT_USER - 288)))) !== 0) || ((((_la - 320)) & ~0x1f) == 0 && ((1 << (_la - 320)) & ((1 << (HiveSql.T_DENSE_RANK - 320)) | (1 << (HiveSql.T_FIRST_VALUE - 320)) | (1 << (HiveSql.T_LAG - 320)) | (1 << (HiveSql.T_LAST_VALUE - 320)) | (1 << (HiveSql.T_LEAD - 320)) | (1 << (HiveSql.T_PART_COUNT - 320)) | (1 << (HiveSql.T_PART_LOC - 320)) | (1 << (HiveSql.T_RANK - 320)) | (1 << (HiveSql.T_ROW_NUMBER - 320)) | (1 << (HiveSql.T_STDEV - 320)) | (1 << (HiveSql.T_SYSDATE - 320)) | (1 << (HiveSql.T_VARIANCE - 320)) | (1 << (HiveSql.T_USER - 320)))) !== 0) || _la===HiveSql.L_ID) { + this.state = 1450; this.package_spec_item(); - this.state = 1454; - this.match(HiveSqlParser.T_SEMICOLON); - this.state = 1460; + this.state = 1451; + this.match(HiveSql.T_SEMICOLON); + this.state = 1457; this._errHandler.sync(this); _la = this._input.LA(1); } @@ -14091,7 +14125,7 @@ function Package_spec_itemContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_package_spec_item; + this.ruleIndex = HiveSql.RULE_package_spec_item; return this; } @@ -14103,7 +14137,7 @@ Package_spec_itemContext.prototype.declare_stmt_item = function() { }; Package_spec_itemContext.prototype.T_FUNCTION = function() { - return this.getToken(HiveSqlParser.T_FUNCTION, 0); + return this.getToken(HiveSql.T_FUNCTION, 0); }; Package_spec_itemContext.prototype.ident = function() { @@ -14119,11 +14153,11 @@ Package_spec_itemContext.prototype.create_routine_params = function() { }; Package_spec_itemContext.prototype.T_PROCEDURE = function() { - return this.getToken(HiveSqlParser.T_PROCEDURE, 0); + return this.getToken(HiveSql.T_PROCEDURE, 0); }; Package_spec_itemContext.prototype.T_PROC = function() { - return this.getToken(HiveSqlParser.T_PROC, 0); + return this.getToken(HiveSql.T_PROC, 0); }; Package_spec_itemContext.prototype.enterRule = function(listener) { @@ -14149,60 +14183,60 @@ Package_spec_itemContext.prototype.accept = function(visitor) { -HiveSqlParser.Package_spec_itemContext = Package_spec_itemContext; +HiveSql.Package_spec_itemContext = Package_spec_itemContext; -HiveSqlParser.prototype.package_spec_item = function() { +HiveSql.prototype.package_spec_item = function() { var localctx = new Package_spec_itemContext(this, this._ctx, this.state); - this.enterRule(localctx, 138, HiveSqlParser.RULE_package_spec_item); + this.enterRule(localctx, 138, HiveSql.RULE_package_spec_item); var _la = 0; // Token type try { - this.state = 1474; + this.state = 1471; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,146,this._ctx); switch(la_) { case 1: this.enterOuterAlt(localctx, 1); - this.state = 1461; + this.state = 1458; this.declare_stmt_item(); break; case 2: this.enterOuterAlt(localctx, 2); - this.state = 1462; - this.match(HiveSqlParser.T_FUNCTION); - this.state = 1463; + this.state = 1459; + this.match(HiveSql.T_FUNCTION); + this.state = 1460; this.ident(); - this.state = 1465; + this.state = 1462; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,144,this._ctx); if(la_===1) { - this.state = 1464; + this.state = 1461; this.create_routine_params(); } - this.state = 1467; + this.state = 1464; this.create_function_return(); break; case 3: this.enterOuterAlt(localctx, 3); - this.state = 1469; + this.state = 1466; _la = this._input.LA(1); - if(!(_la===HiveSqlParser.T_PROCEDURE || _la===HiveSqlParser.T_PROC)) { + if(!(_la===HiveSql.T_PROC || _la===HiveSql.T_PROCEDURE)) { this._errHandler.recoverInline(this); } else { this._errHandler.reportMatch(this); this.consume(); } - this.state = 1470; + this.state = 1467; this.ident(); - this.state = 1472; + this.state = 1469; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,145,this._ctx); if(la_===1) { - this.state = 1471; + this.state = 1468; this.create_routine_params(); } @@ -14233,7 +14267,7 @@ function Create_package_body_stmtContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_create_package_body_stmt; + this.ruleIndex = HiveSql.RULE_create_package_body_stmt; return this; } @@ -14241,11 +14275,11 @@ Create_package_body_stmtContext.prototype = Object.create(antlr4.ParserRuleConte Create_package_body_stmtContext.prototype.constructor = Create_package_body_stmtContext; Create_package_body_stmtContext.prototype.T_PACKAGE = function() { - return this.getToken(HiveSqlParser.T_PACKAGE, 0); + return this.getToken(HiveSql.T_PACKAGE, 0); }; Create_package_body_stmtContext.prototype.T_BODY = function() { - return this.getToken(HiveSqlParser.T_BODY, 0); + return this.getToken(HiveSql.T_BODY, 0); }; Create_package_body_stmtContext.prototype.ident = function(i) { @@ -14264,35 +14298,35 @@ Create_package_body_stmtContext.prototype.package_body = function() { }; Create_package_body_stmtContext.prototype.T_END = function() { - return this.getToken(HiveSqlParser.T_END, 0); + return this.getToken(HiveSql.T_END, 0); }; Create_package_body_stmtContext.prototype.T_AS = function() { - return this.getToken(HiveSqlParser.T_AS, 0); + return this.getToken(HiveSql.T_AS, 0); }; Create_package_body_stmtContext.prototype.T_IS = function() { - return this.getToken(HiveSqlParser.T_IS, 0); + return this.getToken(HiveSql.T_IS, 0); }; Create_package_body_stmtContext.prototype.T_ALTER = function() { - return this.getToken(HiveSqlParser.T_ALTER, 0); + return this.getToken(HiveSql.T_ALTER, 0); }; Create_package_body_stmtContext.prototype.T_CREATE = function() { - return this.getToken(HiveSqlParser.T_CREATE, 0); + return this.getToken(HiveSql.T_CREATE, 0); }; Create_package_body_stmtContext.prototype.T_REPLACE = function() { - return this.getToken(HiveSqlParser.T_REPLACE, 0); + return this.getToken(HiveSql.T_REPLACE, 0); }; Create_package_body_stmtContext.prototype.T_SEMICOLON = function() { - return this.getToken(HiveSqlParser.T_SEMICOLON, 0); + return this.getToken(HiveSql.T_SEMICOLON, 0); }; Create_package_body_stmtContext.prototype.T_OR = function() { - return this.getToken(HiveSqlParser.T_OR, 0); + return this.getToken(HiveSql.T_OR, 0); }; Create_package_body_stmtContext.prototype.enterRule = function(listener) { @@ -14318,72 +14352,72 @@ Create_package_body_stmtContext.prototype.accept = function(visitor) { -HiveSqlParser.Create_package_body_stmtContext = Create_package_body_stmtContext; +HiveSql.Create_package_body_stmtContext = Create_package_body_stmtContext; -HiveSqlParser.prototype.create_package_body_stmt = function() { +HiveSql.prototype.create_package_body_stmt = function() { var localctx = new Create_package_body_stmtContext(this, this._ctx, this.state); - this.enterRule(localctx, 140, HiveSqlParser.RULE_create_package_body_stmt); + this.enterRule(localctx, 140, HiveSql.RULE_create_package_body_stmt); var _la = 0; // Token type try { this.enterOuterAlt(localctx, 1); - this.state = 1483; + this.state = 1480; this._errHandler.sync(this); switch (this._input.LA(1)) { - case HiveSqlParser.T_ALTER: - this.state = 1476; - this.match(HiveSqlParser.T_ALTER); + case HiveSql.T_ALTER: + this.state = 1473; + this.match(HiveSql.T_ALTER); break; - case HiveSqlParser.T_CREATE: + case HiveSql.T_CREATE: + this.state = 1474; + this.match(HiveSql.T_CREATE); this.state = 1477; - this.match(HiveSqlParser.T_CREATE); - this.state = 1480; this._errHandler.sync(this); _la = this._input.LA(1); - if(_la===HiveSqlParser.T_OR) { - this.state = 1478; - this.match(HiveSqlParser.T_OR); - this.state = 1479; - this.match(HiveSqlParser.T_REPLACE); + if(_la===HiveSql.T_OR) { + this.state = 1475; + this.match(HiveSql.T_OR); + this.state = 1476; + this.match(HiveSql.T_REPLACE); } break; - case HiveSqlParser.T_REPLACE: - this.state = 1482; - this.match(HiveSqlParser.T_REPLACE); + case HiveSql.T_REPLACE: + this.state = 1479; + this.match(HiveSql.T_REPLACE); break; - case HiveSqlParser.T_PACKAGE: + case HiveSql.T_PACKAGE: break; default: break; } - this.state = 1485; - this.match(HiveSqlParser.T_PACKAGE); - this.state = 1486; - this.match(HiveSqlParser.T_BODY); - this.state = 1487; + this.state = 1482; + this.match(HiveSql.T_PACKAGE); + this.state = 1483; + this.match(HiveSql.T_BODY); + this.state = 1484; this.ident(); - this.state = 1488; + this.state = 1485; _la = this._input.LA(1); - if(!(_la===HiveSqlParser.T_AS || _la===HiveSqlParser.T_IS)) { + if(!(_la===HiveSql.T_AS || _la===HiveSql.T_IS)) { this._errHandler.recoverInline(this); } else { this._errHandler.reportMatch(this); this.consume(); } - this.state = 1489; + this.state = 1486; this.package_body(); - this.state = 1490; - this.match(HiveSqlParser.T_END); - this.state = 1494; + this.state = 1487; + this.match(HiveSql.T_END); + this.state = 1491; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,149,this._ctx); if(la_===1) { - this.state = 1491; + this.state = 1488; this.ident(); - this.state = 1492; - this.match(HiveSqlParser.T_SEMICOLON); + this.state = 1489; + this.match(HiveSql.T_SEMICOLON); } } catch (re) { @@ -14410,7 +14444,7 @@ function Package_bodyContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_package_body; + this.ruleIndex = HiveSql.RULE_package_body; return this; } @@ -14433,9 +14467,9 @@ Package_bodyContext.prototype.T_SEMICOLON = function(i) { i = null; } if(i===null) { - return this.getTokens(HiveSqlParser.T_SEMICOLON); + return this.getTokens(HiveSql.T_SEMICOLON); } else { - return this.getToken(HiveSqlParser.T_SEMICOLON, i); + return this.getToken(HiveSql.T_SEMICOLON, i); } }; @@ -14463,28 +14497,28 @@ Package_bodyContext.prototype.accept = function(visitor) { -HiveSqlParser.Package_bodyContext = Package_bodyContext; +HiveSql.Package_bodyContext = Package_bodyContext; -HiveSqlParser.prototype.package_body = function() { +HiveSql.prototype.package_body = function() { var localctx = new Package_bodyContext(this, this._ctx, this.state); - this.enterRule(localctx, 142, HiveSqlParser.RULE_package_body); + this.enterRule(localctx, 142, HiveSql.RULE_package_body); var _la = 0; // Token type try { this.enterOuterAlt(localctx, 1); - this.state = 1496; + this.state = 1493; this.package_body_item(); - this.state = 1497; - this.match(HiveSqlParser.T_SEMICOLON); - this.state = 1503; + this.state = 1494; + this.match(HiveSql.T_SEMICOLON); + this.state = 1500; this._errHandler.sync(this); _la = this._input.LA(1); - while((((_la) & ~0x1f) == 0 && ((1 << _la) & ((1 << HiveSqlParser.T__8) | (1 << HiveSqlParser.T_GO) | (1 << HiveSqlParser.T_BEGIN) | (1 << HiveSqlParser.T_EXCEPTION) | (1 << HiveSqlParser.L_ID) | (1 << HiveSqlParser.T_THEN) | (1 << HiveSqlParser.T_SET) | (1 << HiveSqlParser.T_ALLOCATE) | (1 << HiveSqlParser.T_CURSOR) | (1 << HiveSqlParser.T_FOR) | (1 << HiveSqlParser.T_RESULT) | (1 << HiveSqlParser.T_PROCEDURE) | (1 << HiveSqlParser.T_ASSOCIATE))) !== 0) || ((((_la - 32)) & ~0x1f) == 0 && ((1 << (_la - 32)) & ((1 << (HiveSqlParser.T_LOCATOR - 32)) | (1 << (HiveSqlParser.T_LOCATORS - 32)) | (1 << (HiveSqlParser.T_WITH - 32)) | (1 << (HiveSqlParser.T_TRANSACTION - 32)) | (1 << (HiveSqlParser.T_BREAK - 32)) | (1 << (HiveSqlParser.T_CALL - 32)) | (1 << (HiveSqlParser.T_DECLARE - 32)) | (1 << (HiveSqlParser.T_AS - 32)) | (1 << (HiveSqlParser.T_CONSTANT - 32)) | (1 << (HiveSqlParser.T_CONDITION - 32)) | (1 << (HiveSqlParser.T_IS - 32)) | (1 << (HiveSqlParser.T_RETURN - 32)) | (1 << (HiveSqlParser.T_ONLY - 32)) | (1 << (HiveSqlParser.T_TO - 32)) | (1 << (HiveSqlParser.T_CALLER - 32)) | (1 << (HiveSqlParser.T_CLIENT - 32)) | (1 << (HiveSqlParser.T_WITHOUT - 32)) | (1 << (HiveSqlParser.T_CONTINUE - 32)) | (1 << (HiveSqlParser.T_EXIT - 32)) | (1 << (HiveSqlParser.T_HANDLER - 32)) | (1 << (HiveSqlParser.T_SQLEXCEPTION - 32)) | (1 << (HiveSqlParser.T_SQLWARNING - 32)) | (1 << (HiveSqlParser.T_NOT - 32)) | (1 << (HiveSqlParser.T_FOUND - 32)) | (1 << (HiveSqlParser.T_GLOBAL - 32)) | (1 << (HiveSqlParser.T_TEMPORARY - 32)) | (1 << (HiveSqlParser.T_TABLE - 32)) | (1 << (HiveSqlParser.T_CREATE - 32)) | (1 << (HiveSqlParser.T_IF - 32)) | (1 << (HiveSqlParser.T_EXISTS - 32)) | (1 << (HiveSqlParser.T_LOCAL - 32)) | (1 << (HiveSqlParser.T_MULTISET - 32)))) !== 0) || ((((_la - 64)) & ~0x1f) == 0 && ((1 << (_la - 64)) & ((1 << (HiveSqlParser.T_VOLATILE - 64)) | (1 << (HiveSqlParser.T_LIKE - 64)) | (1 << (HiveSqlParser.T_CONSTRAINT - 64)) | (1 << (HiveSqlParser.T_PRIMARY - 64)) | (1 << (HiveSqlParser.T_KEY - 64)) | (1 << (HiveSqlParser.T_UNIQUE - 64)) | (1 << (HiveSqlParser.T_REFERENCES - 64)) | (1 << (HiveSqlParser.T_IDENTITY - 64)) | (1 << (HiveSqlParser.T_AUTO_INCREMENT - 64)) | (1 << (HiveSqlParser.T_ENABLE - 64)) | (1 << (HiveSqlParser.T_CLUSTERED - 64)) | (1 << (HiveSqlParser.T_ASC - 64)) | (1 << (HiveSqlParser.T_DESC - 64)) | (1 << (HiveSqlParser.T_FOREIGN - 64)) | (1 << (HiveSqlParser.T_ON - 64)) | (1 << (HiveSqlParser.T_UPDATE - 64)) | (1 << (HiveSqlParser.T_DELETE - 64)) | (1 << (HiveSqlParser.T_NO - 64)) | (1 << (HiveSqlParser.T_ACTION - 64)) | (1 << (HiveSqlParser.T_RESTRICT - 64)) | (1 << (HiveSqlParser.T_DEFAULT - 64)) | (1 << (HiveSqlParser.T_CASCADE - 64)) | (1 << (HiveSqlParser.T_LOG - 64)) | (1 << (HiveSqlParser.T_FALLBACK - 64)) | (1 << (HiveSqlParser.T_COMMIT - 64)) | (1 << (HiveSqlParser.T_PRESERVE - 64)) | (1 << (HiveSqlParser.T_ROWS - 64)) | (1 << (HiveSqlParser.T_SEGMENT - 64)) | (1 << (HiveSqlParser.T_CREATION - 64)) | (1 << (HiveSqlParser.T_IMMEDIATE - 64)) | (1 << (HiveSqlParser.T_DEFERRED - 64)))) !== 0) || ((((_la - 96)) & ~0x1f) == 0 && ((1 << (_la - 96)) & ((1 << (HiveSqlParser.T_PCTFREE - 96)) | (1 << (HiveSqlParser.T_PCTUSED - 96)) | (1 << (HiveSqlParser.T_INITRANS - 96)) | (1 << (HiveSqlParser.T_MAXTRANS - 96)) | (1 << (HiveSqlParser.T_NOCOMPRESS - 96)) | (1 << (HiveSqlParser.T_LOGGING - 96)) | (1 << (HiveSqlParser.T_NOLOGGING - 96)) | (1 << (HiveSqlParser.T_STORAGE - 96)) | (1 << (HiveSqlParser.T_TABLESPACE - 96)) | (1 << (HiveSqlParser.T_INDEX - 96)) | (1 << (HiveSqlParser.T_IN - 96)) | (1 << (HiveSqlParser.T_REPLACE - 96)) | (1 << (HiveSqlParser.T_DISTRIBUTE - 96)) | (1 << (HiveSqlParser.T_BY - 96)) | (1 << (HiveSqlParser.T_HASH - 96)) | (1 << (HiveSqlParser.T_LOGGED - 96)) | (1 << (HiveSqlParser.T_COMPRESS - 96)) | (1 << (HiveSqlParser.T_YES - 96)) | (1 << (HiveSqlParser.T_DEFINITION - 96)) | (1 << (HiveSqlParser.T_DROP - 96)) | (1 << (HiveSqlParser.T_DATA - 96)) | (1 << (HiveSqlParser.T_STORED - 96)) | (1 << (HiveSqlParser.T_ROW - 96)) | (1 << (HiveSqlParser.T_FORMAT - 96)) | (1 << (HiveSqlParser.T_DELIMITED - 96)) | (1 << (HiveSqlParser.T_FIELDS - 96)) | (1 << (HiveSqlParser.T_TERMINATED - 96)) | (1 << (HiveSqlParser.T_ESCAPED - 96)) | (1 << (HiveSqlParser.T_COLLECTION - 96)) | (1 << (HiveSqlParser.T_ITEMS - 96)) | (1 << (HiveSqlParser.T_MAP - 96)) | (1 << (HiveSqlParser.T_KEYS - 96)))) !== 0) || ((((_la - 128)) & ~0x1f) == 0 && ((1 << (_la - 128)) & ((1 << (HiveSqlParser.T_LINES - 128)) | (1 << (HiveSqlParser.T_DEFINED - 128)) | (1 << (HiveSqlParser.T_TEXTIMAGE_ON - 128)) | (1 << (HiveSqlParser.T_COMMENT - 128)) | (1 << (HiveSqlParser.T_CHARACTER - 128)) | (1 << (HiveSqlParser.T_CHARSET - 128)) | (1 << (HiveSqlParser.T_ENGINE - 128)) | (1 << (HiveSqlParser.T_ALTER - 128)) | (1 << (HiveSqlParser.T_ADD2 - 128)) | (1 << (HiveSqlParser.T_CHAR - 128)) | (1 << (HiveSqlParser.T_BIGINT - 128)) | (1 << (HiveSqlParser.T_BINARY_DOUBLE - 128)) | (1 << (HiveSqlParser.T_BINARY_FLOAT - 128)) | (1 << (HiveSqlParser.T_BIT - 128)) | (1 << (HiveSqlParser.T_DATE - 128)) | (1 << (HiveSqlParser.T_DATETIME - 128)) | (1 << (HiveSqlParser.T_DEC - 128)) | (1 << (HiveSqlParser.T_DECIMAL - 128)) | (1 << (HiveSqlParser.T_DOUBLE - 128)) | (1 << (HiveSqlParser.T_PRECISION - 128)) | (1 << (HiveSqlParser.T_FLOAT - 128)) | (1 << (HiveSqlParser.T_INT - 128)) | (1 << (HiveSqlParser.T_INT2 - 128)) | (1 << (HiveSqlParser.T_INT4 - 128)) | (1 << (HiveSqlParser.T_INT8 - 128)) | (1 << (HiveSqlParser.T_INTEGER - 128)) | (1 << (HiveSqlParser.T_NCHAR - 128)) | (1 << (HiveSqlParser.T_NVARCHAR - 128)) | (1 << (HiveSqlParser.T_NUMBER - 128)) | (1 << (HiveSqlParser.T_NUMERIC - 128)))) !== 0) || ((((_la - 160)) & ~0x1f) == 0 && ((1 << (_la - 160)) & ((1 << (HiveSqlParser.T_REAL - 160)) | (1 << (HiveSqlParser.T_RESULT_SET_LOCATOR - 160)) | (1 << (HiveSqlParser.T_VARYING - 160)) | (1 << (HiveSqlParser.T_SIMPLE_FLOAT - 160)) | (1 << (HiveSqlParser.T_SIMPLE_DOUBLE - 160)) | (1 << (HiveSqlParser.T_SMALLINT - 160)) | (1 << (HiveSqlParser.T_SMALLDATETIME - 160)) | (1 << (HiveSqlParser.T_STRING - 160)) | (1 << (HiveSqlParser.T_SYS_REFCURSOR - 160)) | (1 << (HiveSqlParser.T_TIMESTAMP - 160)) | (1 << (HiveSqlParser.T_VARCHAR - 160)) | (1 << (HiveSqlParser.T_VARCHAR2 - 160)) | (1 << (HiveSqlParser.T_XML - 160)) | (1 << (HiveSqlParser.T_MAX - 160)) | (1 << (HiveSqlParser.T_BYTE - 160)) | (1 << (HiveSqlParser.T_CASESPECIFIC - 160)) | (1 << (HiveSqlParser.T_CS - 160)) | (1 << (HiveSqlParser.T_DATABASE - 160)) | (1 << (HiveSqlParser.T_SCHEMA - 160)) | (1 << (HiveSqlParser.T_LOCATION - 160)) | (1 << (HiveSqlParser.T_OR - 160)) | (1 << (HiveSqlParser.T_FUNCTION - 160)) | (1 << (HiveSqlParser.T_RETURNS - 160)) | (1 << (HiveSqlParser.T_PACKAGE - 160)) | (1 << (HiveSqlParser.T_PROC - 160)) | (1 << (HiveSqlParser.T_BODY - 160)) | (1 << (HiveSqlParser.T_OUT - 160)) | (1 << (HiveSqlParser.T_INOUT - 160)))) !== 0) || ((((_la - 192)) & ~0x1f) == 0 && ((1 << (_la - 192)) & ((1 << (HiveSqlParser.T_LANGUAGE - 192)) | (1 << (HiveSqlParser.T_SQL - 192)) | (1 << (HiveSqlParser.T_SECURITY - 192)) | (1 << (HiveSqlParser.T_CREATOR - 192)) | (1 << (HiveSqlParser.T_DEFINER - 192)) | (1 << (HiveSqlParser.T_INVOKER - 192)) | (1 << (HiveSqlParser.T_OWNER - 192)) | (1 << (HiveSqlParser.T_DYNAMIC - 192)) | (1 << (HiveSqlParser.T_SETS - 192)) | (1 << (HiveSqlParser.T_EXEC - 192)) | (1 << (HiveSqlParser.T_EXECUTE - 192)) | (1 << (HiveSqlParser.T_INTO - 192)) | (1 << (HiveSqlParser.T_INCLUDE - 192)) | (1 << (HiveSqlParser.T_INSERT - 192)) | (1 << (HiveSqlParser.T_OVERWRITE - 192)) | (1 << (HiveSqlParser.T_VALUES - 192)) | (1 << (HiveSqlParser.T_DIRECTORY - 192)) | (1 << (HiveSqlParser.T_GET - 192)) | (1 << (HiveSqlParser.T_DIAGNOSTICS - 192)) | (1 << (HiveSqlParser.T_MESSAGE_TEXT - 192)) | (1 << (HiveSqlParser.T_ROW_COUNT - 192)) | (1 << (HiveSqlParser.T_GRANT - 192)) | (1 << (HiveSqlParser.T_ROLE - 192)) | (1 << (HiveSqlParser.T_LEAVE - 192)) | (1 << (HiveSqlParser.T_OBJECT - 192)) | (1 << (HiveSqlParser.T_AT - 192)) | (1 << (HiveSqlParser.T_OPEN - 192)) | (1 << (HiveSqlParser.T_FETCH - 192)) | (1 << (HiveSqlParser.T_FROM - 192)))) !== 0) || ((((_la - 224)) & ~0x1f) == 0 && ((1 << (_la - 224)) & ((1 << (HiveSqlParser.T_COLLECT - 224)) | (1 << (HiveSqlParser.T_STATISTICS - 224)) | (1 << (HiveSqlParser.T_STATS - 224)) | (1 << (HiveSqlParser.T_COLUMN - 224)) | (1 << (HiveSqlParser.T_CLOSE - 224)) | (1 << (HiveSqlParser.T_CMP - 224)) | (1 << (HiveSqlParser.T_SUM - 224)) | (1 << (HiveSqlParser.T_COPY - 224)) | (1 << (HiveSqlParser.T_HDFS - 224)) | (1 << (HiveSqlParser.T_BATCHSIZE - 224)) | (1 << (HiveSqlParser.T_DELIMITER - 224)) | (1 << (HiveSqlParser.T_SQLINSERT - 224)) | (1 << (HiveSqlParser.T_IGNORE - 224)) | (1 << (HiveSqlParser.T_WORK - 224)) | (1 << (HiveSqlParser.T_PRINT - 224)) | (1 << (HiveSqlParser.T_QUIT - 224)) | (1 << (HiveSqlParser.T_RAISE - 224)) | (1 << (HiveSqlParser.T_RESIGNAL - 224)) | (1 << (HiveSqlParser.T_SQLSTATE - 224)) | (1 << (HiveSqlParser.T_VALUE - 224)) | (1 << (HiveSqlParser.T_ROLLBACK - 224)) | (1 << (HiveSqlParser.T_CURRENT - 224)) | (1 << (HiveSqlParser.T_CURRENT_SCHEMA - 224)) | (1 << (HiveSqlParser.T_ANSI_NULLS - 224)) | (1 << (HiveSqlParser.T_ANSI_PADDING - 224)) | (1 << (HiveSqlParser.T_NOCOUNT - 224)) | (1 << (HiveSqlParser.T_QUOTED_IDENTIFIER - 224)) | (1 << (HiveSqlParser.T_XACT_ABORT - 224)) | (1 << (HiveSqlParser.T_OFF - 224)) | (1 << (HiveSqlParser.T_QUERY_BAND - 224)) | (1 << (HiveSqlParser.T_NONE - 224)) | (1 << (HiveSqlParser.T_SESSION - 224)))) !== 0) || ((((_la - 256)) & ~0x1f) == 0 && ((1 << (_la - 256)) & ((1 << (HiveSqlParser.T_SIGNAL - 256)) | (1 << (HiveSqlParser.T_SUMMARY - 256)) | (1 << (HiveSqlParser.T_TOP - 256)) | (1 << (HiveSqlParser.T_LIMIT - 256)) | (1 << (HiveSqlParser.T_TRUNCATE - 256)) | (1 << (HiveSqlParser.T_USE - 256)) | (1 << (HiveSqlParser.T_WHILE - 256)) | (1 << (HiveSqlParser.T_DO - 256)) | (1 << (HiveSqlParser.T_LOOP - 256)) | (1 << (HiveSqlParser.T_REVERSE - 256)) | (1 << (HiveSqlParser.T_STEP - 256)) | (1 << (HiveSqlParser.T_USING - 256)) | (1 << (HiveSqlParser.T_ALL - 256)) | (1 << (HiveSqlParser.T_EXCEPT - 256)) | (1 << (HiveSqlParser.T_INTERSECT - 256)) | (1 << (HiveSqlParser.T_SELECT - 256)) | (1 << (HiveSqlParser.T_SEL - 256)) | (1 << (HiveSqlParser.T_DISTINCT - 256)) | (1 << (HiveSqlParser.T_TITLE - 256)) | (1 << (HiveSqlParser.T_INNER - 256)) | (1 << (HiveSqlParser.T_JOIN - 256)) | (1 << (HiveSqlParser.T_LEFT - 256)) | (1 << (HiveSqlParser.T_RIGHT - 256)) | (1 << (HiveSqlParser.T_FULL - 256)) | (1 << (HiveSqlParser.T_OUTER - 256)))) !== 0) || ((((_la - 288)) & ~0x1f) == 0 && ((1 << (_la - 288)) & ((1 << (HiveSqlParser.T_GROUP - 288)) | (1 << (HiveSqlParser.T_HAVING - 288)) | (1 << (HiveSqlParser.T_QUALIFY - 288)) | (1 << (HiveSqlParser.T_ORDER - 288)) | (1 << (HiveSqlParser.T_RR - 288)) | (1 << (HiveSqlParser.T_RS - 288)) | (1 << (HiveSqlParser.T_UR - 288)) | (1 << (HiveSqlParser.T_AND - 288)) | (1 << (HiveSqlParser.T_KEEP - 288)) | (1 << (HiveSqlParser.T_EXCLUSIVE - 288)) | (1 << (HiveSqlParser.T_SHARE - 288)) | (1 << (HiveSqlParser.T_LOCKS - 288)) | (1 << (HiveSqlParser.T_MERGE - 288)) | (1 << (HiveSqlParser.T_MATCHED - 288)) | (1 << (HiveSqlParser.T_DESCRIBE - 288)) | (1 << (HiveSqlParser.T_BETWEEN - 288)) | (1 << (HiveSqlParser.T_RLIKE - 288)) | (1 << (HiveSqlParser.T_REGEXP - 288)) | (1 << (HiveSqlParser.T_INTERVAL - 288)) | (1 << (HiveSqlParser.T_DAY - 288)) | (1 << (HiveSqlParser.T_DAYS - 288)) | (1 << (HiveSqlParser.T_MICROSECOND - 288)) | (1 << (HiveSqlParser.T_MICROSECONDS - 288)))) !== 0) || ((((_la - 320)) & ~0x1f) == 0 && ((1 << (_la - 320)) & ((1 << (HiveSqlParser.T_SECOND - 320)) | (1 << (HiveSqlParser.T_SECONDS - 320)) | (1 << (HiveSqlParser.T_CONCAT - 320)) | (1 << (HiveSqlParser.T_CASE - 320)) | (1 << (HiveSqlParser.T_ISOPEN - 320)) | (1 << (HiveSqlParser.T_NOTFOUND - 320)) | (1 << (HiveSqlParser.T_AVG - 320)) | (1 << (HiveSqlParser.T_COUNT - 320)) | (1 << (HiveSqlParser.T_COUNT_BIG - 320)) | (1 << (HiveSqlParser.T_CUME_DIST - 320)) | (1 << (HiveSqlParser.T_DENSE_RANK - 320)) | (1 << (HiveSqlParser.T_FIRST_VALUE - 320)) | (1 << (HiveSqlParser.T_LAG - 320)) | (1 << (HiveSqlParser.T_LAST_VALUE - 320)) | (1 << (HiveSqlParser.T_LEAD - 320)) | (1 << (HiveSqlParser.T_MIN - 320)) | (1 << (HiveSqlParser.T_RANK - 320)) | (1 << (HiveSqlParser.T_ROW_NUMBER - 320)) | (1 << (HiveSqlParser.T_STDEV - 320)) | (1 << (HiveSqlParser.T_VAR - 320)) | (1 << (HiveSqlParser.T_VARIANCE - 320)) | (1 << (HiveSqlParser.T_OVER - 320)) | (1 << (HiveSqlParser.T_PARTITION - 320)) | (1 << (HiveSqlParser.T_ACTIVITY_COUNT - 320)) | (1 << (HiveSqlParser.T_CAST - 320)) | (1 << (HiveSqlParser.T_CURRENT_DATE - 320)) | (1 << (HiveSqlParser.T_CURRENT_TIMESTAMP - 320)) | (1 << (HiveSqlParser.T_CURRENT_USER - 320)) | (1 << (HiveSqlParser.T_USER - 320)))) !== 0) || ((((_la - 356)) & ~0x1f) == 0 && ((1 << (_la - 356)) & ((1 << (HiveSqlParser.T_PART_COUNT - 356)) | (1 << (HiveSqlParser.T_PART_LOC - 356)) | (1 << (HiveSqlParser.T_TRIM - 356)) | (1 << (HiveSqlParser.T_SUBSTRING - 356)) | (1 << (HiveSqlParser.T_SYSDATE - 356)) | (1 << (HiveSqlParser.T_HIVE - 356)) | (1 << (HiveSqlParser.T_HOST - 356)) | (1 << (HiveSqlParser.T_TRUE - 356)) | (1 << (HiveSqlParser.T_FALSE - 356)) | (1 << (HiveSqlParser.T_DIR - 356)) | (1 << (HiveSqlParser.T_FILE - 356)) | (1 << (HiveSqlParser.T_FILES - 356)) | (1 << (HiveSqlParser.T_NEW - 356)) | (1 << (HiveSqlParser.T_PWD - 356)) | (1 << (HiveSqlParser.T_SESSIONS - 356)) | (1 << (HiveSqlParser.T_SUBDIR - 356)))) !== 0)) { - this.state = 1498; + while((((_la) & ~0x1f) == 0 && ((1 << _la) & ((1 << HiveSql.T_ACTION) | (1 << HiveSql.T_ADD2) | (1 << HiveSql.T_ALL) | (1 << HiveSql.T_ALLOCATE) | (1 << HiveSql.T_ALTER) | (1 << HiveSql.T_AND) | (1 << HiveSql.T_ANSI_NULLS) | (1 << HiveSql.T_ANSI_PADDING) | (1 << HiveSql.T_AS) | (1 << HiveSql.T_ASC) | (1 << HiveSql.T_ASSOCIATE) | (1 << HiveSql.T_AT) | (1 << HiveSql.T_AUTO_INCREMENT) | (1 << HiveSql.T_AVG) | (1 << HiveSql.T_BATCHSIZE) | (1 << HiveSql.T_BEGIN) | (1 << HiveSql.T_BETWEEN) | (1 << HiveSql.T_BIGINT) | (1 << HiveSql.T_BINARY_DOUBLE) | (1 << HiveSql.T_BINARY_FLOAT) | (1 << HiveSql.T_BIT) | (1 << HiveSql.T_BODY) | (1 << HiveSql.T_BREAK) | (1 << HiveSql.T_BY) | (1 << HiveSql.T_BYTE) | (1 << HiveSql.T_CALL) | (1 << HiveSql.T_CALLER) | (1 << HiveSql.T_CASCADE) | (1 << HiveSql.T_CASE) | (1 << HiveSql.T_CASESPECIFIC))) !== 0) || ((((_la - 32)) & ~0x1f) == 0 && ((1 << (_la - 32)) & ((1 << (HiveSql.T_CAST - 32)) | (1 << (HiveSql.T_CHAR - 32)) | (1 << (HiveSql.T_CHARACTER - 32)) | (1 << (HiveSql.T_CHARSET - 32)) | (1 << (HiveSql.T_CLIENT - 32)) | (1 << (HiveSql.T_CLOSE - 32)) | (1 << (HiveSql.T_CLUSTERED - 32)) | (1 << (HiveSql.T_CMP - 32)) | (1 << (HiveSql.T_COLLECT - 32)) | (1 << (HiveSql.T_COLLECTION - 32)) | (1 << (HiveSql.T_COLUMN - 32)) | (1 << (HiveSql.T_COMMENT - 32)) | (1 << (HiveSql.T_CONSTANT - 32)) | (1 << (HiveSql.T_COMMIT - 32)) | (1 << (HiveSql.T_COMPRESS - 32)) | (1 << (HiveSql.T_CONCAT - 32)) | (1 << (HiveSql.T_CONDITION - 32)) | (1 << (HiveSql.T_CONSTRAINT - 32)) | (1 << (HiveSql.T_CONTINUE - 32)) | (1 << (HiveSql.T_COPY - 32)) | (1 << (HiveSql.T_COUNT - 32)) | (1 << (HiveSql.T_COUNT_BIG - 32)) | (1 << (HiveSql.T_CREATE - 32)) | (1 << (HiveSql.T_CREATION - 32)) | (1 << (HiveSql.T_CREATOR - 32)) | (1 << (HiveSql.T_CS - 32)) | (1 << (HiveSql.T_CURRENT - 32)) | (1 << (HiveSql.T_CURRENT_SCHEMA - 32)) | (1 << (HiveSql.T_CURSOR - 32)) | (1 << (HiveSql.T_DATABASE - 32)) | (1 << (HiveSql.T_DATA - 32)) | (1 << (HiveSql.T_DATE - 32)))) !== 0) || ((((_la - 64)) & ~0x1f) == 0 && ((1 << (_la - 64)) & ((1 << (HiveSql.T_DATETIME - 64)) | (1 << (HiveSql.T_DAY - 64)) | (1 << (HiveSql.T_DAYS - 64)) | (1 << (HiveSql.T_DEC - 64)) | (1 << (HiveSql.T_DECIMAL - 64)) | (1 << (HiveSql.T_DECLARE - 64)) | (1 << (HiveSql.T_DEFAULT - 64)) | (1 << (HiveSql.T_DEFERRED - 64)) | (1 << (HiveSql.T_DEFINED - 64)) | (1 << (HiveSql.T_DEFINER - 64)) | (1 << (HiveSql.T_DEFINITION - 64)) | (1 << (HiveSql.T_DELETE - 64)) | (1 << (HiveSql.T_DELIMITED - 64)) | (1 << (HiveSql.T_DELIMITER - 64)) | (1 << (HiveSql.T_DESC - 64)) | (1 << (HiveSql.T_DESCRIBE - 64)) | (1 << (HiveSql.T_DIAGNOSTICS - 64)) | (1 << (HiveSql.T_DIR - 64)) | (1 << (HiveSql.T_DIRECTORY - 64)) | (1 << (HiveSql.T_DISTINCT - 64)) | (1 << (HiveSql.T_DISTRIBUTE - 64)) | (1 << (HiveSql.T_DO - 64)) | (1 << (HiveSql.T_DOUBLE - 64)) | (1 << (HiveSql.T_DROP - 64)) | (1 << (HiveSql.T_DYNAMIC - 64)) | (1 << (HiveSql.T_ENABLE - 64)) | (1 << (HiveSql.T_ENGINE - 64)) | (1 << (HiveSql.T_ESCAPED - 64)))) !== 0) || ((((_la - 96)) & ~0x1f) == 0 && ((1 << (_la - 96)) & ((1 << (HiveSql.T_EXCEPT - 96)) | (1 << (HiveSql.T_EXEC - 96)) | (1 << (HiveSql.T_EXECUTE - 96)) | (1 << (HiveSql.T_EXCEPTION - 96)) | (1 << (HiveSql.T_EXCLUSIVE - 96)) | (1 << (HiveSql.T_EXISTS - 96)) | (1 << (HiveSql.T_EXIT - 96)) | (1 << (HiveSql.T_FALLBACK - 96)) | (1 << (HiveSql.T_FALSE - 96)) | (1 << (HiveSql.T_FETCH - 96)) | (1 << (HiveSql.T_FIELDS - 96)) | (1 << (HiveSql.T_FILE - 96)) | (1 << (HiveSql.T_FILES - 96)) | (1 << (HiveSql.T_FLOAT - 96)) | (1 << (HiveSql.T_FOR - 96)) | (1 << (HiveSql.T_FOREIGN - 96)) | (1 << (HiveSql.T_FORMAT - 96)) | (1 << (HiveSql.T_FOUND - 96)) | (1 << (HiveSql.T_FROM - 96)) | (1 << (HiveSql.T_FULL - 96)) | (1 << (HiveSql.T_FUNCTION - 96)) | (1 << (HiveSql.T_GET - 96)) | (1 << (HiveSql.T_GLOBAL - 96)) | (1 << (HiveSql.T_GO - 96)) | (1 << (HiveSql.T_GRANT - 96)) | (1 << (HiveSql.T_GROUP - 96)) | (1 << (HiveSql.T_HANDLER - 96)) | (1 << (HiveSql.T_HASH - 96)) | (1 << (HiveSql.T_HAVING - 96)) | (1 << (HiveSql.T_HDFS - 96)) | (1 << (HiveSql.T_HIVE - 96)) | (1 << (HiveSql.T_HOST - 96)))) !== 0) || ((((_la - 128)) & ~0x1f) == 0 && ((1 << (_la - 128)) & ((1 << (HiveSql.T_IDENTITY - 128)) | (1 << (HiveSql.T_IF - 128)) | (1 << (HiveSql.T_IGNORE - 128)) | (1 << (HiveSql.T_IMMEDIATE - 128)) | (1 << (HiveSql.T_IN - 128)) | (1 << (HiveSql.T_INCLUDE - 128)) | (1 << (HiveSql.T_INDEX - 128)) | (1 << (HiveSql.T_INITRANS - 128)) | (1 << (HiveSql.T_INNER - 128)) | (1 << (HiveSql.T_INOUT - 128)) | (1 << (HiveSql.T_INSERT - 128)) | (1 << (HiveSql.T_INT - 128)) | (1 << (HiveSql.T_INT2 - 128)) | (1 << (HiveSql.T_INT4 - 128)) | (1 << (HiveSql.T_INT8 - 128)) | (1 << (HiveSql.T_INTEGER - 128)) | (1 << (HiveSql.T_INTERSECT - 128)) | (1 << (HiveSql.T_INTERVAL - 128)) | (1 << (HiveSql.T_INTO - 128)) | (1 << (HiveSql.T_INVOKER - 128)) | (1 << (HiveSql.T_IS - 128)) | (1 << (HiveSql.T_ISOPEN - 128)) | (1 << (HiveSql.T_ITEMS - 128)) | (1 << (HiveSql.T_JOIN - 128)) | (1 << (HiveSql.T_KEEP - 128)) | (1 << (HiveSql.T_KEY - 128)) | (1 << (HiveSql.T_KEYS - 128)) | (1 << (HiveSql.T_LANGUAGE - 128)) | (1 << (HiveSql.T_LEAVE - 128)) | (1 << (HiveSql.T_LEFT - 128)) | (1 << (HiveSql.T_LIKE - 128)) | (1 << (HiveSql.T_LIMIT - 128)))) !== 0) || ((((_la - 160)) & ~0x1f) == 0 && ((1 << (_la - 160)) & ((1 << (HiveSql.T_LINES - 160)) | (1 << (HiveSql.T_LOCAL - 160)) | (1 << (HiveSql.T_LOCATION - 160)) | (1 << (HiveSql.T_LOCATOR - 160)) | (1 << (HiveSql.T_LOCATORS - 160)) | (1 << (HiveSql.T_LOCKS - 160)) | (1 << (HiveSql.T_LOG - 160)) | (1 << (HiveSql.T_LOGGED - 160)) | (1 << (HiveSql.T_LOGGING - 160)) | (1 << (HiveSql.T_LOOP - 160)) | (1 << (HiveSql.T_MAP - 160)) | (1 << (HiveSql.T_MATCHED - 160)) | (1 << (HiveSql.T_MAX - 160)) | (1 << (HiveSql.T_MAXTRANS - 160)) | (1 << (HiveSql.T_MERGE - 160)) | (1 << (HiveSql.T_MESSAGE_TEXT - 160)) | (1 << (HiveSql.T_MICROSECOND - 160)) | (1 << (HiveSql.T_MICROSECONDS - 160)) | (1 << (HiveSql.T_MIN - 160)) | (1 << (HiveSql.T_MULTISET - 160)) | (1 << (HiveSql.T_NCHAR - 160)) | (1 << (HiveSql.T_NEW - 160)) | (1 << (HiveSql.T_NVARCHAR - 160)) | (1 << (HiveSql.T_NO - 160)) | (1 << (HiveSql.T_NOCOUNT - 160)) | (1 << (HiveSql.T_NOCOMPRESS - 160)) | (1 << (HiveSql.T_NOLOGGING - 160)) | (1 << (HiveSql.T_NONE - 160)) | (1 << (HiveSql.T_NOT - 160)) | (1 << (HiveSql.T_NOTFOUND - 160)) | (1 << (HiveSql.T_NUMERIC - 160)))) !== 0) || ((((_la - 192)) & ~0x1f) == 0 && ((1 << (_la - 192)) & ((1 << (HiveSql.T_NUMBER - 192)) | (1 << (HiveSql.T_OBJECT - 192)) | (1 << (HiveSql.T_OFF - 192)) | (1 << (HiveSql.T_ON - 192)) | (1 << (HiveSql.T_ONLY - 192)) | (1 << (HiveSql.T_OPEN - 192)) | (1 << (HiveSql.T_OR - 192)) | (1 << (HiveSql.T_ORDER - 192)) | (1 << (HiveSql.T_OUT - 192)) | (1 << (HiveSql.T_OUTER - 192)) | (1 << (HiveSql.T_OVER - 192)) | (1 << (HiveSql.T_OVERWRITE - 192)) | (1 << (HiveSql.T_OWNER - 192)) | (1 << (HiveSql.T_PACKAGE - 192)) | (1 << (HiveSql.T_PARTITION - 192)) | (1 << (HiveSql.T_PCTFREE - 192)) | (1 << (HiveSql.T_PCTUSED - 192)) | (1 << (HiveSql.T_PRECISION - 192)) | (1 << (HiveSql.T_PRESERVE - 192)) | (1 << (HiveSql.T_PRIMARY - 192)) | (1 << (HiveSql.T_PRINT - 192)) | (1 << (HiveSql.T_PROC - 192)) | (1 << (HiveSql.T_PROCEDURE - 192)) | (1 << (HiveSql.T_QUALIFY - 192)) | (1 << (HiveSql.T_QUERY_BAND - 192)) | (1 << (HiveSql.T_QUIT - 192)) | (1 << (HiveSql.T_QUOTED_IDENTIFIER - 192)) | (1 << (HiveSql.T_RAISE - 192)) | (1 << (HiveSql.T_REAL - 192)) | (1 << (HiveSql.T_REFERENCES - 192)) | (1 << (HiveSql.T_REGEXP - 192)))) !== 0) || ((((_la - 224)) & ~0x1f) == 0 && ((1 << (_la - 224)) & ((1 << (HiveSql.T_REPLACE - 224)) | (1 << (HiveSql.T_RESIGNAL - 224)) | (1 << (HiveSql.T_RESTRICT - 224)) | (1 << (HiveSql.T_RESULT - 224)) | (1 << (HiveSql.T_RESULT_SET_LOCATOR - 224)) | (1 << (HiveSql.T_RETURN - 224)) | (1 << (HiveSql.T_RETURNS - 224)) | (1 << (HiveSql.T_REVERSE - 224)) | (1 << (HiveSql.T_RIGHT - 224)) | (1 << (HiveSql.T_RLIKE - 224)) | (1 << (HiveSql.T_ROLE - 224)) | (1 << (HiveSql.T_ROLLBACK - 224)) | (1 << (HiveSql.T_ROW - 224)) | (1 << (HiveSql.T_ROWS - 224)) | (1 << (HiveSql.T_ROW_COUNT - 224)) | (1 << (HiveSql.T_RR - 224)) | (1 << (HiveSql.T_RS - 224)) | (1 << (HiveSql.T_PWD - 224)) | (1 << (HiveSql.T_TRIM - 224)) | (1 << (HiveSql.T_SCHEMA - 224)) | (1 << (HiveSql.T_SECOND - 224)) | (1 << (HiveSql.T_SECONDS - 224)) | (1 << (HiveSql.T_SECURITY - 224)) | (1 << (HiveSql.T_SEGMENT - 224)) | (1 << (HiveSql.T_SEL - 224)) | (1 << (HiveSql.T_SELECT - 224)) | (1 << (HiveSql.T_SET - 224)) | (1 << (HiveSql.T_SESSION - 224)) | (1 << (HiveSql.T_SESSIONS - 224)) | (1 << (HiveSql.T_SETS - 224)) | (1 << (HiveSql.T_SHARE - 224)))) !== 0) || ((((_la - 256)) & ~0x1f) == 0 && ((1 << (_la - 256)) & ((1 << (HiveSql.T_SIGNAL - 256)) | (1 << (HiveSql.T_SIMPLE_DOUBLE - 256)) | (1 << (HiveSql.T_SIMPLE_FLOAT - 256)) | (1 << (HiveSql.T_SMALLDATETIME - 256)) | (1 << (HiveSql.T_SMALLINT - 256)) | (1 << (HiveSql.T_SQL - 256)) | (1 << (HiveSql.T_SQLEXCEPTION - 256)) | (1 << (HiveSql.T_SQLINSERT - 256)) | (1 << (HiveSql.T_SQLSTATE - 256)) | (1 << (HiveSql.T_SQLWARNING - 256)) | (1 << (HiveSql.T_STATS - 256)) | (1 << (HiveSql.T_STATISTICS - 256)) | (1 << (HiveSql.T_STEP - 256)) | (1 << (HiveSql.T_STORAGE - 256)) | (1 << (HiveSql.T_STORED - 256)) | (1 << (HiveSql.T_STRING - 256)) | (1 << (HiveSql.T_SUBDIR - 256)) | (1 << (HiveSql.T_SUBSTRING - 256)) | (1 << (HiveSql.T_SUM - 256)) | (1 << (HiveSql.T_SUMMARY - 256)) | (1 << (HiveSql.T_SYS_REFCURSOR - 256)) | (1 << (HiveSql.T_TABLE - 256)) | (1 << (HiveSql.T_TABLESPACE - 256)) | (1 << (HiveSql.T_TEMPORARY - 256)) | (1 << (HiveSql.T_TERMINATED - 256)) | (1 << (HiveSql.T_TEXTIMAGE_ON - 256)) | (1 << (HiveSql.T_THEN - 256)) | (1 << (HiveSql.T_TIMESTAMP - 256)) | (1 << (HiveSql.T_TITLE - 256)) | (1 << (HiveSql.T_TO - 256)))) !== 0) || ((((_la - 288)) & ~0x1f) == 0 && ((1 << (_la - 288)) & ((1 << (HiveSql.T_TOP - 288)) | (1 << (HiveSql.T_TRANSACTION - 288)) | (1 << (HiveSql.T_TRUE - 288)) | (1 << (HiveSql.T_TRUNCATE - 288)) | (1 << (HiveSql.T_UNIQUE - 288)) | (1 << (HiveSql.T_UPDATE - 288)) | (1 << (HiveSql.T_UR - 288)) | (1 << (HiveSql.T_USE - 288)) | (1 << (HiveSql.T_USING - 288)) | (1 << (HiveSql.T_VALUE - 288)) | (1 << (HiveSql.T_VALUES - 288)) | (1 << (HiveSql.T_VAR - 288)) | (1 << (HiveSql.T_VARCHAR - 288)) | (1 << (HiveSql.T_VARCHAR2 - 288)) | (1 << (HiveSql.T_VARYING - 288)) | (1 << (HiveSql.T_VOLATILE - 288)) | (1 << (HiveSql.T_WHILE - 288)) | (1 << (HiveSql.T_WITH - 288)) | (1 << (HiveSql.T_WITHOUT - 288)) | (1 << (HiveSql.T_WORK - 288)) | (1 << (HiveSql.T_XACT_ABORT - 288)) | (1 << (HiveSql.T_XML - 288)) | (1 << (HiveSql.T_YES - 288)) | (1 << (HiveSql.T_ACTIVITY_COUNT - 288)) | (1 << (HiveSql.T_CUME_DIST - 288)) | (1 << (HiveSql.T_CURRENT_DATE - 288)) | (1 << (HiveSql.T_CURRENT_TIMESTAMP - 288)) | (1 << (HiveSql.T_CURRENT_USER - 288)))) !== 0) || ((((_la - 320)) & ~0x1f) == 0 && ((1 << (_la - 320)) & ((1 << (HiveSql.T_DENSE_RANK - 320)) | (1 << (HiveSql.T_FIRST_VALUE - 320)) | (1 << (HiveSql.T_LAG - 320)) | (1 << (HiveSql.T_LAST_VALUE - 320)) | (1 << (HiveSql.T_LEAD - 320)) | (1 << (HiveSql.T_PART_COUNT - 320)) | (1 << (HiveSql.T_PART_LOC - 320)) | (1 << (HiveSql.T_RANK - 320)) | (1 << (HiveSql.T_ROW_NUMBER - 320)) | (1 << (HiveSql.T_STDEV - 320)) | (1 << (HiveSql.T_SYSDATE - 320)) | (1 << (HiveSql.T_VARIANCE - 320)) | (1 << (HiveSql.T_USER - 320)))) !== 0) || _la===HiveSql.L_ID) { + this.state = 1495; this.package_body_item(); - this.state = 1499; - this.match(HiveSqlParser.T_SEMICOLON); - this.state = 1505; + this.state = 1496; + this.match(HiveSql.T_SEMICOLON); + this.state = 1502; this._errHandler.sync(this); _la = this._input.LA(1); } @@ -14512,7 +14546,7 @@ function Package_body_itemContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_package_body_item; + this.ruleIndex = HiveSql.RULE_package_body_item; return this; } @@ -14554,32 +14588,32 @@ Package_body_itemContext.prototype.accept = function(visitor) { -HiveSqlParser.Package_body_itemContext = Package_body_itemContext; +HiveSql.Package_body_itemContext = Package_body_itemContext; -HiveSqlParser.prototype.package_body_item = function() { +HiveSql.prototype.package_body_item = function() { var localctx = new Package_body_itemContext(this, this._ctx, this.state); - this.enterRule(localctx, 144, HiveSqlParser.RULE_package_body_item); + this.enterRule(localctx, 144, HiveSql.RULE_package_body_item); try { - this.state = 1509; + this.state = 1506; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,151,this._ctx); switch(la_) { case 1: this.enterOuterAlt(localctx, 1); - this.state = 1506; + this.state = 1503; this.declare_stmt_item(); break; case 2: this.enterOuterAlt(localctx, 2); - this.state = 1507; + this.state = 1504; this.create_function_stmt(); break; case 3: this.enterOuterAlt(localctx, 3); - this.state = 1508; + this.state = 1505; this.create_procedure_stmt(); break; @@ -14608,7 +14642,7 @@ function Create_procedure_stmtContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_create_procedure_stmt; + this.ruleIndex = HiveSql.RULE_create_procedure_stmt; return this; } @@ -14631,23 +14665,23 @@ Create_procedure_stmtContext.prototype.proc_block = function() { }; Create_procedure_stmtContext.prototype.T_PROCEDURE = function() { - return this.getToken(HiveSqlParser.T_PROCEDURE, 0); + return this.getToken(HiveSql.T_PROCEDURE, 0); }; Create_procedure_stmtContext.prototype.T_PROC = function() { - return this.getToken(HiveSqlParser.T_PROC, 0); + return this.getToken(HiveSql.T_PROC, 0); }; Create_procedure_stmtContext.prototype.T_ALTER = function() { - return this.getToken(HiveSqlParser.T_ALTER, 0); + return this.getToken(HiveSql.T_ALTER, 0); }; Create_procedure_stmtContext.prototype.T_CREATE = function() { - return this.getToken(HiveSqlParser.T_CREATE, 0); + return this.getToken(HiveSql.T_CREATE, 0); }; Create_procedure_stmtContext.prototype.T_REPLACE = function() { - return this.getToken(HiveSqlParser.T_REPLACE, 0); + return this.getToken(HiveSql.T_REPLACE, 0); }; Create_procedure_stmtContext.prototype.create_routine_params = function() { @@ -14667,19 +14701,19 @@ Create_procedure_stmtContext.prototype.label = function() { }; Create_procedure_stmtContext.prototype.T_SEMICOLON = function() { - return this.getToken(HiveSqlParser.T_SEMICOLON, 0); + return this.getToken(HiveSql.T_SEMICOLON, 0); }; Create_procedure_stmtContext.prototype.T_AS = function() { - return this.getToken(HiveSqlParser.T_AS, 0); + return this.getToken(HiveSql.T_AS, 0); }; Create_procedure_stmtContext.prototype.T_IS = function() { - return this.getToken(HiveSqlParser.T_IS, 0); + return this.getToken(HiveSql.T_IS, 0); }; Create_procedure_stmtContext.prototype.T_OR = function() { - return this.getToken(HiveSqlParser.T_OR, 0); + return this.getToken(HiveSql.T_OR, 0); }; Create_procedure_stmtContext.prototype.enterRule = function(listener) { @@ -14705,80 +14739,80 @@ Create_procedure_stmtContext.prototype.accept = function(visitor) { -HiveSqlParser.Create_procedure_stmtContext = Create_procedure_stmtContext; +HiveSql.Create_procedure_stmtContext = Create_procedure_stmtContext; -HiveSqlParser.prototype.create_procedure_stmt = function() { +HiveSql.prototype.create_procedure_stmt = function() { var localctx = new Create_procedure_stmtContext(this, this._ctx, this.state); - this.enterRule(localctx, 146, HiveSqlParser.RULE_create_procedure_stmt); + this.enterRule(localctx, 146, HiveSql.RULE_create_procedure_stmt); var _la = 0; // Token type try { this.enterOuterAlt(localctx, 1); - this.state = 1518; + this.state = 1515; this._errHandler.sync(this); switch (this._input.LA(1)) { - case HiveSqlParser.T_ALTER: - this.state = 1511; - this.match(HiveSqlParser.T_ALTER); + case HiveSql.T_ALTER: + this.state = 1508; + this.match(HiveSql.T_ALTER); break; - case HiveSqlParser.T_CREATE: + case HiveSql.T_CREATE: + this.state = 1509; + this.match(HiveSql.T_CREATE); this.state = 1512; - this.match(HiveSqlParser.T_CREATE); - this.state = 1515; this._errHandler.sync(this); _la = this._input.LA(1); - if(_la===HiveSqlParser.T_OR) { - this.state = 1513; - this.match(HiveSqlParser.T_OR); - this.state = 1514; - this.match(HiveSqlParser.T_REPLACE); + if(_la===HiveSql.T_OR) { + this.state = 1510; + this.match(HiveSql.T_OR); + this.state = 1511; + this.match(HiveSql.T_REPLACE); } break; - case HiveSqlParser.T_REPLACE: - this.state = 1517; - this.match(HiveSqlParser.T_REPLACE); + case HiveSql.T_REPLACE: + this.state = 1514; + this.match(HiveSql.T_REPLACE); break; - case HiveSqlParser.T_PROCEDURE: - case HiveSqlParser.T_PROC: + case HiveSql.T_PROC: + case HiveSql.T_PROCEDURE: break; default: break; } - this.state = 1520; + this.state = 1517; _la = this._input.LA(1); - if(!(_la===HiveSqlParser.T_PROCEDURE || _la===HiveSqlParser.T_PROC)) { + if(!(_la===HiveSql.T_PROC || _la===HiveSql.T_PROCEDURE)) { this._errHandler.recoverInline(this); } else { this._errHandler.reportMatch(this); this.consume(); } - this.state = 1521; + this.state = 1518; this.ident(); - this.state = 1523; + this.state = 1520; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,154,this._ctx); if(la_===1) { - this.state = 1522; + this.state = 1519; this.create_routine_params(); + } + this.state = 1523; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,155,this._ctx); + if(la_===1) { + this.state = 1522; + this.create_routine_options(); + } this.state = 1526; this._errHandler.sync(this); - var la_ = this._interp.adaptivePredict(this._input,155,this._ctx); - if(la_===1) { - this.state = 1525; - this.create_routine_options(); - - } - this.state = 1529; - this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,156,this._ctx); if(la_===1) { - this.state = 1528; + this.state = 1525; _la = this._input.LA(1); - if(!(_la===HiveSqlParser.T_AS || _la===HiveSqlParser.T_IS)) { + if(!(_la===HiveSql.T_AS || _la===HiveSql.T_IS)) { this._errHandler.recoverInline(this); } else { @@ -14787,32 +14821,32 @@ HiveSqlParser.prototype.create_procedure_stmt = function() { } } - this.state = 1532; + this.state = 1529; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,157,this._ctx); if(la_===1) { - this.state = 1531; + this.state = 1528; this.declare_block_inplace(); } - this.state = 1535; + this.state = 1532; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,158,this._ctx); if(la_===1) { - this.state = 1534; + this.state = 1531; this.label(); } - this.state = 1537; + this.state = 1534; this.proc_block(); - this.state = 1541; + this.state = 1538; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,159,this._ctx); if(la_===1) { - this.state = 1538; + this.state = 1535; this.ident(); - this.state = 1539; - this.match(HiveSqlParser.T_SEMICOLON); + this.state = 1536; + this.match(HiveSql.T_SEMICOLON); } } catch (re) { @@ -14839,7 +14873,7 @@ function Create_routine_paramsContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_create_routine_params; + this.ruleIndex = HiveSql.RULE_create_routine_params; return this; } @@ -14847,11 +14881,11 @@ Create_routine_paramsContext.prototype = Object.create(antlr4.ParserRuleContext. Create_routine_paramsContext.prototype.constructor = Create_routine_paramsContext; Create_routine_paramsContext.prototype.T_OPEN_P = function() { - return this.getToken(HiveSqlParser.T_OPEN_P, 0); + return this.getToken(HiveSql.T_OPEN_P, 0); }; Create_routine_paramsContext.prototype.T_CLOSE_P = function() { - return this.getToken(HiveSqlParser.T_CLOSE_P, 0); + return this.getToken(HiveSql.T_CLOSE_P, 0); }; Create_routine_paramsContext.prototype.create_routine_param_item = function(i) { @@ -14870,9 +14904,9 @@ Create_routine_paramsContext.prototype.T_COMMA = function(i) { i = null; } if(i===null) { - return this.getTokens(HiveSqlParser.T_COMMA); + return this.getTokens(HiveSql.T_COMMA); } else { - return this.getToken(HiveSqlParser.T_COMMA, i); + return this.getToken(HiveSql.T_COMMA, i); } }; @@ -14900,70 +14934,70 @@ Create_routine_paramsContext.prototype.accept = function(visitor) { -HiveSqlParser.Create_routine_paramsContext = Create_routine_paramsContext; +HiveSql.Create_routine_paramsContext = Create_routine_paramsContext; -HiveSqlParser.prototype.create_routine_params = function() { +HiveSql.prototype.create_routine_params = function() { var localctx = new Create_routine_paramsContext(this, this._ctx, this.state); - this.enterRule(localctx, 148, HiveSqlParser.RULE_create_routine_params); + this.enterRule(localctx, 148, HiveSql.RULE_create_routine_params); var _la = 0; // Token type try { - this.state = 1565; + this.state = 1562; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,162,this._ctx); switch(la_) { case 1: this.enterOuterAlt(localctx, 1); - this.state = 1543; - this.match(HiveSqlParser.T_OPEN_P); - this.state = 1544; - this.match(HiveSqlParser.T_CLOSE_P); + this.state = 1540; + this.match(HiveSql.T_OPEN_P); + this.state = 1541; + this.match(HiveSql.T_CLOSE_P); break; case 2: this.enterOuterAlt(localctx, 2); - this.state = 1545; - this.match(HiveSqlParser.T_OPEN_P); - this.state = 1546; + this.state = 1542; + this.match(HiveSql.T_OPEN_P); + this.state = 1543; this.create_routine_param_item(); - this.state = 1551; + this.state = 1548; this._errHandler.sync(this); _la = this._input.LA(1); - while(_la===HiveSqlParser.T_COMMA) { - this.state = 1547; - this.match(HiveSqlParser.T_COMMA); - this.state = 1548; + while(_la===HiveSql.T_COMMA) { + this.state = 1544; + this.match(HiveSql.T_COMMA); + this.state = 1545; this.create_routine_param_item(); - this.state = 1553; + this.state = 1550; this._errHandler.sync(this); _la = this._input.LA(1); } - this.state = 1554; - this.match(HiveSqlParser.T_CLOSE_P); + this.state = 1551; + this.match(HiveSql.T_CLOSE_P); break; case 3: this.enterOuterAlt(localctx, 3); - this.state = 1556; - if (!( !this._input.LT(1).getText().equalsIgnoreCase("IS") && - !this._input.LT(1).getText().equalsIgnoreCase("AS") && - !(this._input.LT(1).getText().equalsIgnoreCase("DYNAMIC") && this._input.LT(2).getText().equalsIgnoreCase("RESULT")) + this.state = 1553; + if (!( this._input.LT(1).text.toUpperCase() !== "IS" && + this._input.LT(1).text.toUpperCase() !== "AS" && + !(this._input.LT(1).text.toUpperCase() ==="DYNAMIC" && this._input.LT(2).text.toUpperCase() === "RESULT") )) { - throw new antlr4.error.FailedPredicateException(this, "!this._input.LT(1).getText().equalsIgnoreCase(\"IS\") &&\n !this._input.LT(1).getText().equalsIgnoreCase(\"AS\") &&\n !(this._input.LT(1).getText().equalsIgnoreCase(\"DYNAMIC\") && this._input.LT(2).getText().equalsIgnoreCase(\"RESULT\"))\n "); + throw new antlr4.error.FailedPredicateException(this, "this._input.LT(1).text.toUpperCase() !== \"IS\" &&\n this._input.LT(1).text.toUpperCase() !== \"AS\" &&\n !(this._input.LT(1).text.toUpperCase() ===\"DYNAMIC\" && this._input.LT(2).text.toUpperCase() === \"RESULT\")\n "); } - this.state = 1557; + this.state = 1554; this.create_routine_param_item(); - this.state = 1562; + this.state = 1559; this._errHandler.sync(this); var _alt = this._interp.adaptivePredict(this._input,161,this._ctx) while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { if(_alt===1) { - this.state = 1558; - this.match(HiveSqlParser.T_COMMA); - this.state = 1559; + this.state = 1555; + this.match(HiveSql.T_COMMA); + this.state = 1556; this.create_routine_param_item(); } - this.state = 1564; + this.state = 1561; this._errHandler.sync(this); _alt = this._interp.adaptivePredict(this._input,161,this._ctx); } @@ -14995,7 +15029,7 @@ function Create_routine_param_itemContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_create_routine_param_item; + this.ruleIndex = HiveSql.RULE_create_routine_param_item; return this; } @@ -15011,15 +15045,15 @@ Create_routine_param_itemContext.prototype.dtype = function() { }; Create_routine_param_itemContext.prototype.T_IN = function() { - return this.getToken(HiveSqlParser.T_IN, 0); + return this.getToken(HiveSql.T_IN, 0); }; Create_routine_param_itemContext.prototype.T_OUT = function() { - return this.getToken(HiveSqlParser.T_OUT, 0); + return this.getToken(HiveSql.T_OUT, 0); }; Create_routine_param_itemContext.prototype.T_INOUT = function() { - return this.getToken(HiveSqlParser.T_INOUT, 0); + return this.getToken(HiveSql.T_INOUT, 0); }; Create_routine_param_itemContext.prototype.dtype_len = function() { @@ -15064,71 +15098,71 @@ Create_routine_param_itemContext.prototype.accept = function(visitor) { -HiveSqlParser.Create_routine_param_itemContext = Create_routine_param_itemContext; +HiveSql.Create_routine_param_itemContext = Create_routine_param_itemContext; -HiveSqlParser.prototype.create_routine_param_item = function() { +HiveSql.prototype.create_routine_param_item = function() { var localctx = new Create_routine_param_itemContext(this, this._ctx, this.state); - this.enterRule(localctx, 150, HiveSqlParser.RULE_create_routine_param_item); + this.enterRule(localctx, 150, HiveSql.RULE_create_routine_param_item); try { - this.state = 1609; + this.state = 1606; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,171,this._ctx); switch(la_) { case 1: this.enterOuterAlt(localctx, 1); - this.state = 1572; + this.state = 1569; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,163,this._ctx); if(la_===1) { - this.state = 1567; - this.match(HiveSqlParser.T_IN); + this.state = 1564; + this.match(HiveSql.T_IN); } else if(la_===2) { - this.state = 1568; - this.match(HiveSqlParser.T_OUT); + this.state = 1565; + this.match(HiveSql.T_OUT); } else if(la_===3) { - this.state = 1569; - this.match(HiveSqlParser.T_INOUT); + this.state = 1566; + this.match(HiveSql.T_INOUT); } else if(la_===4) { - this.state = 1570; - this.match(HiveSqlParser.T_IN); - this.state = 1571; - this.match(HiveSqlParser.T_OUT); + this.state = 1567; + this.match(HiveSql.T_IN); + this.state = 1568; + this.match(HiveSql.T_OUT); } - this.state = 1574; + this.state = 1571; this.ident(); - this.state = 1575; + this.state = 1572; this.dtype(); - this.state = 1577; + this.state = 1574; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,164,this._ctx); if(la_===1) { - this.state = 1576; + this.state = 1573; this.dtype_len(); } - this.state = 1582; + this.state = 1579; this._errHandler.sync(this); var _alt = this._interp.adaptivePredict(this._input,165,this._ctx) while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { if(_alt===1) { - this.state = 1579; + this.state = 1576; this.dtype_attr(); } - this.state = 1584; + this.state = 1581; this._errHandler.sync(this); _alt = this._interp.adaptivePredict(this._input,165,this._ctx); } - this.state = 1586; + this.state = 1583; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,166,this._ctx); if(la_===1) { - this.state = 1585; + this.state = 1582; this.dtype_default(); } @@ -15136,58 +15170,58 @@ HiveSqlParser.prototype.create_routine_param_item = function() { case 2: this.enterOuterAlt(localctx, 2); - this.state = 1588; + this.state = 1585; this.ident(); - this.state = 1594; + this.state = 1591; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,167,this._ctx); if(la_===1) { - this.state = 1589; - this.match(HiveSqlParser.T_IN); + this.state = 1586; + this.match(HiveSql.T_IN); } else if(la_===2) { - this.state = 1590; - this.match(HiveSqlParser.T_OUT); + this.state = 1587; + this.match(HiveSql.T_OUT); } else if(la_===3) { - this.state = 1591; - this.match(HiveSqlParser.T_INOUT); + this.state = 1588; + this.match(HiveSql.T_INOUT); } else if(la_===4) { - this.state = 1592; - this.match(HiveSqlParser.T_IN); - this.state = 1593; - this.match(HiveSqlParser.T_OUT); + this.state = 1589; + this.match(HiveSql.T_IN); + this.state = 1590; + this.match(HiveSql.T_OUT); } - this.state = 1596; + this.state = 1593; this.dtype(); - this.state = 1598; + this.state = 1595; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,168,this._ctx); if(la_===1) { - this.state = 1597; + this.state = 1594; this.dtype_len(); } - this.state = 1603; + this.state = 1600; this._errHandler.sync(this); var _alt = this._interp.adaptivePredict(this._input,169,this._ctx) while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { if(_alt===1) { - this.state = 1600; + this.state = 1597; this.dtype_attr(); } - this.state = 1605; + this.state = 1602; this._errHandler.sync(this); _alt = this._interp.adaptivePredict(this._input,169,this._ctx); } - this.state = 1607; + this.state = 1604; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,170,this._ctx); if(la_===1) { - this.state = 1606; + this.state = 1603; this.dtype_default(); } @@ -15218,7 +15252,7 @@ function Create_routine_optionsContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_create_routine_options; + this.ruleIndex = HiveSql.RULE_create_routine_options; return this; } @@ -15259,27 +15293,27 @@ Create_routine_optionsContext.prototype.accept = function(visitor) { -HiveSqlParser.Create_routine_optionsContext = Create_routine_optionsContext; +HiveSql.Create_routine_optionsContext = Create_routine_optionsContext; -HiveSqlParser.prototype.create_routine_options = function() { +HiveSql.prototype.create_routine_options = function() { var localctx = new Create_routine_optionsContext(this, this._ctx, this.state); - this.enterRule(localctx, 152, HiveSqlParser.RULE_create_routine_options); + this.enterRule(localctx, 152, HiveSql.RULE_create_routine_options); try { this.enterOuterAlt(localctx, 1); - this.state = 1612; + this.state = 1609; this._errHandler.sync(this); var _alt = 1; do { switch (_alt) { case 1: - this.state = 1611; + this.state = 1608; this.create_routine_option(); break; default: throw new antlr4.error.NoViableAltException(this); } - this.state = 1614; + this.state = 1611; this._errHandler.sync(this); _alt = this._interp.adaptivePredict(this._input,172, this._ctx); } while ( _alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER ); @@ -15307,7 +15341,7 @@ function Create_routine_optionContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_create_routine_option; + this.ruleIndex = HiveSql.RULE_create_routine_option; return this; } @@ -15315,47 +15349,47 @@ Create_routine_optionContext.prototype = Object.create(antlr4.ParserRuleContext. Create_routine_optionContext.prototype.constructor = Create_routine_optionContext; Create_routine_optionContext.prototype.T_LANGUAGE = function() { - return this.getToken(HiveSqlParser.T_LANGUAGE, 0); + return this.getToken(HiveSql.T_LANGUAGE, 0); }; Create_routine_optionContext.prototype.T_SQL = function() { - return this.getToken(HiveSqlParser.T_SQL, 0); + return this.getToken(HiveSql.T_SQL, 0); }; Create_routine_optionContext.prototype.T_SECURITY = function() { - return this.getToken(HiveSqlParser.T_SECURITY, 0); + return this.getToken(HiveSql.T_SECURITY, 0); }; Create_routine_optionContext.prototype.T_CREATOR = function() { - return this.getToken(HiveSqlParser.T_CREATOR, 0); + return this.getToken(HiveSql.T_CREATOR, 0); }; Create_routine_optionContext.prototype.T_DEFINER = function() { - return this.getToken(HiveSqlParser.T_DEFINER, 0); + return this.getToken(HiveSql.T_DEFINER, 0); }; Create_routine_optionContext.prototype.T_INVOKER = function() { - return this.getToken(HiveSqlParser.T_INVOKER, 0); + return this.getToken(HiveSql.T_INVOKER, 0); }; Create_routine_optionContext.prototype.T_OWNER = function() { - return this.getToken(HiveSqlParser.T_OWNER, 0); + return this.getToken(HiveSql.T_OWNER, 0); }; Create_routine_optionContext.prototype.T_RESULT = function() { - return this.getToken(HiveSqlParser.T_RESULT, 0); + return this.getToken(HiveSql.T_RESULT, 0); }; Create_routine_optionContext.prototype.T_SETS = function() { - return this.getToken(HiveSqlParser.T_SETS, 0); + return this.getToken(HiveSql.T_SETS, 0); }; Create_routine_optionContext.prototype.L_INT = function() { - return this.getToken(HiveSqlParser.L_INT, 0); + return this.getToken(HiveSql.L_INT, 0); }; Create_routine_optionContext.prototype.T_DYNAMIC = function() { - return this.getToken(HiveSqlParser.T_DYNAMIC, 0); + return this.getToken(HiveSql.T_DYNAMIC, 0); }; Create_routine_optionContext.prototype.enterRule = function(listener) { @@ -15381,33 +15415,33 @@ Create_routine_optionContext.prototype.accept = function(visitor) { -HiveSqlParser.Create_routine_optionContext = Create_routine_optionContext; +HiveSql.Create_routine_optionContext = Create_routine_optionContext; -HiveSqlParser.prototype.create_routine_option = function() { +HiveSql.prototype.create_routine_option = function() { var localctx = new Create_routine_optionContext(this, this._ctx, this.state); - this.enterRule(localctx, 154, HiveSqlParser.RULE_create_routine_option); + this.enterRule(localctx, 154, HiveSql.RULE_create_routine_option); var _la = 0; // Token type try { - this.state = 1627; + this.state = 1624; this._errHandler.sync(this); switch(this._input.LA(1)) { - case HiveSqlParser.T_LANGUAGE: + case HiveSql.T_LANGUAGE: this.enterOuterAlt(localctx, 1); - this.state = 1616; - this.match(HiveSqlParser.T_LANGUAGE); - this.state = 1617; - this.match(HiveSqlParser.T_SQL); + this.state = 1613; + this.match(HiveSql.T_LANGUAGE); + this.state = 1614; + this.match(HiveSql.T_SQL); break; - case HiveSqlParser.T_SQL: + case HiveSql.T_SQL: this.enterOuterAlt(localctx, 2); - this.state = 1618; - this.match(HiveSqlParser.T_SQL); - this.state = 1619; - this.match(HiveSqlParser.T_SECURITY); - this.state = 1620; + this.state = 1615; + this.match(HiveSql.T_SQL); + this.state = 1616; + this.match(HiveSql.T_SECURITY); + this.state = 1617; _la = this._input.LA(1); - if(!(((((_la - 195)) & ~0x1f) == 0 && ((1 << (_la - 195)) & ((1 << (HiveSqlParser.T_CREATOR - 195)) | (1 << (HiveSqlParser.T_DEFINER - 195)) | (1 << (HiveSqlParser.T_INVOKER - 195)) | (1 << (HiveSqlParser.T_OWNER - 195)))) !== 0))) { + if(!(_la===HiveSql.T_CREATOR || _la===HiveSql.T_DEFINER || _la===HiveSql.T_INVOKER || _la===HiveSql.T_OWNER)) { this._errHandler.recoverInline(this); } else { @@ -15415,23 +15449,23 @@ HiveSqlParser.prototype.create_routine_option = function() { this.consume(); } break; - case HiveSqlParser.T_RESULT: - case HiveSqlParser.T_DYNAMIC: + case HiveSql.T_DYNAMIC: + case HiveSql.T_RESULT: this.enterOuterAlt(localctx, 3); - this.state = 1622; + this.state = 1619; this._errHandler.sync(this); _la = this._input.LA(1); - if(_la===HiveSqlParser.T_DYNAMIC) { - this.state = 1621; - this.match(HiveSqlParser.T_DYNAMIC); + if(_la===HiveSql.T_DYNAMIC) { + this.state = 1618; + this.match(HiveSql.T_DYNAMIC); } - this.state = 1624; - this.match(HiveSqlParser.T_RESULT); - this.state = 1625; - this.match(HiveSqlParser.T_SETS); - this.state = 1626; - this.match(HiveSqlParser.L_INT); + this.state = 1621; + this.match(HiveSql.T_RESULT); + this.state = 1622; + this.match(HiveSql.T_SETS); + this.state = 1623; + this.match(HiveSql.L_INT); break; default: throw new antlr4.error.NoViableAltException(this); @@ -15460,7 +15494,7 @@ function Drop_stmtContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_drop_stmt; + this.ruleIndex = HiveSql.RULE_drop_stmt; return this; } @@ -15468,11 +15502,11 @@ Drop_stmtContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); Drop_stmtContext.prototype.constructor = Drop_stmtContext; Drop_stmtContext.prototype.T_DROP = function() { - return this.getToken(HiveSqlParser.T_DROP, 0); + return this.getToken(HiveSql.T_DROP, 0); }; Drop_stmtContext.prototype.T_TABLE = function() { - return this.getToken(HiveSqlParser.T_TABLE, 0); + return this.getToken(HiveSql.T_TABLE, 0); }; Drop_stmtContext.prototype.table_name = function() { @@ -15480,11 +15514,11 @@ Drop_stmtContext.prototype.table_name = function() { }; Drop_stmtContext.prototype.T_IF = function() { - return this.getToken(HiveSqlParser.T_IF, 0); + return this.getToken(HiveSql.T_IF, 0); }; Drop_stmtContext.prototype.T_EXISTS = function() { - return this.getToken(HiveSqlParser.T_EXISTS, 0); + return this.getToken(HiveSql.T_EXISTS, 0); }; Drop_stmtContext.prototype.expr = function() { @@ -15492,11 +15526,11 @@ Drop_stmtContext.prototype.expr = function() { }; Drop_stmtContext.prototype.T_DATABASE = function() { - return this.getToken(HiveSqlParser.T_DATABASE, 0); + return this.getToken(HiveSql.T_DATABASE, 0); }; Drop_stmtContext.prototype.T_SCHEMA = function() { - return this.getToken(HiveSqlParser.T_SCHEMA, 0); + return this.getToken(HiveSql.T_SCHEMA, 0); }; Drop_stmtContext.prototype.enterRule = function(listener) { @@ -15522,62 +15556,62 @@ Drop_stmtContext.prototype.accept = function(visitor) { -HiveSqlParser.Drop_stmtContext = Drop_stmtContext; +HiveSql.Drop_stmtContext = Drop_stmtContext; -HiveSqlParser.prototype.drop_stmt = function() { +HiveSql.prototype.drop_stmt = function() { var localctx = new Drop_stmtContext(this, this._ctx, this.state); - this.enterRule(localctx, 156, HiveSqlParser.RULE_drop_stmt); + this.enterRule(localctx, 156, HiveSql.RULE_drop_stmt); var _la = 0; // Token type try { - this.state = 1643; + this.state = 1640; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,177,this._ctx); switch(la_) { case 1: this.enterOuterAlt(localctx, 1); - this.state = 1629; - this.match(HiveSqlParser.T_DROP); + this.state = 1626; + this.match(HiveSql.T_DROP); + this.state = 1627; + this.match(HiveSql.T_TABLE); this.state = 1630; - this.match(HiveSqlParser.T_TABLE); - this.state = 1633; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,175,this._ctx); if(la_===1) { - this.state = 1631; - this.match(HiveSqlParser.T_IF); - this.state = 1632; - this.match(HiveSqlParser.T_EXISTS); + this.state = 1628; + this.match(HiveSql.T_IF); + this.state = 1629; + this.match(HiveSql.T_EXISTS); } - this.state = 1635; + this.state = 1632; this.table_name(); break; case 2: this.enterOuterAlt(localctx, 2); - this.state = 1636; - this.match(HiveSqlParser.T_DROP); - this.state = 1637; + this.state = 1633; + this.match(HiveSql.T_DROP); + this.state = 1634; _la = this._input.LA(1); - if(!(_la===HiveSqlParser.T_DATABASE || _la===HiveSqlParser.T_SCHEMA)) { + if(!(_la===HiveSql.T_DATABASE || _la===HiveSql.T_SCHEMA)) { this._errHandler.recoverInline(this); } else { this._errHandler.reportMatch(this); this.consume(); } - this.state = 1640; + this.state = 1637; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,176,this._ctx); if(la_===1) { - this.state = 1638; - this.match(HiveSqlParser.T_IF); - this.state = 1639; - this.match(HiveSqlParser.T_EXISTS); + this.state = 1635; + this.match(HiveSql.T_IF); + this.state = 1636; + this.match(HiveSql.T_EXISTS); } - this.state = 1642; + this.state = 1639; this.expr(0); break; @@ -15606,7 +15640,7 @@ function End_transaction_stmtContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_end_transaction_stmt; + this.ruleIndex = HiveSql.RULE_end_transaction_stmt; return this; } @@ -15614,11 +15648,11 @@ End_transaction_stmtContext.prototype = Object.create(antlr4.ParserRuleContext.p End_transaction_stmtContext.prototype.constructor = End_transaction_stmtContext; End_transaction_stmtContext.prototype.T_END = function() { - return this.getToken(HiveSqlParser.T_END, 0); + return this.getToken(HiveSql.T_END, 0); }; End_transaction_stmtContext.prototype.T_TRANSACTION = function() { - return this.getToken(HiveSqlParser.T_TRANSACTION, 0); + return this.getToken(HiveSql.T_TRANSACTION, 0); }; End_transaction_stmtContext.prototype.enterRule = function(listener) { @@ -15644,18 +15678,18 @@ End_transaction_stmtContext.prototype.accept = function(visitor) { -HiveSqlParser.End_transaction_stmtContext = End_transaction_stmtContext; +HiveSql.End_transaction_stmtContext = End_transaction_stmtContext; -HiveSqlParser.prototype.end_transaction_stmt = function() { +HiveSql.prototype.end_transaction_stmt = function() { var localctx = new End_transaction_stmtContext(this, this._ctx, this.state); - this.enterRule(localctx, 158, HiveSqlParser.RULE_end_transaction_stmt); + this.enterRule(localctx, 158, HiveSql.RULE_end_transaction_stmt); try { this.enterOuterAlt(localctx, 1); - this.state = 1645; - this.match(HiveSqlParser.T_END); - this.state = 1646; - this.match(HiveSqlParser.T_TRANSACTION); + this.state = 1642; + this.match(HiveSql.T_END); + this.state = 1643; + this.match(HiveSql.T_TRANSACTION); } catch (re) { if(re instanceof antlr4.error.RecognitionException) { localctx.exception = re; @@ -15680,7 +15714,7 @@ function Exec_stmtContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_exec_stmt; + this.ruleIndex = HiveSql.RULE_exec_stmt; return this; } @@ -15692,19 +15726,19 @@ Exec_stmtContext.prototype.expr = function() { }; Exec_stmtContext.prototype.T_EXEC = function() { - return this.getToken(HiveSqlParser.T_EXEC, 0); + return this.getToken(HiveSql.T_EXEC, 0); }; Exec_stmtContext.prototype.T_EXECUTE = function() { - return this.getToken(HiveSqlParser.T_EXECUTE, 0); + return this.getToken(HiveSql.T_EXECUTE, 0); }; Exec_stmtContext.prototype.T_IMMEDIATE = function() { - return this.getToken(HiveSqlParser.T_IMMEDIATE, 0); + return this.getToken(HiveSql.T_IMMEDIATE, 0); }; Exec_stmtContext.prototype.T_OPEN_P = function() { - return this.getToken(HiveSqlParser.T_OPEN_P, 0); + return this.getToken(HiveSql.T_OPEN_P, 0); }; Exec_stmtContext.prototype.expr_func_params = function() { @@ -15712,11 +15746,11 @@ Exec_stmtContext.prototype.expr_func_params = function() { }; Exec_stmtContext.prototype.T_CLOSE_P = function() { - return this.getToken(HiveSqlParser.T_CLOSE_P, 0); + return this.getToken(HiveSql.T_CLOSE_P, 0); }; Exec_stmtContext.prototype.T_INTO = function() { - return this.getToken(HiveSqlParser.T_INTO, 0); + return this.getToken(HiveSql.T_INTO, 0); }; Exec_stmtContext.prototype.L_ID = function(i) { @@ -15724,9 +15758,9 @@ Exec_stmtContext.prototype.L_ID = function(i) { i = null; } if(i===null) { - return this.getTokens(HiveSqlParser.L_ID); + return this.getTokens(HiveSql.L_ID); } else { - return this.getToken(HiveSqlParser.L_ID, i); + return this.getToken(HiveSql.L_ID, i); } }; @@ -15740,9 +15774,9 @@ Exec_stmtContext.prototype.T_COMMA = function(i) { i = null; } if(i===null) { - return this.getTokens(HiveSqlParser.T_COMMA); + return this.getTokens(HiveSql.T_COMMA); } else { - return this.getToken(HiveSqlParser.T_COMMA, i); + return this.getToken(HiveSql.T_COMMA, i); } }; @@ -15770,80 +15804,80 @@ Exec_stmtContext.prototype.accept = function(visitor) { -HiveSqlParser.Exec_stmtContext = Exec_stmtContext; +HiveSql.Exec_stmtContext = Exec_stmtContext; -HiveSqlParser.prototype.exec_stmt = function() { +HiveSql.prototype.exec_stmt = function() { var localctx = new Exec_stmtContext(this, this._ctx, this.state); - this.enterRule(localctx, 160, HiveSqlParser.RULE_exec_stmt); + this.enterRule(localctx, 160, HiveSql.RULE_exec_stmt); var _la = 0; // Token type try { this.enterOuterAlt(localctx, 1); - this.state = 1648; + this.state = 1645; _la = this._input.LA(1); - if(!(_la===HiveSqlParser.T_EXEC || _la===HiveSqlParser.T_EXECUTE)) { + if(!(_la===HiveSql.T_EXEC || _la===HiveSql.T_EXECUTE)) { this._errHandler.recoverInline(this); } else { this._errHandler.reportMatch(this); this.consume(); } - this.state = 1650; + this.state = 1647; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,178,this._ctx); if(la_===1) { - this.state = 1649; - this.match(HiveSqlParser.T_IMMEDIATE); + this.state = 1646; + this.match(HiveSql.T_IMMEDIATE); } - this.state = 1652; + this.state = 1649; this.expr(0); - this.state = 1658; + this.state = 1655; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,179,this._ctx); if(la_===1) { - this.state = 1653; - this.match(HiveSqlParser.T_OPEN_P); - this.state = 1654; + this.state = 1650; + this.match(HiveSql.T_OPEN_P); + this.state = 1651; this.expr_func_params(); - this.state = 1655; - this.match(HiveSqlParser.T_CLOSE_P); + this.state = 1652; + this.match(HiveSql.T_CLOSE_P); } else if(la_===2) { - this.state = 1657; + this.state = 1654; this.expr_func_params(); } - this.state = 1669; + this.state = 1666; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,181,this._ctx); if(la_===1) { - this.state = 1660; - this.match(HiveSqlParser.T_INTO); - this.state = 1661; - this.match(HiveSqlParser.L_ID); - this.state = 1666; + this.state = 1657; + this.match(HiveSql.T_INTO); + this.state = 1658; + this.match(HiveSql.L_ID); + this.state = 1663; this._errHandler.sync(this); var _alt = this._interp.adaptivePredict(this._input,180,this._ctx) while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { if(_alt===1) { - this.state = 1662; - this.match(HiveSqlParser.T_COMMA); - this.state = 1663; - this.match(HiveSqlParser.L_ID); + this.state = 1659; + this.match(HiveSql.T_COMMA); + this.state = 1660; + this.match(HiveSql.L_ID); } - this.state = 1668; + this.state = 1665; this._errHandler.sync(this); _alt = this._interp.adaptivePredict(this._input,180,this._ctx); } } - this.state = 1672; + this.state = 1669; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,182,this._ctx); if(la_===1) { - this.state = 1671; + this.state = 1668; this.using_clause(); } @@ -15871,7 +15905,7 @@ function If_stmtContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_if_stmt; + this.ruleIndex = HiveSql.RULE_if_stmt; return this; } @@ -15913,32 +15947,32 @@ If_stmtContext.prototype.accept = function(visitor) { -HiveSqlParser.If_stmtContext = If_stmtContext; +HiveSql.If_stmtContext = If_stmtContext; -HiveSqlParser.prototype.if_stmt = function() { +HiveSql.prototype.if_stmt = function() { var localctx = new If_stmtContext(this, this._ctx, this.state); - this.enterRule(localctx, 162, HiveSqlParser.RULE_if_stmt); + this.enterRule(localctx, 162, HiveSql.RULE_if_stmt); try { - this.state = 1677; + this.state = 1674; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,183,this._ctx); switch(la_) { case 1: this.enterOuterAlt(localctx, 1); - this.state = 1674; + this.state = 1671; this.if_plsql_stmt(); break; case 2: this.enterOuterAlt(localctx, 2); - this.state = 1675; + this.state = 1672; this.if_tsql_stmt(); break; case 3: this.enterOuterAlt(localctx, 3); - this.state = 1676; + this.state = 1673; this.if_bteq_stmt(); break; @@ -15967,7 +16001,7 @@ function If_plsql_stmtContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_if_plsql_stmt; + this.ruleIndex = HiveSql.RULE_if_plsql_stmt; return this; } @@ -15979,9 +16013,9 @@ If_plsql_stmtContext.prototype.T_IF = function(i) { i = null; } if(i===null) { - return this.getTokens(HiveSqlParser.T_IF); + return this.getTokens(HiveSql.T_IF); } else { - return this.getToken(HiveSqlParser.T_IF, i); + return this.getToken(HiveSql.T_IF, i); } }; @@ -15991,7 +16025,7 @@ If_plsql_stmtContext.prototype.bool_expr = function() { }; If_plsql_stmtContext.prototype.T_THEN = function() { - return this.getToken(HiveSqlParser.T_THEN, 0); + return this.getToken(HiveSql.T_THEN, 0); }; If_plsql_stmtContext.prototype.block = function() { @@ -15999,7 +16033,7 @@ If_plsql_stmtContext.prototype.block = function() { }; If_plsql_stmtContext.prototype.T_END = function() { - return this.getToken(HiveSqlParser.T_END, 0); + return this.getToken(HiveSql.T_END, 0); }; If_plsql_stmtContext.prototype.elseif_block = function(i) { @@ -16040,45 +16074,45 @@ If_plsql_stmtContext.prototype.accept = function(visitor) { -HiveSqlParser.If_plsql_stmtContext = If_plsql_stmtContext; +HiveSql.If_plsql_stmtContext = If_plsql_stmtContext; -HiveSqlParser.prototype.if_plsql_stmt = function() { +HiveSql.prototype.if_plsql_stmt = function() { var localctx = new If_plsql_stmtContext(this, this._ctx, this.state); - this.enterRule(localctx, 164, HiveSqlParser.RULE_if_plsql_stmt); + this.enterRule(localctx, 164, HiveSql.RULE_if_plsql_stmt); var _la = 0; // Token type try { this.enterOuterAlt(localctx, 1); - this.state = 1679; - this.match(HiveSqlParser.T_IF); - this.state = 1680; + this.state = 1676; + this.match(HiveSql.T_IF); + this.state = 1677; this.bool_expr(0); - this.state = 1681; - this.match(HiveSqlParser.T_THEN); - this.state = 1682; + this.state = 1678; + this.match(HiveSql.T_THEN); + this.state = 1679; this.block(); - this.state = 1686; + this.state = 1683; this._errHandler.sync(this); _la = this._input.LA(1); - while(_la===HiveSqlParser.T_ELSIF || _la===HiveSqlParser.T_ELSEIF) { - this.state = 1683; + while(_la===HiveSql.T_ELSEIF || _la===HiveSql.T_ELSIF) { + this.state = 1680; this.elseif_block(); - this.state = 1688; + this.state = 1685; this._errHandler.sync(this); _la = this._input.LA(1); } - this.state = 1690; + this.state = 1687; this._errHandler.sync(this); _la = this._input.LA(1); - if(_la===HiveSqlParser.T_ELSE) { - this.state = 1689; + if(_la===HiveSql.T_ELSE) { + this.state = 1686; this.else_block(); } - this.state = 1692; - this.match(HiveSqlParser.T_END); - this.state = 1693; - this.match(HiveSqlParser.T_IF); + this.state = 1689; + this.match(HiveSql.T_END); + this.state = 1690; + this.match(HiveSql.T_IF); } catch (re) { if(re instanceof antlr4.error.RecognitionException) { localctx.exception = re; @@ -16103,7 +16137,7 @@ function If_tsql_stmtContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_if_tsql_stmt; + this.ruleIndex = HiveSql.RULE_if_tsql_stmt; return this; } @@ -16111,7 +16145,7 @@ If_tsql_stmtContext.prototype = Object.create(antlr4.ParserRuleContext.prototype If_tsql_stmtContext.prototype.constructor = If_tsql_stmtContext; If_tsql_stmtContext.prototype.T_IF = function() { - return this.getToken(HiveSqlParser.T_IF, 0); + return this.getToken(HiveSql.T_IF, 0); }; If_tsql_stmtContext.prototype.bool_expr = function() { @@ -16130,7 +16164,7 @@ If_tsql_stmtContext.prototype.single_block_stmt = function(i) { }; If_tsql_stmtContext.prototype.T_ELSE = function() { - return this.getToken(HiveSqlParser.T_ELSE, 0); + return this.getToken(HiveSql.T_ELSE, 0); }; If_tsql_stmtContext.prototype.enterRule = function(listener) { @@ -16156,27 +16190,27 @@ If_tsql_stmtContext.prototype.accept = function(visitor) { -HiveSqlParser.If_tsql_stmtContext = If_tsql_stmtContext; +HiveSql.If_tsql_stmtContext = If_tsql_stmtContext; -HiveSqlParser.prototype.if_tsql_stmt = function() { +HiveSql.prototype.if_tsql_stmt = function() { var localctx = new If_tsql_stmtContext(this, this._ctx, this.state); - this.enterRule(localctx, 166, HiveSqlParser.RULE_if_tsql_stmt); + this.enterRule(localctx, 166, HiveSql.RULE_if_tsql_stmt); try { this.enterOuterAlt(localctx, 1); - this.state = 1695; - this.match(HiveSqlParser.T_IF); - this.state = 1696; + this.state = 1692; + this.match(HiveSql.T_IF); + this.state = 1693; this.bool_expr(0); - this.state = 1697; + this.state = 1694; this.single_block_stmt(); - this.state = 1700; + this.state = 1697; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,186,this._ctx); if(la_===1) { - this.state = 1698; - this.match(HiveSqlParser.T_ELSE); - this.state = 1699; + this.state = 1695; + this.match(HiveSql.T_ELSE); + this.state = 1696; this.single_block_stmt(); } @@ -16204,15 +16238,19 @@ function If_bteq_stmtContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_if_bteq_stmt; + this.ruleIndex = HiveSql.RULE_if_bteq_stmt; return this; } If_bteq_stmtContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); If_bteq_stmtContext.prototype.constructor = If_bteq_stmtContext; +If_bteq_stmtContext.prototype.T_DOT = function() { + return this.getToken(HiveSql.T_DOT, 0); +}; + If_bteq_stmtContext.prototype.T_IF = function() { - return this.getToken(HiveSqlParser.T_IF, 0); + return this.getToken(HiveSql.T_IF, 0); }; If_bteq_stmtContext.prototype.bool_expr = function() { @@ -16220,7 +16258,7 @@ If_bteq_stmtContext.prototype.bool_expr = function() { }; If_bteq_stmtContext.prototype.T_THEN = function() { - return this.getToken(HiveSqlParser.T_THEN, 0); + return this.getToken(HiveSql.T_THEN, 0); }; If_bteq_stmtContext.prototype.single_block_stmt = function() { @@ -16250,23 +16288,23 @@ If_bteq_stmtContext.prototype.accept = function(visitor) { -HiveSqlParser.If_bteq_stmtContext = If_bteq_stmtContext; +HiveSql.If_bteq_stmtContext = If_bteq_stmtContext; -HiveSqlParser.prototype.if_bteq_stmt = function() { +HiveSql.prototype.if_bteq_stmt = function() { var localctx = new If_bteq_stmtContext(this, this._ctx, this.state); - this.enterRule(localctx, 168, HiveSqlParser.RULE_if_bteq_stmt); + this.enterRule(localctx, 168, HiveSql.RULE_if_bteq_stmt); try { this.enterOuterAlt(localctx, 1); - this.state = 1702; - this.match(HiveSqlParser.T__4); - this.state = 1703; - this.match(HiveSqlParser.T_IF); - this.state = 1704; + this.state = 1699; + this.match(HiveSql.T_DOT); + this.state = 1700; + this.match(HiveSql.T_IF); + this.state = 1701; this.bool_expr(0); - this.state = 1705; - this.match(HiveSqlParser.T_THEN); - this.state = 1706; + this.state = 1702; + this.match(HiveSql.T_THEN); + this.state = 1703; this.single_block_stmt(); } catch (re) { if(re instanceof antlr4.error.RecognitionException) { @@ -16292,7 +16330,7 @@ function Elseif_blockContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_elseif_block; + this.ruleIndex = HiveSql.RULE_elseif_block; return this; } @@ -16304,7 +16342,7 @@ Elseif_blockContext.prototype.bool_expr = function() { }; Elseif_blockContext.prototype.T_THEN = function() { - return this.getToken(HiveSqlParser.T_THEN, 0); + return this.getToken(HiveSql.T_THEN, 0); }; Elseif_blockContext.prototype.block = function() { @@ -16312,11 +16350,11 @@ Elseif_blockContext.prototype.block = function() { }; Elseif_blockContext.prototype.T_ELSIF = function() { - return this.getToken(HiveSqlParser.T_ELSIF, 0); + return this.getToken(HiveSql.T_ELSIF, 0); }; Elseif_blockContext.prototype.T_ELSEIF = function() { - return this.getToken(HiveSqlParser.T_ELSEIF, 0); + return this.getToken(HiveSql.T_ELSEIF, 0); }; Elseif_blockContext.prototype.enterRule = function(listener) { @@ -16342,29 +16380,29 @@ Elseif_blockContext.prototype.accept = function(visitor) { -HiveSqlParser.Elseif_blockContext = Elseif_blockContext; +HiveSql.Elseif_blockContext = Elseif_blockContext; -HiveSqlParser.prototype.elseif_block = function() { +HiveSql.prototype.elseif_block = function() { var localctx = new Elseif_blockContext(this, this._ctx, this.state); - this.enterRule(localctx, 170, HiveSqlParser.RULE_elseif_block); + this.enterRule(localctx, 170, HiveSql.RULE_elseif_block); var _la = 0; // Token type try { this.enterOuterAlt(localctx, 1); - this.state = 1708; + this.state = 1705; _la = this._input.LA(1); - if(!(_la===HiveSqlParser.T_ELSIF || _la===HiveSqlParser.T_ELSEIF)) { + if(!(_la===HiveSql.T_ELSEIF || _la===HiveSql.T_ELSIF)) { this._errHandler.recoverInline(this); } else { this._errHandler.reportMatch(this); this.consume(); } - this.state = 1709; + this.state = 1706; this.bool_expr(0); - this.state = 1710; - this.match(HiveSqlParser.T_THEN); - this.state = 1711; + this.state = 1707; + this.match(HiveSql.T_THEN); + this.state = 1708; this.block(); } catch (re) { if(re instanceof antlr4.error.RecognitionException) { @@ -16390,7 +16428,7 @@ function Else_blockContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_else_block; + this.ruleIndex = HiveSql.RULE_else_block; return this; } @@ -16398,7 +16436,7 @@ Else_blockContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); Else_blockContext.prototype.constructor = Else_blockContext; Else_blockContext.prototype.T_ELSE = function() { - return this.getToken(HiveSqlParser.T_ELSE, 0); + return this.getToken(HiveSql.T_ELSE, 0); }; Else_blockContext.prototype.block = function() { @@ -16428,17 +16466,17 @@ Else_blockContext.prototype.accept = function(visitor) { -HiveSqlParser.Else_blockContext = Else_blockContext; +HiveSql.Else_blockContext = Else_blockContext; -HiveSqlParser.prototype.else_block = function() { +HiveSql.prototype.else_block = function() { var localctx = new Else_blockContext(this, this._ctx, this.state); - this.enterRule(localctx, 172, HiveSqlParser.RULE_else_block); + this.enterRule(localctx, 172, HiveSql.RULE_else_block); try { this.enterOuterAlt(localctx, 1); - this.state = 1713; - this.match(HiveSqlParser.T_ELSE); - this.state = 1714; + this.state = 1710; + this.match(HiveSql.T_ELSE); + this.state = 1711; this.block(); } catch (re) { if(re instanceof antlr4.error.RecognitionException) { @@ -16464,7 +16502,7 @@ function Include_stmtContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_include_stmt; + this.ruleIndex = HiveSql.RULE_include_stmt; return this; } @@ -16472,7 +16510,7 @@ Include_stmtContext.prototype = Object.create(antlr4.ParserRuleContext.prototype Include_stmtContext.prototype.constructor = Include_stmtContext; Include_stmtContext.prototype.T_INCLUDE = function() { - return this.getToken(HiveSqlParser.T_INCLUDE, 0); + return this.getToken(HiveSql.T_INCLUDE, 0); }; Include_stmtContext.prototype.file_name = function() { @@ -16506,27 +16544,27 @@ Include_stmtContext.prototype.accept = function(visitor) { -HiveSqlParser.Include_stmtContext = Include_stmtContext; +HiveSql.Include_stmtContext = Include_stmtContext; -HiveSqlParser.prototype.include_stmt = function() { +HiveSql.prototype.include_stmt = function() { var localctx = new Include_stmtContext(this, this._ctx, this.state); - this.enterRule(localctx, 174, HiveSqlParser.RULE_include_stmt); + this.enterRule(localctx, 174, HiveSql.RULE_include_stmt); try { this.enterOuterAlt(localctx, 1); + this.state = 1713; + this.match(HiveSql.T_INCLUDE); this.state = 1716; - this.match(HiveSqlParser.T_INCLUDE); - this.state = 1719; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,187,this._ctx); switch(la_) { case 1: - this.state = 1717; + this.state = 1714; this.file_name(); break; case 2: - this.state = 1718; + this.state = 1715; this.expr(0); break; @@ -16555,7 +16593,7 @@ function Insert_stmtContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_insert_stmt; + this.ruleIndex = HiveSql.RULE_insert_stmt; return this; } @@ -16563,7 +16601,7 @@ Insert_stmtContext.prototype = Object.create(antlr4.ParserRuleContext.prototype) Insert_stmtContext.prototype.constructor = Insert_stmtContext; Insert_stmtContext.prototype.T_INSERT = function() { - return this.getToken(HiveSqlParser.T_INSERT, 0); + return this.getToken(HiveSql.T_INSERT, 0); }; Insert_stmtContext.prototype.table_name = function() { @@ -16571,15 +16609,15 @@ Insert_stmtContext.prototype.table_name = function() { }; Insert_stmtContext.prototype.T_OVERWRITE = function() { - return this.getToken(HiveSqlParser.T_OVERWRITE, 0); + return this.getToken(HiveSql.T_OVERWRITE, 0); }; Insert_stmtContext.prototype.T_TABLE = function() { - return this.getToken(HiveSqlParser.T_TABLE, 0); + return this.getToken(HiveSql.T_TABLE, 0); }; Insert_stmtContext.prototype.T_INTO = function() { - return this.getToken(HiveSqlParser.T_INTO, 0); + return this.getToken(HiveSql.T_INTO, 0); }; Insert_stmtContext.prototype.select_stmt = function() { @@ -16617,62 +16655,62 @@ Insert_stmtContext.prototype.accept = function(visitor) { -HiveSqlParser.Insert_stmtContext = Insert_stmtContext; +HiveSql.Insert_stmtContext = Insert_stmtContext; -HiveSqlParser.prototype.insert_stmt = function() { +HiveSql.prototype.insert_stmt = function() { var localctx = new Insert_stmtContext(this, this._ctx, this.state); - this.enterRule(localctx, 176, HiveSqlParser.RULE_insert_stmt); + this.enterRule(localctx, 176, HiveSql.RULE_insert_stmt); try { this.enterOuterAlt(localctx, 1); - this.state = 1721; - this.match(HiveSqlParser.T_INSERT); - this.state = 1728; + this.state = 1718; + this.match(HiveSql.T_INSERT); + this.state = 1725; this._errHandler.sync(this); switch(this._input.LA(1)) { - case HiveSqlParser.T_OVERWRITE: - this.state = 1722; - this.match(HiveSqlParser.T_OVERWRITE); - this.state = 1723; - this.match(HiveSqlParser.T_TABLE); + case HiveSql.T_OVERWRITE: + this.state = 1719; + this.match(HiveSql.T_OVERWRITE); + this.state = 1720; + this.match(HiveSql.T_TABLE); break; - case HiveSqlParser.T_INTO: - this.state = 1724; - this.match(HiveSqlParser.T_INTO); - this.state = 1726; + case HiveSql.T_INTO: + this.state = 1721; + this.match(HiveSql.T_INTO); + this.state = 1723; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,188,this._ctx); if(la_===1) { - this.state = 1725; - this.match(HiveSqlParser.T_TABLE); + this.state = 1722; + this.match(HiveSql.T_TABLE); } break; default: throw new antlr4.error.NoViableAltException(this); } - this.state = 1730; + this.state = 1727; this.table_name(); - this.state = 1732; + this.state = 1729; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,190,this._ctx); if(la_===1) { - this.state = 1731; + this.state = 1728; this.insert_stmt_cols(); } - this.state = 1736; + this.state = 1733; this._errHandler.sync(this); switch(this._input.LA(1)) { - case HiveSqlParser.T_OPEN_P: - case HiveSqlParser.T_WITH: - case HiveSqlParser.T_SELECT: - case HiveSqlParser.T_SEL: - this.state = 1734; + case HiveSql.T_SEL: + case HiveSql.T_SELECT: + case HiveSql.T_WITH: + case HiveSql.T_OPEN_P: + this.state = 1731; this.select_stmt(); break; - case HiveSqlParser.T_VALUES: - this.state = 1735; + case HiveSql.T_VALUES: + this.state = 1732; this.insert_stmt_rows(); break; default: @@ -16702,7 +16740,7 @@ function Insert_stmt_colsContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_insert_stmt_cols; + this.ruleIndex = HiveSql.RULE_insert_stmt_cols; return this; } @@ -16710,7 +16748,7 @@ Insert_stmt_colsContext.prototype = Object.create(antlr4.ParserRuleContext.proto Insert_stmt_colsContext.prototype.constructor = Insert_stmt_colsContext; Insert_stmt_colsContext.prototype.T_OPEN_P = function() { - return this.getToken(HiveSqlParser.T_OPEN_P, 0); + return this.getToken(HiveSql.T_OPEN_P, 0); }; Insert_stmt_colsContext.prototype.ident = function(i) { @@ -16725,7 +16763,7 @@ Insert_stmt_colsContext.prototype.ident = function(i) { }; Insert_stmt_colsContext.prototype.T_CLOSE_P = function() { - return this.getToken(HiveSqlParser.T_CLOSE_P, 0); + return this.getToken(HiveSql.T_CLOSE_P, 0); }; Insert_stmt_colsContext.prototype.T_COMMA = function(i) { @@ -16733,9 +16771,9 @@ Insert_stmt_colsContext.prototype.T_COMMA = function(i) { i = null; } if(i===null) { - return this.getTokens(HiveSqlParser.T_COMMA); + return this.getTokens(HiveSql.T_COMMA); } else { - return this.getToken(HiveSqlParser.T_COMMA, i); + return this.getToken(HiveSql.T_COMMA, i); } }; @@ -16763,33 +16801,33 @@ Insert_stmt_colsContext.prototype.accept = function(visitor) { -HiveSqlParser.Insert_stmt_colsContext = Insert_stmt_colsContext; +HiveSql.Insert_stmt_colsContext = Insert_stmt_colsContext; -HiveSqlParser.prototype.insert_stmt_cols = function() { +HiveSql.prototype.insert_stmt_cols = function() { var localctx = new Insert_stmt_colsContext(this, this._ctx, this.state); - this.enterRule(localctx, 178, HiveSqlParser.RULE_insert_stmt_cols); + this.enterRule(localctx, 178, HiveSql.RULE_insert_stmt_cols); var _la = 0; // Token type try { this.enterOuterAlt(localctx, 1); - this.state = 1738; - this.match(HiveSqlParser.T_OPEN_P); - this.state = 1739; + this.state = 1735; + this.match(HiveSql.T_OPEN_P); + this.state = 1736; this.ident(); - this.state = 1744; + this.state = 1741; this._errHandler.sync(this); _la = this._input.LA(1); - while(_la===HiveSqlParser.T_COMMA) { - this.state = 1740; - this.match(HiveSqlParser.T_COMMA); - this.state = 1741; + while(_la===HiveSql.T_COMMA) { + this.state = 1737; + this.match(HiveSql.T_COMMA); + this.state = 1738; this.ident(); - this.state = 1746; + this.state = 1743; this._errHandler.sync(this); _la = this._input.LA(1); } - this.state = 1747; - this.match(HiveSqlParser.T_CLOSE_P); + this.state = 1744; + this.match(HiveSql.T_CLOSE_P); } catch (re) { if(re instanceof antlr4.error.RecognitionException) { localctx.exception = re; @@ -16814,7 +16852,7 @@ function Insert_stmt_rowsContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_insert_stmt_rows; + this.ruleIndex = HiveSql.RULE_insert_stmt_rows; return this; } @@ -16822,7 +16860,7 @@ Insert_stmt_rowsContext.prototype = Object.create(antlr4.ParserRuleContext.proto Insert_stmt_rowsContext.prototype.constructor = Insert_stmt_rowsContext; Insert_stmt_rowsContext.prototype.T_VALUES = function() { - return this.getToken(HiveSqlParser.T_VALUES, 0); + return this.getToken(HiveSql.T_VALUES, 0); }; Insert_stmt_rowsContext.prototype.insert_stmt_row = function(i) { @@ -16841,9 +16879,9 @@ Insert_stmt_rowsContext.prototype.T_COMMA = function(i) { i = null; } if(i===null) { - return this.getTokens(HiveSqlParser.T_COMMA); + return this.getTokens(HiveSql.T_COMMA); } else { - return this.getToken(HiveSqlParser.T_COMMA, i); + return this.getToken(HiveSql.T_COMMA, i); } }; @@ -16871,29 +16909,29 @@ Insert_stmt_rowsContext.prototype.accept = function(visitor) { -HiveSqlParser.Insert_stmt_rowsContext = Insert_stmt_rowsContext; +HiveSql.Insert_stmt_rowsContext = Insert_stmt_rowsContext; -HiveSqlParser.prototype.insert_stmt_rows = function() { +HiveSql.prototype.insert_stmt_rows = function() { var localctx = new Insert_stmt_rowsContext(this, this._ctx, this.state); - this.enterRule(localctx, 180, HiveSqlParser.RULE_insert_stmt_rows); + this.enterRule(localctx, 180, HiveSql.RULE_insert_stmt_rows); try { this.enterOuterAlt(localctx, 1); - this.state = 1749; - this.match(HiveSqlParser.T_VALUES); - this.state = 1750; + this.state = 1746; + this.match(HiveSql.T_VALUES); + this.state = 1747; this.insert_stmt_row(); - this.state = 1755; + this.state = 1752; this._errHandler.sync(this); var _alt = this._interp.adaptivePredict(this._input,193,this._ctx) while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { if(_alt===1) { - this.state = 1751; - this.match(HiveSqlParser.T_COMMA); - this.state = 1752; + this.state = 1748; + this.match(HiveSql.T_COMMA); + this.state = 1749; this.insert_stmt_row(); } - this.state = 1757; + this.state = 1754; this._errHandler.sync(this); _alt = this._interp.adaptivePredict(this._input,193,this._ctx); } @@ -16922,7 +16960,7 @@ function Insert_stmt_rowContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_insert_stmt_row; + this.ruleIndex = HiveSql.RULE_insert_stmt_row; return this; } @@ -16930,7 +16968,7 @@ Insert_stmt_rowContext.prototype = Object.create(antlr4.ParserRuleContext.protot Insert_stmt_rowContext.prototype.constructor = Insert_stmt_rowContext; Insert_stmt_rowContext.prototype.T_OPEN_P = function() { - return this.getToken(HiveSqlParser.T_OPEN_P, 0); + return this.getToken(HiveSql.T_OPEN_P, 0); }; Insert_stmt_rowContext.prototype.expr = function(i) { @@ -16945,7 +16983,7 @@ Insert_stmt_rowContext.prototype.expr = function(i) { }; Insert_stmt_rowContext.prototype.T_CLOSE_P = function() { - return this.getToken(HiveSqlParser.T_CLOSE_P, 0); + return this.getToken(HiveSql.T_CLOSE_P, 0); }; Insert_stmt_rowContext.prototype.T_COMMA = function(i) { @@ -16953,9 +16991,9 @@ Insert_stmt_rowContext.prototype.T_COMMA = function(i) { i = null; } if(i===null) { - return this.getTokens(HiveSqlParser.T_COMMA); + return this.getTokens(HiveSql.T_COMMA); } else { - return this.getToken(HiveSqlParser.T_COMMA, i); + return this.getToken(HiveSql.T_COMMA, i); } }; @@ -16983,33 +17021,33 @@ Insert_stmt_rowContext.prototype.accept = function(visitor) { -HiveSqlParser.Insert_stmt_rowContext = Insert_stmt_rowContext; +HiveSql.Insert_stmt_rowContext = Insert_stmt_rowContext; -HiveSqlParser.prototype.insert_stmt_row = function() { +HiveSql.prototype.insert_stmt_row = function() { var localctx = new Insert_stmt_rowContext(this, this._ctx, this.state); - this.enterRule(localctx, 182, HiveSqlParser.RULE_insert_stmt_row); + this.enterRule(localctx, 182, HiveSql.RULE_insert_stmt_row); var _la = 0; // Token type try { this.enterOuterAlt(localctx, 1); - this.state = 1758; - this.match(HiveSqlParser.T_OPEN_P); - this.state = 1759; + this.state = 1755; + this.match(HiveSql.T_OPEN_P); + this.state = 1756; this.expr(0); - this.state = 1764; + this.state = 1761; this._errHandler.sync(this); _la = this._input.LA(1); - while(_la===HiveSqlParser.T_COMMA) { - this.state = 1760; - this.match(HiveSqlParser.T_COMMA); - this.state = 1761; + while(_la===HiveSql.T_COMMA) { + this.state = 1757; + this.match(HiveSql.T_COMMA); + this.state = 1758; this.expr(0); - this.state = 1766; + this.state = 1763; this._errHandler.sync(this); _la = this._input.LA(1); } - this.state = 1767; - this.match(HiveSqlParser.T_CLOSE_P); + this.state = 1764; + this.match(HiveSql.T_CLOSE_P); } catch (re) { if(re instanceof antlr4.error.RecognitionException) { localctx.exception = re; @@ -17034,7 +17072,7 @@ function Insert_directory_stmtContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_insert_directory_stmt; + this.ruleIndex = HiveSql.RULE_insert_directory_stmt; return this; } @@ -17042,15 +17080,15 @@ Insert_directory_stmtContext.prototype = Object.create(antlr4.ParserRuleContext. Insert_directory_stmtContext.prototype.constructor = Insert_directory_stmtContext; Insert_directory_stmtContext.prototype.T_INSERT = function() { - return this.getToken(HiveSqlParser.T_INSERT, 0); + return this.getToken(HiveSql.T_INSERT, 0); }; Insert_directory_stmtContext.prototype.T_OVERWRITE = function() { - return this.getToken(HiveSqlParser.T_OVERWRITE, 0); + return this.getToken(HiveSql.T_OVERWRITE, 0); }; Insert_directory_stmtContext.prototype.T_DIRECTORY = function() { - return this.getToken(HiveSqlParser.T_DIRECTORY, 0); + return this.getToken(HiveSql.T_DIRECTORY, 0); }; Insert_directory_stmtContext.prototype.expr_file = function() { @@ -17062,7 +17100,7 @@ Insert_directory_stmtContext.prototype.expr_select = function() { }; Insert_directory_stmtContext.prototype.T_LOCAL = function() { - return this.getToken(HiveSqlParser.T_LOCAL, 0); + return this.getToken(HiveSql.T_LOCAL, 0); }; Insert_directory_stmtContext.prototype.enterRule = function(listener) { @@ -17088,32 +17126,32 @@ Insert_directory_stmtContext.prototype.accept = function(visitor) { -HiveSqlParser.Insert_directory_stmtContext = Insert_directory_stmtContext; +HiveSql.Insert_directory_stmtContext = Insert_directory_stmtContext; -HiveSqlParser.prototype.insert_directory_stmt = function() { +HiveSql.prototype.insert_directory_stmt = function() { var localctx = new Insert_directory_stmtContext(this, this._ctx, this.state); - this.enterRule(localctx, 184, HiveSqlParser.RULE_insert_directory_stmt); + this.enterRule(localctx, 184, HiveSql.RULE_insert_directory_stmt); var _la = 0; // Token type try { this.enterOuterAlt(localctx, 1); + this.state = 1766; + this.match(HiveSql.T_INSERT); + this.state = 1767; + this.match(HiveSql.T_OVERWRITE); this.state = 1769; - this.match(HiveSqlParser.T_INSERT); - this.state = 1770; - this.match(HiveSqlParser.T_OVERWRITE); - this.state = 1772; this._errHandler.sync(this); _la = this._input.LA(1); - if(_la===HiveSqlParser.T_LOCAL) { - this.state = 1771; - this.match(HiveSqlParser.T_LOCAL); + if(_la===HiveSql.T_LOCAL) { + this.state = 1768; + this.match(HiveSql.T_LOCAL); } - this.state = 1774; - this.match(HiveSqlParser.T_DIRECTORY); - this.state = 1775; + this.state = 1771; + this.match(HiveSql.T_DIRECTORY); + this.state = 1772; this.expr_file(); - this.state = 1776; + this.state = 1773; this.expr_select(); } catch (re) { if(re instanceof antlr4.error.RecognitionException) { @@ -17139,7 +17177,7 @@ function Exit_stmtContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_exit_stmt; + this.ruleIndex = HiveSql.RULE_exit_stmt; return this; } @@ -17147,15 +17185,15 @@ Exit_stmtContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); Exit_stmtContext.prototype.constructor = Exit_stmtContext; Exit_stmtContext.prototype.T_EXIT = function() { - return this.getToken(HiveSqlParser.T_EXIT, 0); + return this.getToken(HiveSql.T_EXIT, 0); }; Exit_stmtContext.prototype.L_ID = function() { - return this.getToken(HiveSqlParser.L_ID, 0); + return this.getToken(HiveSql.L_ID, 0); }; Exit_stmtContext.prototype.T_WHEN = function() { - return this.getToken(HiveSqlParser.T_WHEN, 0); + return this.getToken(HiveSql.T_WHEN, 0); }; Exit_stmtContext.prototype.bool_expr = function() { @@ -17185,31 +17223,31 @@ Exit_stmtContext.prototype.accept = function(visitor) { -HiveSqlParser.Exit_stmtContext = Exit_stmtContext; +HiveSql.Exit_stmtContext = Exit_stmtContext; -HiveSqlParser.prototype.exit_stmt = function() { +HiveSql.prototype.exit_stmt = function() { var localctx = new Exit_stmtContext(this, this._ctx, this.state); - this.enterRule(localctx, 186, HiveSqlParser.RULE_exit_stmt); + this.enterRule(localctx, 186, HiveSql.RULE_exit_stmt); try { this.enterOuterAlt(localctx, 1); - this.state = 1778; - this.match(HiveSqlParser.T_EXIT); - this.state = 1780; + this.state = 1775; + this.match(HiveSql.T_EXIT); + this.state = 1777; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,196,this._ctx); if(la_===1) { - this.state = 1779; - this.match(HiveSqlParser.L_ID); + this.state = 1776; + this.match(HiveSql.L_ID); } - this.state = 1784; + this.state = 1781; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,197,this._ctx); if(la_===1) { - this.state = 1782; - this.match(HiveSqlParser.T_WHEN); - this.state = 1783; + this.state = 1779; + this.match(HiveSql.T_WHEN); + this.state = 1780; this.bool_expr(0); } @@ -17237,7 +17275,7 @@ function Get_diag_stmtContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_get_diag_stmt; + this.ruleIndex = HiveSql.RULE_get_diag_stmt; return this; } @@ -17245,11 +17283,11 @@ Get_diag_stmtContext.prototype = Object.create(antlr4.ParserRuleContext.prototyp Get_diag_stmtContext.prototype.constructor = Get_diag_stmtContext; Get_diag_stmtContext.prototype.T_GET = function() { - return this.getToken(HiveSqlParser.T_GET, 0); + return this.getToken(HiveSql.T_GET, 0); }; Get_diag_stmtContext.prototype.T_DIAGNOSTICS = function() { - return this.getToken(HiveSqlParser.T_DIAGNOSTICS, 0); + return this.getToken(HiveSql.T_DIAGNOSTICS, 0); }; Get_diag_stmtContext.prototype.get_diag_stmt_item = function() { @@ -17279,19 +17317,19 @@ Get_diag_stmtContext.prototype.accept = function(visitor) { -HiveSqlParser.Get_diag_stmtContext = Get_diag_stmtContext; +HiveSql.Get_diag_stmtContext = Get_diag_stmtContext; -HiveSqlParser.prototype.get_diag_stmt = function() { +HiveSql.prototype.get_diag_stmt = function() { var localctx = new Get_diag_stmtContext(this, this._ctx, this.state); - this.enterRule(localctx, 188, HiveSqlParser.RULE_get_diag_stmt); + this.enterRule(localctx, 188, HiveSql.RULE_get_diag_stmt); try { this.enterOuterAlt(localctx, 1); - this.state = 1786; - this.match(HiveSqlParser.T_GET); - this.state = 1787; - this.match(HiveSqlParser.T_DIAGNOSTICS); - this.state = 1788; + this.state = 1783; + this.match(HiveSql.T_GET); + this.state = 1784; + this.match(HiveSql.T_DIAGNOSTICS); + this.state = 1785; this.get_diag_stmt_item(); } catch (re) { if(re instanceof antlr4.error.RecognitionException) { @@ -17317,7 +17355,7 @@ function Get_diag_stmt_itemContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_get_diag_stmt_item; + this.ruleIndex = HiveSql.RULE_get_diag_stmt_item; return this; } @@ -17355,26 +17393,26 @@ Get_diag_stmt_itemContext.prototype.accept = function(visitor) { -HiveSqlParser.Get_diag_stmt_itemContext = Get_diag_stmt_itemContext; +HiveSql.Get_diag_stmt_itemContext = Get_diag_stmt_itemContext; -HiveSqlParser.prototype.get_diag_stmt_item = function() { +HiveSql.prototype.get_diag_stmt_item = function() { var localctx = new Get_diag_stmt_itemContext(this, this._ctx, this.state); - this.enterRule(localctx, 190, HiveSqlParser.RULE_get_diag_stmt_item); + this.enterRule(localctx, 190, HiveSql.RULE_get_diag_stmt_item); try { - this.state = 1792; + this.state = 1789; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,198,this._ctx); switch(la_) { case 1: this.enterOuterAlt(localctx, 1); - this.state = 1790; + this.state = 1787; this.get_diag_stmt_exception_item(); break; case 2: this.enterOuterAlt(localctx, 2); - this.state = 1791; + this.state = 1788; this.get_diag_stmt_rowcount_item(); break; @@ -17403,7 +17441,7 @@ function Get_diag_stmt_exception_itemContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_get_diag_stmt_exception_item; + this.ruleIndex = HiveSql.RULE_get_diag_stmt_exception_item; return this; } @@ -17411,11 +17449,11 @@ Get_diag_stmt_exception_itemContext.prototype = Object.create(antlr4.ParserRuleC Get_diag_stmt_exception_itemContext.prototype.constructor = Get_diag_stmt_exception_itemContext; Get_diag_stmt_exception_itemContext.prototype.T_EXCEPTION = function() { - return this.getToken(HiveSqlParser.T_EXCEPTION, 0); + return this.getToken(HiveSql.T_EXCEPTION, 0); }; Get_diag_stmt_exception_itemContext.prototype.L_INT = function() { - return this.getToken(HiveSqlParser.L_INT, 0); + return this.getToken(HiveSql.L_INT, 0); }; Get_diag_stmt_exception_itemContext.prototype.ident = function() { @@ -17423,11 +17461,11 @@ Get_diag_stmt_exception_itemContext.prototype.ident = function() { }; Get_diag_stmt_exception_itemContext.prototype.T_EQUAL = function() { - return this.getToken(HiveSqlParser.T_EQUAL, 0); + return this.getToken(HiveSql.T_EQUAL, 0); }; Get_diag_stmt_exception_itemContext.prototype.T_MESSAGE_TEXT = function() { - return this.getToken(HiveSqlParser.T_MESSAGE_TEXT, 0); + return this.getToken(HiveSql.T_MESSAGE_TEXT, 0); }; Get_diag_stmt_exception_itemContext.prototype.enterRule = function(listener) { @@ -17453,24 +17491,24 @@ Get_diag_stmt_exception_itemContext.prototype.accept = function(visitor) { -HiveSqlParser.Get_diag_stmt_exception_itemContext = Get_diag_stmt_exception_itemContext; +HiveSql.Get_diag_stmt_exception_itemContext = Get_diag_stmt_exception_itemContext; -HiveSqlParser.prototype.get_diag_stmt_exception_item = function() { +HiveSql.prototype.get_diag_stmt_exception_item = function() { var localctx = new Get_diag_stmt_exception_itemContext(this, this._ctx, this.state); - this.enterRule(localctx, 192, HiveSqlParser.RULE_get_diag_stmt_exception_item); + this.enterRule(localctx, 192, HiveSql.RULE_get_diag_stmt_exception_item); try { this.enterOuterAlt(localctx, 1); - this.state = 1794; - this.match(HiveSqlParser.T_EXCEPTION); - this.state = 1795; - this.match(HiveSqlParser.L_INT); - this.state = 1796; + this.state = 1791; + this.match(HiveSql.T_EXCEPTION); + this.state = 1792; + this.match(HiveSql.L_INT); + this.state = 1793; this.ident(); - this.state = 1797; - this.match(HiveSqlParser.T_EQUAL); - this.state = 1798; - this.match(HiveSqlParser.T_MESSAGE_TEXT); + this.state = 1794; + this.match(HiveSql.T_EQUAL); + this.state = 1795; + this.match(HiveSql.T_MESSAGE_TEXT); } catch (re) { if(re instanceof antlr4.error.RecognitionException) { localctx.exception = re; @@ -17495,7 +17533,7 @@ function Get_diag_stmt_rowcount_itemContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_get_diag_stmt_rowcount_item; + this.ruleIndex = HiveSql.RULE_get_diag_stmt_rowcount_item; return this; } @@ -17507,11 +17545,11 @@ Get_diag_stmt_rowcount_itemContext.prototype.ident = function() { }; Get_diag_stmt_rowcount_itemContext.prototype.T_EQUAL = function() { - return this.getToken(HiveSqlParser.T_EQUAL, 0); + return this.getToken(HiveSql.T_EQUAL, 0); }; Get_diag_stmt_rowcount_itemContext.prototype.T_ROW_COUNT = function() { - return this.getToken(HiveSqlParser.T_ROW_COUNT, 0); + return this.getToken(HiveSql.T_ROW_COUNT, 0); }; Get_diag_stmt_rowcount_itemContext.prototype.enterRule = function(listener) { @@ -17537,20 +17575,20 @@ Get_diag_stmt_rowcount_itemContext.prototype.accept = function(visitor) { -HiveSqlParser.Get_diag_stmt_rowcount_itemContext = Get_diag_stmt_rowcount_itemContext; +HiveSql.Get_diag_stmt_rowcount_itemContext = Get_diag_stmt_rowcount_itemContext; -HiveSqlParser.prototype.get_diag_stmt_rowcount_item = function() { +HiveSql.prototype.get_diag_stmt_rowcount_item = function() { var localctx = new Get_diag_stmt_rowcount_itemContext(this, this._ctx, this.state); - this.enterRule(localctx, 194, HiveSqlParser.RULE_get_diag_stmt_rowcount_item); + this.enterRule(localctx, 194, HiveSql.RULE_get_diag_stmt_rowcount_item); try { this.enterOuterAlt(localctx, 1); - this.state = 1800; + this.state = 1797; this.ident(); - this.state = 1801; - this.match(HiveSqlParser.T_EQUAL); - this.state = 1802; - this.match(HiveSqlParser.T_ROW_COUNT); + this.state = 1798; + this.match(HiveSql.T_EQUAL); + this.state = 1799; + this.match(HiveSql.T_ROW_COUNT); } catch (re) { if(re instanceof antlr4.error.RecognitionException) { localctx.exception = re; @@ -17575,7 +17613,7 @@ function Grant_stmtContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_grant_stmt; + this.ruleIndex = HiveSql.RULE_grant_stmt; return this; } @@ -17583,7 +17621,7 @@ Grant_stmtContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); Grant_stmtContext.prototype.constructor = Grant_stmtContext; Grant_stmtContext.prototype.T_GRANT = function() { - return this.getToken(HiveSqlParser.T_GRANT, 0); + return this.getToken(HiveSql.T_GRANT, 0); }; Grant_stmtContext.prototype.grant_stmt_item = function(i) { @@ -17598,11 +17636,11 @@ Grant_stmtContext.prototype.grant_stmt_item = function(i) { }; Grant_stmtContext.prototype.T_TO = function() { - return this.getToken(HiveSqlParser.T_TO, 0); + return this.getToken(HiveSql.T_TO, 0); }; Grant_stmtContext.prototype.T_ROLE = function() { - return this.getToken(HiveSqlParser.T_ROLE, 0); + return this.getToken(HiveSql.T_ROLE, 0); }; Grant_stmtContext.prototype.ident = function() { @@ -17614,9 +17652,9 @@ Grant_stmtContext.prototype.T_COMMA = function(i) { i = null; } if(i===null) { - return this.getTokens(HiveSqlParser.T_COMMA); + return this.getTokens(HiveSql.T_COMMA); } else { - return this.getToken(HiveSqlParser.T_COMMA, i); + return this.getToken(HiveSql.T_COMMA, i); } }; @@ -17644,36 +17682,36 @@ Grant_stmtContext.prototype.accept = function(visitor) { -HiveSqlParser.Grant_stmtContext = Grant_stmtContext; +HiveSql.Grant_stmtContext = Grant_stmtContext; -HiveSqlParser.prototype.grant_stmt = function() { +HiveSql.prototype.grant_stmt = function() { var localctx = new Grant_stmtContext(this, this._ctx, this.state); - this.enterRule(localctx, 196, HiveSqlParser.RULE_grant_stmt); + this.enterRule(localctx, 196, HiveSql.RULE_grant_stmt); var _la = 0; // Token type try { this.enterOuterAlt(localctx, 1); - this.state = 1804; - this.match(HiveSqlParser.T_GRANT); - this.state = 1805; + this.state = 1801; + this.match(HiveSql.T_GRANT); + this.state = 1802; this.grant_stmt_item(); - this.state = 1810; + this.state = 1807; this._errHandler.sync(this); _la = this._input.LA(1); - while(_la===HiveSqlParser.T_COMMA) { - this.state = 1806; - this.match(HiveSqlParser.T_COMMA); - this.state = 1807; + while(_la===HiveSql.T_COMMA) { + this.state = 1803; + this.match(HiveSql.T_COMMA); + this.state = 1804; this.grant_stmt_item(); - this.state = 1812; + this.state = 1809; this._errHandler.sync(this); _la = this._input.LA(1); } - this.state = 1813; - this.match(HiveSqlParser.T_TO); - this.state = 1814; - this.match(HiveSqlParser.T_ROLE); - this.state = 1815; + this.state = 1810; + this.match(HiveSql.T_TO); + this.state = 1811; + this.match(HiveSql.T_ROLE); + this.state = 1812; this.ident(); } catch (re) { if(re instanceof antlr4.error.RecognitionException) { @@ -17699,7 +17737,7 @@ function Grant_stmt_itemContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_grant_stmt_item; + this.ruleIndex = HiveSql.RULE_grant_stmt_item; return this; } @@ -17707,15 +17745,15 @@ Grant_stmt_itemContext.prototype = Object.create(antlr4.ParserRuleContext.protot Grant_stmt_itemContext.prototype.constructor = Grant_stmt_itemContext; Grant_stmt_itemContext.prototype.T_EXECUTE = function() { - return this.getToken(HiveSqlParser.T_EXECUTE, 0); + return this.getToken(HiveSql.T_EXECUTE, 0); }; Grant_stmt_itemContext.prototype.T_ON = function() { - return this.getToken(HiveSqlParser.T_ON, 0); + return this.getToken(HiveSql.T_ON, 0); }; Grant_stmt_itemContext.prototype.T_PROCEDURE = function() { - return this.getToken(HiveSqlParser.T_PROCEDURE, 0); + return this.getToken(HiveSql.T_PROCEDURE, 0); }; Grant_stmt_itemContext.prototype.ident = function() { @@ -17745,21 +17783,21 @@ Grant_stmt_itemContext.prototype.accept = function(visitor) { -HiveSqlParser.Grant_stmt_itemContext = Grant_stmt_itemContext; +HiveSql.Grant_stmt_itemContext = Grant_stmt_itemContext; -HiveSqlParser.prototype.grant_stmt_item = function() { +HiveSql.prototype.grant_stmt_item = function() { var localctx = new Grant_stmt_itemContext(this, this._ctx, this.state); - this.enterRule(localctx, 198, HiveSqlParser.RULE_grant_stmt_item); + this.enterRule(localctx, 198, HiveSql.RULE_grant_stmt_item); try { this.enterOuterAlt(localctx, 1); + this.state = 1814; + this.match(HiveSql.T_EXECUTE); + this.state = 1815; + this.match(HiveSql.T_ON); + this.state = 1816; + this.match(HiveSql.T_PROCEDURE); this.state = 1817; - this.match(HiveSqlParser.T_EXECUTE); - this.state = 1818; - this.match(HiveSqlParser.T_ON); - this.state = 1819; - this.match(HiveSqlParser.T_PROCEDURE); - this.state = 1820; this.ident(); } catch (re) { if(re instanceof antlr4.error.RecognitionException) { @@ -17785,7 +17823,7 @@ function Leave_stmtContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_leave_stmt; + this.ruleIndex = HiveSql.RULE_leave_stmt; return this; } @@ -17793,11 +17831,11 @@ Leave_stmtContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); Leave_stmtContext.prototype.constructor = Leave_stmtContext; Leave_stmtContext.prototype.T_LEAVE = function() { - return this.getToken(HiveSqlParser.T_LEAVE, 0); + return this.getToken(HiveSql.T_LEAVE, 0); }; Leave_stmtContext.prototype.L_ID = function() { - return this.getToken(HiveSqlParser.L_ID, 0); + return this.getToken(HiveSql.L_ID, 0); }; Leave_stmtContext.prototype.enterRule = function(listener) { @@ -17823,22 +17861,22 @@ Leave_stmtContext.prototype.accept = function(visitor) { -HiveSqlParser.Leave_stmtContext = Leave_stmtContext; +HiveSql.Leave_stmtContext = Leave_stmtContext; -HiveSqlParser.prototype.leave_stmt = function() { +HiveSql.prototype.leave_stmt = function() { var localctx = new Leave_stmtContext(this, this._ctx, this.state); - this.enterRule(localctx, 200, HiveSqlParser.RULE_leave_stmt); + this.enterRule(localctx, 200, HiveSql.RULE_leave_stmt); try { this.enterOuterAlt(localctx, 1); - this.state = 1822; - this.match(HiveSqlParser.T_LEAVE); - this.state = 1824; + this.state = 1819; + this.match(HiveSql.T_LEAVE); + this.state = 1821; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,200,this._ctx); if(la_===1) { - this.state = 1823; - this.match(HiveSqlParser.L_ID); + this.state = 1820; + this.match(HiveSql.L_ID); } } catch (re) { @@ -17865,7 +17903,7 @@ function Map_object_stmtContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_map_object_stmt; + this.ruleIndex = HiveSql.RULE_map_object_stmt; return this; } @@ -17873,11 +17911,11 @@ Map_object_stmtContext.prototype = Object.create(antlr4.ParserRuleContext.protot Map_object_stmtContext.prototype.constructor = Map_object_stmtContext; Map_object_stmtContext.prototype.T_MAP = function() { - return this.getToken(HiveSqlParser.T_MAP, 0); + return this.getToken(HiveSql.T_MAP, 0); }; Map_object_stmtContext.prototype.T_OBJECT = function() { - return this.getToken(HiveSqlParser.T_OBJECT, 0); + return this.getToken(HiveSql.T_OBJECT, 0); }; Map_object_stmtContext.prototype.expr = function(i) { @@ -17892,11 +17930,11 @@ Map_object_stmtContext.prototype.expr = function(i) { }; Map_object_stmtContext.prototype.T_TO = function() { - return this.getToken(HiveSqlParser.T_TO, 0); + return this.getToken(HiveSql.T_TO, 0); }; Map_object_stmtContext.prototype.T_AT = function() { - return this.getToken(HiveSqlParser.T_AT, 0); + return this.getToken(HiveSql.T_AT, 0); }; Map_object_stmtContext.prototype.enterRule = function(listener) { @@ -17922,37 +17960,37 @@ Map_object_stmtContext.prototype.accept = function(visitor) { -HiveSqlParser.Map_object_stmtContext = Map_object_stmtContext; +HiveSql.Map_object_stmtContext = Map_object_stmtContext; -HiveSqlParser.prototype.map_object_stmt = function() { +HiveSql.prototype.map_object_stmt = function() { var localctx = new Map_object_stmtContext(this, this._ctx, this.state); - this.enterRule(localctx, 202, HiveSqlParser.RULE_map_object_stmt); + this.enterRule(localctx, 202, HiveSql.RULE_map_object_stmt); try { this.enterOuterAlt(localctx, 1); - this.state = 1826; - this.match(HiveSqlParser.T_MAP); - this.state = 1827; - this.match(HiveSqlParser.T_OBJECT); - this.state = 1828; + this.state = 1823; + this.match(HiveSql.T_MAP); + this.state = 1824; + this.match(HiveSql.T_OBJECT); + this.state = 1825; this.expr(0); - this.state = 1831; + this.state = 1828; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,201,this._ctx); if(la_===1) { - this.state = 1829; - this.match(HiveSqlParser.T_TO); - this.state = 1830; + this.state = 1826; + this.match(HiveSql.T_TO); + this.state = 1827; this.expr(0); } - this.state = 1835; + this.state = 1832; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,202,this._ctx); if(la_===1) { - this.state = 1833; - this.match(HiveSqlParser.T_AT); - this.state = 1834; + this.state = 1830; + this.match(HiveSql.T_AT); + this.state = 1831; this.expr(0); } @@ -17980,7 +18018,7 @@ function Open_stmtContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_open_stmt; + this.ruleIndex = HiveSql.RULE_open_stmt; return this; } @@ -17988,15 +18026,15 @@ Open_stmtContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); Open_stmtContext.prototype.constructor = Open_stmtContext; Open_stmtContext.prototype.T_OPEN = function() { - return this.getToken(HiveSqlParser.T_OPEN, 0); + return this.getToken(HiveSql.T_OPEN, 0); }; Open_stmtContext.prototype.L_ID = function() { - return this.getToken(HiveSqlParser.L_ID, 0); + return this.getToken(HiveSql.L_ID, 0); }; Open_stmtContext.prototype.T_FOR = function() { - return this.getToken(HiveSqlParser.T_FOR, 0); + return this.getToken(HiveSql.T_FOR, 0); }; Open_stmtContext.prototype.select_stmt = function() { @@ -18030,35 +18068,35 @@ Open_stmtContext.prototype.accept = function(visitor) { -HiveSqlParser.Open_stmtContext = Open_stmtContext; +HiveSql.Open_stmtContext = Open_stmtContext; -HiveSqlParser.prototype.open_stmt = function() { +HiveSql.prototype.open_stmt = function() { var localctx = new Open_stmtContext(this, this._ctx, this.state); - this.enterRule(localctx, 204, HiveSqlParser.RULE_open_stmt); + this.enterRule(localctx, 204, HiveSql.RULE_open_stmt); try { this.enterOuterAlt(localctx, 1); - this.state = 1837; - this.match(HiveSqlParser.T_OPEN); - this.state = 1838; - this.match(HiveSqlParser.L_ID); - this.state = 1844; + this.state = 1834; + this.match(HiveSql.T_OPEN); + this.state = 1835; + this.match(HiveSql.L_ID); + this.state = 1841; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,204,this._ctx); if(la_===1) { + this.state = 1836; + this.match(HiveSql.T_FOR); this.state = 1839; - this.match(HiveSqlParser.T_FOR); - this.state = 1842; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,203,this._ctx); switch(la_) { case 1: - this.state = 1840; + this.state = 1837; this.select_stmt(); break; case 2: - this.state = 1841; + this.state = 1838; this.expr(0); break; @@ -18089,7 +18127,7 @@ function Fetch_stmtContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_fetch_stmt; + this.ruleIndex = HiveSql.RULE_fetch_stmt; return this; } @@ -18097,7 +18135,7 @@ Fetch_stmtContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); Fetch_stmtContext.prototype.constructor = Fetch_stmtContext; Fetch_stmtContext.prototype.T_FETCH = function() { - return this.getToken(HiveSqlParser.T_FETCH, 0); + return this.getToken(HiveSql.T_FETCH, 0); }; Fetch_stmtContext.prototype.L_ID = function(i) { @@ -18105,19 +18143,19 @@ Fetch_stmtContext.prototype.L_ID = function(i) { i = null; } if(i===null) { - return this.getTokens(HiveSqlParser.L_ID); + return this.getTokens(HiveSql.L_ID); } else { - return this.getToken(HiveSqlParser.L_ID, i); + return this.getToken(HiveSql.L_ID, i); } }; Fetch_stmtContext.prototype.T_INTO = function() { - return this.getToken(HiveSqlParser.T_INTO, 0); + return this.getToken(HiveSql.T_INTO, 0); }; Fetch_stmtContext.prototype.T_FROM = function() { - return this.getToken(HiveSqlParser.T_FROM, 0); + return this.getToken(HiveSql.T_FROM, 0); }; Fetch_stmtContext.prototype.T_COMMA = function(i) { @@ -18125,9 +18163,9 @@ Fetch_stmtContext.prototype.T_COMMA = function(i) { i = null; } if(i===null) { - return this.getTokens(HiveSqlParser.T_COMMA); + return this.getTokens(HiveSql.T_COMMA); } else { - return this.getToken(HiveSqlParser.T_COMMA, i); + return this.getToken(HiveSql.T_COMMA, i); } }; @@ -18155,42 +18193,42 @@ Fetch_stmtContext.prototype.accept = function(visitor) { -HiveSqlParser.Fetch_stmtContext = Fetch_stmtContext; +HiveSql.Fetch_stmtContext = Fetch_stmtContext; -HiveSqlParser.prototype.fetch_stmt = function() { +HiveSql.prototype.fetch_stmt = function() { var localctx = new Fetch_stmtContext(this, this._ctx, this.state); - this.enterRule(localctx, 206, HiveSqlParser.RULE_fetch_stmt); + this.enterRule(localctx, 206, HiveSql.RULE_fetch_stmt); var _la = 0; // Token type try { this.enterOuterAlt(localctx, 1); - this.state = 1846; - this.match(HiveSqlParser.T_FETCH); - this.state = 1848; + this.state = 1843; + this.match(HiveSql.T_FETCH); + this.state = 1845; this._errHandler.sync(this); _la = this._input.LA(1); - if(_la===HiveSqlParser.T_FROM) { - this.state = 1847; - this.match(HiveSqlParser.T_FROM); + if(_la===HiveSql.T_FROM) { + this.state = 1844; + this.match(HiveSql.T_FROM); } - this.state = 1850; - this.match(HiveSqlParser.L_ID); - this.state = 1851; - this.match(HiveSqlParser.T_INTO); - this.state = 1852; - this.match(HiveSqlParser.L_ID); - this.state = 1857; + this.state = 1847; + this.match(HiveSql.L_ID); + this.state = 1848; + this.match(HiveSql.T_INTO); + this.state = 1849; + this.match(HiveSql.L_ID); + this.state = 1854; this._errHandler.sync(this); var _alt = this._interp.adaptivePredict(this._input,206,this._ctx) while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { if(_alt===1) { - this.state = 1853; - this.match(HiveSqlParser.T_COMMA); - this.state = 1854; - this.match(HiveSqlParser.L_ID); + this.state = 1850; + this.match(HiveSql.T_COMMA); + this.state = 1851; + this.match(HiveSql.L_ID); } - this.state = 1859; + this.state = 1856; this._errHandler.sync(this); _alt = this._interp.adaptivePredict(this._input,206,this._ctx); } @@ -18219,7 +18257,7 @@ function Collect_stats_stmtContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_collect_stats_stmt; + this.ruleIndex = HiveSql.RULE_collect_stats_stmt; return this; } @@ -18227,11 +18265,11 @@ Collect_stats_stmtContext.prototype = Object.create(antlr4.ParserRuleContext.pro Collect_stats_stmtContext.prototype.constructor = Collect_stats_stmtContext; Collect_stats_stmtContext.prototype.T_COLLECT = function() { - return this.getToken(HiveSqlParser.T_COLLECT, 0); + return this.getToken(HiveSql.T_COLLECT, 0); }; Collect_stats_stmtContext.prototype.T_ON = function() { - return this.getToken(HiveSqlParser.T_ON, 0); + return this.getToken(HiveSql.T_ON, 0); }; Collect_stats_stmtContext.prototype.table_name = function() { @@ -18239,11 +18277,11 @@ Collect_stats_stmtContext.prototype.table_name = function() { }; Collect_stats_stmtContext.prototype.T_STATISTICS = function() { - return this.getToken(HiveSqlParser.T_STATISTICS, 0); + return this.getToken(HiveSql.T_STATISTICS, 0); }; Collect_stats_stmtContext.prototype.T_STATS = function() { - return this.getToken(HiveSqlParser.T_STATS, 0); + return this.getToken(HiveSql.T_STATS, 0); }; Collect_stats_stmtContext.prototype.collect_stats_clause = function() { @@ -18273,35 +18311,35 @@ Collect_stats_stmtContext.prototype.accept = function(visitor) { -HiveSqlParser.Collect_stats_stmtContext = Collect_stats_stmtContext; +HiveSql.Collect_stats_stmtContext = Collect_stats_stmtContext; -HiveSqlParser.prototype.collect_stats_stmt = function() { +HiveSql.prototype.collect_stats_stmt = function() { var localctx = new Collect_stats_stmtContext(this, this._ctx, this.state); - this.enterRule(localctx, 208, HiveSqlParser.RULE_collect_stats_stmt); + this.enterRule(localctx, 208, HiveSql.RULE_collect_stats_stmt); var _la = 0; // Token type try { this.enterOuterAlt(localctx, 1); - this.state = 1860; - this.match(HiveSqlParser.T_COLLECT); - this.state = 1861; + this.state = 1857; + this.match(HiveSql.T_COLLECT); + this.state = 1858; _la = this._input.LA(1); - if(!(_la===HiveSqlParser.T_STATISTICS || _la===HiveSqlParser.T_STATS)) { + if(!(_la===HiveSql.T_STATS || _la===HiveSql.T_STATISTICS)) { this._errHandler.recoverInline(this); } else { this._errHandler.reportMatch(this); this.consume(); } - this.state = 1862; - this.match(HiveSqlParser.T_ON); - this.state = 1863; + this.state = 1859; + this.match(HiveSql.T_ON); + this.state = 1860; this.table_name(); - this.state = 1865; + this.state = 1862; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,207,this._ctx); if(la_===1) { - this.state = 1864; + this.state = 1861; this.collect_stats_clause(); } @@ -18329,7 +18367,7 @@ function Collect_stats_clauseContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_collect_stats_clause; + this.ruleIndex = HiveSql.RULE_collect_stats_clause; return this; } @@ -18337,11 +18375,11 @@ Collect_stats_clauseContext.prototype = Object.create(antlr4.ParserRuleContext.p Collect_stats_clauseContext.prototype.constructor = Collect_stats_clauseContext; Collect_stats_clauseContext.prototype.T_COLUMN = function() { - return this.getToken(HiveSqlParser.T_COLUMN, 0); + return this.getToken(HiveSql.T_COLUMN, 0); }; Collect_stats_clauseContext.prototype.T_OPEN_P = function() { - return this.getToken(HiveSqlParser.T_OPEN_P, 0); + return this.getToken(HiveSql.T_OPEN_P, 0); }; Collect_stats_clauseContext.prototype.ident = function(i) { @@ -18356,7 +18394,7 @@ Collect_stats_clauseContext.prototype.ident = function(i) { }; Collect_stats_clauseContext.prototype.T_CLOSE_P = function() { - return this.getToken(HiveSqlParser.T_CLOSE_P, 0); + return this.getToken(HiveSql.T_CLOSE_P, 0); }; Collect_stats_clauseContext.prototype.T_COMMA = function(i) { @@ -18364,9 +18402,9 @@ Collect_stats_clauseContext.prototype.T_COMMA = function(i) { i = null; } if(i===null) { - return this.getTokens(HiveSqlParser.T_COMMA); + return this.getTokens(HiveSql.T_COMMA); } else { - return this.getToken(HiveSqlParser.T_COMMA, i); + return this.getToken(HiveSql.T_COMMA, i); } }; @@ -18394,35 +18432,35 @@ Collect_stats_clauseContext.prototype.accept = function(visitor) { -HiveSqlParser.Collect_stats_clauseContext = Collect_stats_clauseContext; +HiveSql.Collect_stats_clauseContext = Collect_stats_clauseContext; -HiveSqlParser.prototype.collect_stats_clause = function() { +HiveSql.prototype.collect_stats_clause = function() { var localctx = new Collect_stats_clauseContext(this, this._ctx, this.state); - this.enterRule(localctx, 210, HiveSqlParser.RULE_collect_stats_clause); + this.enterRule(localctx, 210, HiveSql.RULE_collect_stats_clause); var _la = 0; // Token type try { this.enterOuterAlt(localctx, 1); - this.state = 1867; - this.match(HiveSqlParser.T_COLUMN); - this.state = 1868; - this.match(HiveSqlParser.T_OPEN_P); - this.state = 1869; + this.state = 1864; + this.match(HiveSql.T_COLUMN); + this.state = 1865; + this.match(HiveSql.T_OPEN_P); + this.state = 1866; this.ident(); - this.state = 1874; + this.state = 1871; this._errHandler.sync(this); _la = this._input.LA(1); - while(_la===HiveSqlParser.T_COMMA) { - this.state = 1870; - this.match(HiveSqlParser.T_COMMA); - this.state = 1871; + while(_la===HiveSql.T_COMMA) { + this.state = 1867; + this.match(HiveSql.T_COMMA); + this.state = 1868; this.ident(); - this.state = 1876; + this.state = 1873; this._errHandler.sync(this); _la = this._input.LA(1); } - this.state = 1877; - this.match(HiveSqlParser.T_CLOSE_P); + this.state = 1874; + this.match(HiveSql.T_CLOSE_P); } catch (re) { if(re instanceof antlr4.error.RecognitionException) { localctx.exception = re; @@ -18447,7 +18485,7 @@ function Close_stmtContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_close_stmt; + this.ruleIndex = HiveSql.RULE_close_stmt; return this; } @@ -18455,11 +18493,11 @@ Close_stmtContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); Close_stmtContext.prototype.constructor = Close_stmtContext; Close_stmtContext.prototype.T_CLOSE = function() { - return this.getToken(HiveSqlParser.T_CLOSE, 0); + return this.getToken(HiveSql.T_CLOSE, 0); }; Close_stmtContext.prototype.L_ID = function() { - return this.getToken(HiveSqlParser.L_ID, 0); + return this.getToken(HiveSql.L_ID, 0); }; Close_stmtContext.prototype.enterRule = function(listener) { @@ -18485,18 +18523,18 @@ Close_stmtContext.prototype.accept = function(visitor) { -HiveSqlParser.Close_stmtContext = Close_stmtContext; +HiveSql.Close_stmtContext = Close_stmtContext; -HiveSqlParser.prototype.close_stmt = function() { +HiveSql.prototype.close_stmt = function() { var localctx = new Close_stmtContext(this, this._ctx, this.state); - this.enterRule(localctx, 212, HiveSqlParser.RULE_close_stmt); + this.enterRule(localctx, 212, HiveSql.RULE_close_stmt); try { this.enterOuterAlt(localctx, 1); - this.state = 1879; - this.match(HiveSqlParser.T_CLOSE); - this.state = 1880; - this.match(HiveSqlParser.L_ID); + this.state = 1876; + this.match(HiveSql.T_CLOSE); + this.state = 1877; + this.match(HiveSql.L_ID); } catch (re) { if(re instanceof antlr4.error.RecognitionException) { localctx.exception = re; @@ -18521,7 +18559,7 @@ function Cmp_stmtContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_cmp_stmt; + this.ruleIndex = HiveSql.RULE_cmp_stmt; return this; } @@ -18529,7 +18567,7 @@ Cmp_stmtContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); Cmp_stmtContext.prototype.constructor = Cmp_stmtContext; Cmp_stmtContext.prototype.T_CMP = function() { - return this.getToken(HiveSqlParser.T_CMP, 0); + return this.getToken(HiveSql.T_CMP, 0); }; Cmp_stmtContext.prototype.cmp_source = function(i) { @@ -18544,15 +18582,15 @@ Cmp_stmtContext.prototype.cmp_source = function(i) { }; Cmp_stmtContext.prototype.T_COMMA = function() { - return this.getToken(HiveSqlParser.T_COMMA, 0); + return this.getToken(HiveSql.T_COMMA, 0); }; Cmp_stmtContext.prototype.T_ROW_COUNT = function() { - return this.getToken(HiveSqlParser.T_ROW_COUNT, 0); + return this.getToken(HiveSql.T_ROW_COUNT, 0); }; Cmp_stmtContext.prototype.T_SUM = function() { - return this.getToken(HiveSqlParser.T_SUM, 0); + return this.getToken(HiveSql.T_SUM, 0); }; Cmp_stmtContext.prototype.enterRule = function(listener) { @@ -18578,31 +18616,31 @@ Cmp_stmtContext.prototype.accept = function(visitor) { -HiveSqlParser.Cmp_stmtContext = Cmp_stmtContext; +HiveSql.Cmp_stmtContext = Cmp_stmtContext; -HiveSqlParser.prototype.cmp_stmt = function() { +HiveSql.prototype.cmp_stmt = function() { var localctx = new Cmp_stmtContext(this, this._ctx, this.state); - this.enterRule(localctx, 214, HiveSqlParser.RULE_cmp_stmt); + this.enterRule(localctx, 214, HiveSql.RULE_cmp_stmt); var _la = 0; // Token type try { this.enterOuterAlt(localctx, 1); - this.state = 1882; - this.match(HiveSqlParser.T_CMP); - this.state = 1883; + this.state = 1879; + this.match(HiveSql.T_CMP); + this.state = 1880; _la = this._input.LA(1); - if(!(_la===HiveSqlParser.T_ROW_COUNT || _la===HiveSqlParser.T_SUM)) { + if(!(_la===HiveSql.T_ROW_COUNT || _la===HiveSql.T_SUM)) { this._errHandler.recoverInline(this); } else { this._errHandler.reportMatch(this); this.consume(); } - this.state = 1884; + this.state = 1881; this.cmp_source(); - this.state = 1885; - this.match(HiveSqlParser.T_COMMA); - this.state = 1886; + this.state = 1882; + this.match(HiveSql.T_COMMA); + this.state = 1883; this.cmp_source(); } catch (re) { if(re instanceof antlr4.error.RecognitionException) { @@ -18628,7 +18666,7 @@ function Cmp_sourceContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_cmp_source; + this.ruleIndex = HiveSql.RULE_cmp_source; return this; } @@ -18640,7 +18678,7 @@ Cmp_sourceContext.prototype.table_name = function() { }; Cmp_sourceContext.prototype.T_OPEN_P = function() { - return this.getToken(HiveSqlParser.T_OPEN_P, 0); + return this.getToken(HiveSql.T_OPEN_P, 0); }; Cmp_sourceContext.prototype.select_stmt = function() { @@ -18648,11 +18686,11 @@ Cmp_sourceContext.prototype.select_stmt = function() { }; Cmp_sourceContext.prototype.T_CLOSE_P = function() { - return this.getToken(HiveSqlParser.T_CLOSE_P, 0); + return this.getToken(HiveSql.T_CLOSE_P, 0); }; Cmp_sourceContext.prototype.T_AT = function() { - return this.getToken(HiveSqlParser.T_AT, 0); + return this.getToken(HiveSql.T_AT, 0); }; Cmp_sourceContext.prototype.ident = function() { @@ -18686,366 +18724,365 @@ Cmp_sourceContext.prototype.accept = function(visitor) { -HiveSqlParser.Cmp_sourceContext = Cmp_sourceContext; +HiveSql.Cmp_sourceContext = Cmp_sourceContext; -HiveSqlParser.prototype.cmp_source = function() { +HiveSql.prototype.cmp_source = function() { var localctx = new Cmp_sourceContext(this, this._ctx, this.state); - this.enterRule(localctx, 216, HiveSqlParser.RULE_cmp_source); + this.enterRule(localctx, 216, HiveSql.RULE_cmp_source); try { this.enterOuterAlt(localctx, 1); - this.state = 1896; + this.state = 1893; this._errHandler.sync(this); switch(this._input.LA(1)) { - case HiveSqlParser.T__8: - case HiveSqlParser.T_GO: - case HiveSqlParser.T_BEGIN: - case HiveSqlParser.T_EXCEPTION: - case HiveSqlParser.L_ID: - case HiveSqlParser.T_THEN: - case HiveSqlParser.T_SET: - case HiveSqlParser.T_ALLOCATE: - case HiveSqlParser.T_CURSOR: - case HiveSqlParser.T_FOR: - case HiveSqlParser.T_RESULT: - case HiveSqlParser.T_PROCEDURE: - case HiveSqlParser.T_ASSOCIATE: - case HiveSqlParser.T_LOCATOR: - case HiveSqlParser.T_LOCATORS: - case HiveSqlParser.T_WITH: - case HiveSqlParser.T_TRANSACTION: - case HiveSqlParser.T_BREAK: - case HiveSqlParser.T_CALL: - case HiveSqlParser.T_DECLARE: - case HiveSqlParser.T_AS: - case HiveSqlParser.T_CONSTANT: - case HiveSqlParser.T_CONDITION: - case HiveSqlParser.T_IS: - case HiveSqlParser.T_RETURN: - case HiveSqlParser.T_ONLY: - case HiveSqlParser.T_TO: - case HiveSqlParser.T_CALLER: - case HiveSqlParser.T_CLIENT: - case HiveSqlParser.T_WITHOUT: - case HiveSqlParser.T_CONTINUE: - case HiveSqlParser.T_EXIT: - case HiveSqlParser.T_HANDLER: - case HiveSqlParser.T_SQLEXCEPTION: - case HiveSqlParser.T_SQLWARNING: - case HiveSqlParser.T_NOT: - case HiveSqlParser.T_FOUND: - case HiveSqlParser.T_GLOBAL: - case HiveSqlParser.T_TEMPORARY: - case HiveSqlParser.T_TABLE: - case HiveSqlParser.T_CREATE: - case HiveSqlParser.T_IF: - case HiveSqlParser.T_EXISTS: - case HiveSqlParser.T_LOCAL: - case HiveSqlParser.T_MULTISET: - case HiveSqlParser.T_VOLATILE: - case HiveSqlParser.T_LIKE: - case HiveSqlParser.T_CONSTRAINT: - case HiveSqlParser.T_PRIMARY: - case HiveSqlParser.T_KEY: - case HiveSqlParser.T_UNIQUE: - case HiveSqlParser.T_REFERENCES: - case HiveSqlParser.T_IDENTITY: - case HiveSqlParser.T_AUTO_INCREMENT: - case HiveSqlParser.T_ENABLE: - case HiveSqlParser.T_CLUSTERED: - case HiveSqlParser.T_ASC: - case HiveSqlParser.T_DESC: - case HiveSqlParser.T_FOREIGN: - case HiveSqlParser.T_ON: - case HiveSqlParser.T_UPDATE: - case HiveSqlParser.T_DELETE: - case HiveSqlParser.T_NO: - case HiveSqlParser.T_ACTION: - case HiveSqlParser.T_RESTRICT: - case HiveSqlParser.T_DEFAULT: - case HiveSqlParser.T_CASCADE: - case HiveSqlParser.T_LOG: - case HiveSqlParser.T_FALLBACK: - case HiveSqlParser.T_COMMIT: - case HiveSqlParser.T_PRESERVE: - case HiveSqlParser.T_ROWS: - case HiveSqlParser.T_SEGMENT: - case HiveSqlParser.T_CREATION: - case HiveSqlParser.T_IMMEDIATE: - case HiveSqlParser.T_DEFERRED: - case HiveSqlParser.T_PCTFREE: - case HiveSqlParser.T_PCTUSED: - case HiveSqlParser.T_INITRANS: - case HiveSqlParser.T_MAXTRANS: - case HiveSqlParser.T_NOCOMPRESS: - case HiveSqlParser.T_LOGGING: - case HiveSqlParser.T_NOLOGGING: - case HiveSqlParser.T_STORAGE: - case HiveSqlParser.T_TABLESPACE: - case HiveSqlParser.T_INDEX: - case HiveSqlParser.T_IN: - case HiveSqlParser.T_REPLACE: - case HiveSqlParser.T_DISTRIBUTE: - case HiveSqlParser.T_BY: - case HiveSqlParser.T_HASH: - case HiveSqlParser.T_LOGGED: - case HiveSqlParser.T_COMPRESS: - case HiveSqlParser.T_YES: - case HiveSqlParser.T_DEFINITION: - case HiveSqlParser.T_DROP: - case HiveSqlParser.T_DATA: - case HiveSqlParser.T_STORED: - case HiveSqlParser.T_ROW: - case HiveSqlParser.T_FORMAT: - case HiveSqlParser.T_DELIMITED: - case HiveSqlParser.T_FIELDS: - case HiveSqlParser.T_TERMINATED: - case HiveSqlParser.T_ESCAPED: - case HiveSqlParser.T_COLLECTION: - case HiveSqlParser.T_ITEMS: - case HiveSqlParser.T_MAP: - case HiveSqlParser.T_KEYS: - case HiveSqlParser.T_LINES: - case HiveSqlParser.T_DEFINED: - case HiveSqlParser.T_TEXTIMAGE_ON: - case HiveSqlParser.T_COMMENT: - case HiveSqlParser.T_CHARACTER: - case HiveSqlParser.T_CHARSET: - case HiveSqlParser.T_ENGINE: - case HiveSqlParser.T_ALTER: - case HiveSqlParser.T_ADD2: - case HiveSqlParser.T_CHAR: - case HiveSqlParser.T_BIGINT: - case HiveSqlParser.T_BINARY_DOUBLE: - case HiveSqlParser.T_BINARY_FLOAT: - case HiveSqlParser.T_BIT: - case HiveSqlParser.T_DATE: - case HiveSqlParser.T_DATETIME: - case HiveSqlParser.T_DEC: - case HiveSqlParser.T_DECIMAL: - case HiveSqlParser.T_DOUBLE: - case HiveSqlParser.T_PRECISION: - case HiveSqlParser.T_FLOAT: - case HiveSqlParser.T_INT: - case HiveSqlParser.T_INT2: - case HiveSqlParser.T_INT4: - case HiveSqlParser.T_INT8: - case HiveSqlParser.T_INTEGER: - case HiveSqlParser.T_NCHAR: - case HiveSqlParser.T_NVARCHAR: - case HiveSqlParser.T_NUMBER: - case HiveSqlParser.T_NUMERIC: - case HiveSqlParser.T_REAL: - case HiveSqlParser.T_RESULT_SET_LOCATOR: - case HiveSqlParser.T_VARYING: - case HiveSqlParser.T_SIMPLE_FLOAT: - case HiveSqlParser.T_SIMPLE_DOUBLE: - case HiveSqlParser.T_SMALLINT: - case HiveSqlParser.T_SMALLDATETIME: - case HiveSqlParser.T_STRING: - case HiveSqlParser.T_SYS_REFCURSOR: - case HiveSqlParser.T_TIMESTAMP: - case HiveSqlParser.T_VARCHAR: - case HiveSqlParser.T_VARCHAR2: - case HiveSqlParser.T_XML: - case HiveSqlParser.T_MAX: - case HiveSqlParser.T_BYTE: - case HiveSqlParser.T_CASESPECIFIC: - case HiveSqlParser.T_CS: - case HiveSqlParser.T_DATABASE: - case HiveSqlParser.T_SCHEMA: - case HiveSqlParser.T_LOCATION: - case HiveSqlParser.T_OR: - case HiveSqlParser.T_FUNCTION: - case HiveSqlParser.T_RETURNS: - case HiveSqlParser.T_PACKAGE: - case HiveSqlParser.T_PROC: - case HiveSqlParser.T_BODY: - case HiveSqlParser.T_OUT: - case HiveSqlParser.T_INOUT: - case HiveSqlParser.T_LANGUAGE: - case HiveSqlParser.T_SQL: - case HiveSqlParser.T_SECURITY: - case HiveSqlParser.T_CREATOR: - case HiveSqlParser.T_DEFINER: - case HiveSqlParser.T_INVOKER: - case HiveSqlParser.T_OWNER: - case HiveSqlParser.T_DYNAMIC: - case HiveSqlParser.T_SETS: - case HiveSqlParser.T_EXEC: - case HiveSqlParser.T_EXECUTE: - case HiveSqlParser.T_INTO: - case HiveSqlParser.T_INCLUDE: - case HiveSqlParser.T_INSERT: - case HiveSqlParser.T_OVERWRITE: - case HiveSqlParser.T_VALUES: - case HiveSqlParser.T_DIRECTORY: - case HiveSqlParser.T_GET: - case HiveSqlParser.T_DIAGNOSTICS: - case HiveSqlParser.T_MESSAGE_TEXT: - case HiveSqlParser.T_ROW_COUNT: - case HiveSqlParser.T_GRANT: - case HiveSqlParser.T_ROLE: - case HiveSqlParser.T_LEAVE: - case HiveSqlParser.T_OBJECT: - case HiveSqlParser.T_AT: - case HiveSqlParser.T_OPEN: - case HiveSqlParser.T_FETCH: - case HiveSqlParser.T_FROM: - case HiveSqlParser.T_COLLECT: - case HiveSqlParser.T_STATISTICS: - case HiveSqlParser.T_STATS: - case HiveSqlParser.T_COLUMN: - case HiveSqlParser.T_CLOSE: - case HiveSqlParser.T_CMP: - case HiveSqlParser.T_SUM: - case HiveSqlParser.T_COPY: - case HiveSqlParser.T_HDFS: - case HiveSqlParser.T_BATCHSIZE: - case HiveSqlParser.T_DELIMITER: - case HiveSqlParser.T_SQLINSERT: - case HiveSqlParser.T_IGNORE: - case HiveSqlParser.T_WORK: - case HiveSqlParser.T_PRINT: - case HiveSqlParser.T_QUIT: - case HiveSqlParser.T_RAISE: - case HiveSqlParser.T_RESIGNAL: - case HiveSqlParser.T_SQLSTATE: - case HiveSqlParser.T_VALUE: - case HiveSqlParser.T_ROLLBACK: - case HiveSqlParser.T_CURRENT: - case HiveSqlParser.T_CURRENT_SCHEMA: - case HiveSqlParser.T_ANSI_NULLS: - case HiveSqlParser.T_ANSI_PADDING: - case HiveSqlParser.T_NOCOUNT: - case HiveSqlParser.T_QUOTED_IDENTIFIER: - case HiveSqlParser.T_XACT_ABORT: - case HiveSqlParser.T_OFF: - case HiveSqlParser.T_QUERY_BAND: - case HiveSqlParser.T_NONE: - case HiveSqlParser.T_SESSION: - case HiveSqlParser.T_SIGNAL: - case HiveSqlParser.T_SUMMARY: - case HiveSqlParser.T_TOP: - case HiveSqlParser.T_LIMIT: - case HiveSqlParser.T_TRUNCATE: - case HiveSqlParser.T_USE: - case HiveSqlParser.T_WHILE: - case HiveSqlParser.T_DO: - case HiveSqlParser.T_LOOP: - case HiveSqlParser.T_REVERSE: - case HiveSqlParser.T_STEP: - case HiveSqlParser.T_USING: - case HiveSqlParser.T_ALL: - case HiveSqlParser.T_EXCEPT: - case HiveSqlParser.T_INTERSECT: - case HiveSqlParser.T_SELECT: - case HiveSqlParser.T_SEL: - case HiveSqlParser.T_DISTINCT: - case HiveSqlParser.T_TITLE: - case HiveSqlParser.T_INNER: - case HiveSqlParser.T_JOIN: - case HiveSqlParser.T_LEFT: - case HiveSqlParser.T_RIGHT: - case HiveSqlParser.T_FULL: - case HiveSqlParser.T_OUTER: - case HiveSqlParser.T_GROUP: - case HiveSqlParser.T_HAVING: - case HiveSqlParser.T_QUALIFY: - case HiveSqlParser.T_ORDER: - case HiveSqlParser.T_RR: - case HiveSqlParser.T_RS: - case HiveSqlParser.T_UR: - case HiveSqlParser.T_AND: - case HiveSqlParser.T_KEEP: - case HiveSqlParser.T_EXCLUSIVE: - case HiveSqlParser.T_SHARE: - case HiveSqlParser.T_LOCKS: - case HiveSqlParser.T_MERGE: - case HiveSqlParser.T_MATCHED: - case HiveSqlParser.T_DESCRIBE: - case HiveSqlParser.T_BETWEEN: - case HiveSqlParser.T_RLIKE: - case HiveSqlParser.T_REGEXP: - case HiveSqlParser.T_INTERVAL: - case HiveSqlParser.T_DAY: - case HiveSqlParser.T_DAYS: - case HiveSqlParser.T_MICROSECOND: - case HiveSqlParser.T_MICROSECONDS: - case HiveSqlParser.T_SECOND: - case HiveSqlParser.T_SECONDS: - case HiveSqlParser.T_CONCAT: - case HiveSqlParser.T_CASE: - case HiveSqlParser.T_ISOPEN: - case HiveSqlParser.T_NOTFOUND: - case HiveSqlParser.T_AVG: - case HiveSqlParser.T_COUNT: - case HiveSqlParser.T_COUNT_BIG: - case HiveSqlParser.T_CUME_DIST: - case HiveSqlParser.T_DENSE_RANK: - case HiveSqlParser.T_FIRST_VALUE: - case HiveSqlParser.T_LAG: - case HiveSqlParser.T_LAST_VALUE: - case HiveSqlParser.T_LEAD: - case HiveSqlParser.T_MIN: - case HiveSqlParser.T_RANK: - case HiveSqlParser.T_ROW_NUMBER: - case HiveSqlParser.T_STDEV: - case HiveSqlParser.T_VAR: - case HiveSqlParser.T_VARIANCE: - case HiveSqlParser.T_OVER: - case HiveSqlParser.T_PARTITION: - case HiveSqlParser.T_ACTIVITY_COUNT: - case HiveSqlParser.T_CAST: - case HiveSqlParser.T_CURRENT_DATE: - case HiveSqlParser.T_CURRENT_TIMESTAMP: - case HiveSqlParser.T_CURRENT_USER: - case HiveSqlParser.T_USER: - case HiveSqlParser.T_PART_COUNT: - case HiveSqlParser.T_PART_LOC: - case HiveSqlParser.T_TRIM: - case HiveSqlParser.T_SUBSTRING: - case HiveSqlParser.T_SYSDATE: - case HiveSqlParser.T_HIVE: - case HiveSqlParser.T_HOST: - case HiveSqlParser.T_TRUE: - case HiveSqlParser.T_FALSE: - case HiveSqlParser.T_DIR: - case HiveSqlParser.T_FILE: - case HiveSqlParser.T_FILES: - case HiveSqlParser.T_NEW: - case HiveSqlParser.T_PWD: - case HiveSqlParser.T_SESSIONS: - case HiveSqlParser.T_SUBDIR: - this.state = 1888; + case HiveSql.T_ACTION: + case HiveSql.T_ADD2: + case HiveSql.T_ALL: + case HiveSql.T_ALLOCATE: + case HiveSql.T_ALTER: + case HiveSql.T_AND: + case HiveSql.T_ANSI_NULLS: + case HiveSql.T_ANSI_PADDING: + case HiveSql.T_AS: + case HiveSql.T_ASC: + case HiveSql.T_ASSOCIATE: + case HiveSql.T_AT: + case HiveSql.T_AUTO_INCREMENT: + case HiveSql.T_AVG: + case HiveSql.T_BATCHSIZE: + case HiveSql.T_BEGIN: + case HiveSql.T_BETWEEN: + case HiveSql.T_BIGINT: + case HiveSql.T_BINARY_DOUBLE: + case HiveSql.T_BINARY_FLOAT: + case HiveSql.T_BIT: + case HiveSql.T_BODY: + case HiveSql.T_BREAK: + case HiveSql.T_BY: + case HiveSql.T_BYTE: + case HiveSql.T_CALL: + case HiveSql.T_CALLER: + case HiveSql.T_CASCADE: + case HiveSql.T_CASE: + case HiveSql.T_CASESPECIFIC: + case HiveSql.T_CAST: + case HiveSql.T_CHAR: + case HiveSql.T_CHARACTER: + case HiveSql.T_CHARSET: + case HiveSql.T_CLIENT: + case HiveSql.T_CLOSE: + case HiveSql.T_CLUSTERED: + case HiveSql.T_CMP: + case HiveSql.T_COLLECT: + case HiveSql.T_COLLECTION: + case HiveSql.T_COLUMN: + case HiveSql.T_COMMENT: + case HiveSql.T_CONSTANT: + case HiveSql.T_COMMIT: + case HiveSql.T_COMPRESS: + case HiveSql.T_CONCAT: + case HiveSql.T_CONDITION: + case HiveSql.T_CONSTRAINT: + case HiveSql.T_CONTINUE: + case HiveSql.T_COPY: + case HiveSql.T_COUNT: + case HiveSql.T_COUNT_BIG: + case HiveSql.T_CREATE: + case HiveSql.T_CREATION: + case HiveSql.T_CREATOR: + case HiveSql.T_CS: + case HiveSql.T_CURRENT: + case HiveSql.T_CURRENT_SCHEMA: + case HiveSql.T_CURSOR: + case HiveSql.T_DATABASE: + case HiveSql.T_DATA: + case HiveSql.T_DATE: + case HiveSql.T_DATETIME: + case HiveSql.T_DAY: + case HiveSql.T_DAYS: + case HiveSql.T_DEC: + case HiveSql.T_DECIMAL: + case HiveSql.T_DECLARE: + case HiveSql.T_DEFAULT: + case HiveSql.T_DEFERRED: + case HiveSql.T_DEFINED: + case HiveSql.T_DEFINER: + case HiveSql.T_DEFINITION: + case HiveSql.T_DELETE: + case HiveSql.T_DELIMITED: + case HiveSql.T_DELIMITER: + case HiveSql.T_DESC: + case HiveSql.T_DESCRIBE: + case HiveSql.T_DIAGNOSTICS: + case HiveSql.T_DIR: + case HiveSql.T_DIRECTORY: + case HiveSql.T_DISTINCT: + case HiveSql.T_DISTRIBUTE: + case HiveSql.T_DO: + case HiveSql.T_DOUBLE: + case HiveSql.T_DROP: + case HiveSql.T_DYNAMIC: + case HiveSql.T_ENABLE: + case HiveSql.T_ENGINE: + case HiveSql.T_ESCAPED: + case HiveSql.T_EXCEPT: + case HiveSql.T_EXEC: + case HiveSql.T_EXECUTE: + case HiveSql.T_EXCEPTION: + case HiveSql.T_EXCLUSIVE: + case HiveSql.T_EXISTS: + case HiveSql.T_EXIT: + case HiveSql.T_FALLBACK: + case HiveSql.T_FALSE: + case HiveSql.T_FETCH: + case HiveSql.T_FIELDS: + case HiveSql.T_FILE: + case HiveSql.T_FILES: + case HiveSql.T_FLOAT: + case HiveSql.T_FOR: + case HiveSql.T_FOREIGN: + case HiveSql.T_FORMAT: + case HiveSql.T_FOUND: + case HiveSql.T_FROM: + case HiveSql.T_FULL: + case HiveSql.T_FUNCTION: + case HiveSql.T_GET: + case HiveSql.T_GLOBAL: + case HiveSql.T_GO: + case HiveSql.T_GRANT: + case HiveSql.T_GROUP: + case HiveSql.T_HANDLER: + case HiveSql.T_HASH: + case HiveSql.T_HAVING: + case HiveSql.T_HDFS: + case HiveSql.T_HIVE: + case HiveSql.T_HOST: + case HiveSql.T_IDENTITY: + case HiveSql.T_IF: + case HiveSql.T_IGNORE: + case HiveSql.T_IMMEDIATE: + case HiveSql.T_IN: + case HiveSql.T_INCLUDE: + case HiveSql.T_INDEX: + case HiveSql.T_INITRANS: + case HiveSql.T_INNER: + case HiveSql.T_INOUT: + case HiveSql.T_INSERT: + case HiveSql.T_INT: + case HiveSql.T_INT2: + case HiveSql.T_INT4: + case HiveSql.T_INT8: + case HiveSql.T_INTEGER: + case HiveSql.T_INTERSECT: + case HiveSql.T_INTERVAL: + case HiveSql.T_INTO: + case HiveSql.T_INVOKER: + case HiveSql.T_IS: + case HiveSql.T_ISOPEN: + case HiveSql.T_ITEMS: + case HiveSql.T_JOIN: + case HiveSql.T_KEEP: + case HiveSql.T_KEY: + case HiveSql.T_KEYS: + case HiveSql.T_LANGUAGE: + case HiveSql.T_LEAVE: + case HiveSql.T_LEFT: + case HiveSql.T_LIKE: + case HiveSql.T_LIMIT: + case HiveSql.T_LINES: + case HiveSql.T_LOCAL: + case HiveSql.T_LOCATION: + case HiveSql.T_LOCATOR: + case HiveSql.T_LOCATORS: + case HiveSql.T_LOCKS: + case HiveSql.T_LOG: + case HiveSql.T_LOGGED: + case HiveSql.T_LOGGING: + case HiveSql.T_LOOP: + case HiveSql.T_MAP: + case HiveSql.T_MATCHED: + case HiveSql.T_MAX: + case HiveSql.T_MAXTRANS: + case HiveSql.T_MERGE: + case HiveSql.T_MESSAGE_TEXT: + case HiveSql.T_MICROSECOND: + case HiveSql.T_MICROSECONDS: + case HiveSql.T_MIN: + case HiveSql.T_MULTISET: + case HiveSql.T_NCHAR: + case HiveSql.T_NEW: + case HiveSql.T_NVARCHAR: + case HiveSql.T_NO: + case HiveSql.T_NOCOUNT: + case HiveSql.T_NOCOMPRESS: + case HiveSql.T_NOLOGGING: + case HiveSql.T_NONE: + case HiveSql.T_NOT: + case HiveSql.T_NOTFOUND: + case HiveSql.T_NUMERIC: + case HiveSql.T_NUMBER: + case HiveSql.T_OBJECT: + case HiveSql.T_OFF: + case HiveSql.T_ON: + case HiveSql.T_ONLY: + case HiveSql.T_OPEN: + case HiveSql.T_OR: + case HiveSql.T_ORDER: + case HiveSql.T_OUT: + case HiveSql.T_OUTER: + case HiveSql.T_OVER: + case HiveSql.T_OVERWRITE: + case HiveSql.T_OWNER: + case HiveSql.T_PACKAGE: + case HiveSql.T_PARTITION: + case HiveSql.T_PCTFREE: + case HiveSql.T_PCTUSED: + case HiveSql.T_PRECISION: + case HiveSql.T_PRESERVE: + case HiveSql.T_PRIMARY: + case HiveSql.T_PRINT: + case HiveSql.T_PROC: + case HiveSql.T_PROCEDURE: + case HiveSql.T_QUALIFY: + case HiveSql.T_QUERY_BAND: + case HiveSql.T_QUIT: + case HiveSql.T_QUOTED_IDENTIFIER: + case HiveSql.T_RAISE: + case HiveSql.T_REAL: + case HiveSql.T_REFERENCES: + case HiveSql.T_REGEXP: + case HiveSql.T_REPLACE: + case HiveSql.T_RESIGNAL: + case HiveSql.T_RESTRICT: + case HiveSql.T_RESULT: + case HiveSql.T_RESULT_SET_LOCATOR: + case HiveSql.T_RETURN: + case HiveSql.T_RETURNS: + case HiveSql.T_REVERSE: + case HiveSql.T_RIGHT: + case HiveSql.T_RLIKE: + case HiveSql.T_ROLE: + case HiveSql.T_ROLLBACK: + case HiveSql.T_ROW: + case HiveSql.T_ROWS: + case HiveSql.T_ROW_COUNT: + case HiveSql.T_RR: + case HiveSql.T_RS: + case HiveSql.T_PWD: + case HiveSql.T_TRIM: + case HiveSql.T_SCHEMA: + case HiveSql.T_SECOND: + case HiveSql.T_SECONDS: + case HiveSql.T_SECURITY: + case HiveSql.T_SEGMENT: + case HiveSql.T_SEL: + case HiveSql.T_SELECT: + case HiveSql.T_SET: + case HiveSql.T_SESSION: + case HiveSql.T_SESSIONS: + case HiveSql.T_SETS: + case HiveSql.T_SHARE: + case HiveSql.T_SIGNAL: + case HiveSql.T_SIMPLE_DOUBLE: + case HiveSql.T_SIMPLE_FLOAT: + case HiveSql.T_SMALLDATETIME: + case HiveSql.T_SMALLINT: + case HiveSql.T_SQL: + case HiveSql.T_SQLEXCEPTION: + case HiveSql.T_SQLINSERT: + case HiveSql.T_SQLSTATE: + case HiveSql.T_SQLWARNING: + case HiveSql.T_STATS: + case HiveSql.T_STATISTICS: + case HiveSql.T_STEP: + case HiveSql.T_STORAGE: + case HiveSql.T_STORED: + case HiveSql.T_STRING: + case HiveSql.T_SUBDIR: + case HiveSql.T_SUBSTRING: + case HiveSql.T_SUM: + case HiveSql.T_SUMMARY: + case HiveSql.T_SYS_REFCURSOR: + case HiveSql.T_TABLE: + case HiveSql.T_TABLESPACE: + case HiveSql.T_TEMPORARY: + case HiveSql.T_TERMINATED: + case HiveSql.T_TEXTIMAGE_ON: + case HiveSql.T_THEN: + case HiveSql.T_TIMESTAMP: + case HiveSql.T_TITLE: + case HiveSql.T_TO: + case HiveSql.T_TOP: + case HiveSql.T_TRANSACTION: + case HiveSql.T_TRUE: + case HiveSql.T_TRUNCATE: + case HiveSql.T_UNIQUE: + case HiveSql.T_UPDATE: + case HiveSql.T_UR: + case HiveSql.T_USE: + case HiveSql.T_USING: + case HiveSql.T_VALUE: + case HiveSql.T_VALUES: + case HiveSql.T_VAR: + case HiveSql.T_VARCHAR: + case HiveSql.T_VARCHAR2: + case HiveSql.T_VARYING: + case HiveSql.T_VOLATILE: + case HiveSql.T_WHILE: + case HiveSql.T_WITH: + case HiveSql.T_WITHOUT: + case HiveSql.T_WORK: + case HiveSql.T_XACT_ABORT: + case HiveSql.T_XML: + case HiveSql.T_YES: + case HiveSql.T_ACTIVITY_COUNT: + case HiveSql.T_CUME_DIST: + case HiveSql.T_CURRENT_DATE: + case HiveSql.T_CURRENT_TIMESTAMP: + case HiveSql.T_CURRENT_USER: + case HiveSql.T_DENSE_RANK: + case HiveSql.T_FIRST_VALUE: + case HiveSql.T_LAG: + case HiveSql.T_LAST_VALUE: + case HiveSql.T_LEAD: + case HiveSql.T_PART_COUNT: + case HiveSql.T_PART_LOC: + case HiveSql.T_RANK: + case HiveSql.T_ROW_NUMBER: + case HiveSql.T_STDEV: + case HiveSql.T_SYSDATE: + case HiveSql.T_VARIANCE: + case HiveSql.T_USER: + case HiveSql.L_ID: + this.state = 1885; this.table_name(); - this.state = 1890; + this.state = 1887; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,209,this._ctx); if(la_===1) { - this.state = 1889; + this.state = 1886; this.where_clause(); } break; - case HiveSqlParser.T_OPEN_P: - this.state = 1892; - this.match(HiveSqlParser.T_OPEN_P); - this.state = 1893; + case HiveSql.T_OPEN_P: + this.state = 1889; + this.match(HiveSql.T_OPEN_P); + this.state = 1890; this.select_stmt(); - this.state = 1894; - this.match(HiveSqlParser.T_CLOSE_P); + this.state = 1891; + this.match(HiveSql.T_CLOSE_P); break; default: throw new antlr4.error.NoViableAltException(this); } - this.state = 1900; + this.state = 1897; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,211,this._ctx); if(la_===1) { - this.state = 1898; - this.match(HiveSqlParser.T_AT); - this.state = 1899; + this.state = 1895; + this.match(HiveSql.T_AT); + this.state = 1896; this.ident(); } @@ -19073,7 +19110,7 @@ function Copy_from_local_stmtContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_copy_from_local_stmt; + this.ruleIndex = HiveSql.RULE_copy_from_local_stmt; return this; } @@ -19081,15 +19118,15 @@ Copy_from_local_stmtContext.prototype = Object.create(antlr4.ParserRuleContext.p Copy_from_local_stmtContext.prototype.constructor = Copy_from_local_stmtContext; Copy_from_local_stmtContext.prototype.T_COPY = function() { - return this.getToken(HiveSqlParser.T_COPY, 0); + return this.getToken(HiveSql.T_COPY, 0); }; Copy_from_local_stmtContext.prototype.T_FROM = function() { - return this.getToken(HiveSqlParser.T_FROM, 0); + return this.getToken(HiveSql.T_FROM, 0); }; Copy_from_local_stmtContext.prototype.T_LOCAL = function() { - return this.getToken(HiveSqlParser.T_LOCAL, 0); + return this.getToken(HiveSql.T_LOCAL, 0); }; Copy_from_local_stmtContext.prototype.copy_source = function(i) { @@ -19104,7 +19141,7 @@ Copy_from_local_stmtContext.prototype.copy_source = function(i) { }; Copy_from_local_stmtContext.prototype.T_TO = function() { - return this.getToken(HiveSqlParser.T_TO, 0); + return this.getToken(HiveSql.T_TO, 0); }; Copy_from_local_stmtContext.prototype.copy_target = function() { @@ -19116,9 +19153,9 @@ Copy_from_local_stmtContext.prototype.T_COMMA = function(i) { i = null; } if(i===null) { - return this.getTokens(HiveSqlParser.T_COMMA); + return this.getTokens(HiveSql.T_COMMA); } else { - return this.getToken(HiveSqlParser.T_COMMA, i); + return this.getToken(HiveSql.T_COMMA, i); } }; @@ -19157,48 +19194,48 @@ Copy_from_local_stmtContext.prototype.accept = function(visitor) { -HiveSqlParser.Copy_from_local_stmtContext = Copy_from_local_stmtContext; +HiveSql.Copy_from_local_stmtContext = Copy_from_local_stmtContext; -HiveSqlParser.prototype.copy_from_local_stmt = function() { +HiveSql.prototype.copy_from_local_stmt = function() { var localctx = new Copy_from_local_stmtContext(this, this._ctx, this.state); - this.enterRule(localctx, 218, HiveSqlParser.RULE_copy_from_local_stmt); + this.enterRule(localctx, 218, HiveSql.RULE_copy_from_local_stmt); var _la = 0; // Token type try { this.enterOuterAlt(localctx, 1); + this.state = 1899; + this.match(HiveSql.T_COPY); + this.state = 1900; + this.match(HiveSql.T_FROM); + this.state = 1901; + this.match(HiveSql.T_LOCAL); this.state = 1902; - this.match(HiveSqlParser.T_COPY); - this.state = 1903; - this.match(HiveSqlParser.T_FROM); - this.state = 1904; - this.match(HiveSqlParser.T_LOCAL); - this.state = 1905; this.copy_source(); - this.state = 1910; + this.state = 1907; this._errHandler.sync(this); _la = this._input.LA(1); - while(_la===HiveSqlParser.T_COMMA) { - this.state = 1906; - this.match(HiveSqlParser.T_COMMA); - this.state = 1907; + while(_la===HiveSql.T_COMMA) { + this.state = 1903; + this.match(HiveSql.T_COMMA); + this.state = 1904; this.copy_source(); - this.state = 1912; + this.state = 1909; this._errHandler.sync(this); _la = this._input.LA(1); } - this.state = 1913; - this.match(HiveSqlParser.T_TO); - this.state = 1914; + this.state = 1910; + this.match(HiveSql.T_TO); + this.state = 1911; this.copy_target(); - this.state = 1918; + this.state = 1915; this._errHandler.sync(this); var _alt = this._interp.adaptivePredict(this._input,213,this._ctx) while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { if(_alt===1) { - this.state = 1915; + this.state = 1912; this.copy_file_option(); } - this.state = 1920; + this.state = 1917; this._errHandler.sync(this); _alt = this._interp.adaptivePredict(this._input,213,this._ctx); } @@ -19227,7 +19264,7 @@ function Copy_stmtContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_copy_stmt; + this.ruleIndex = HiveSql.RULE_copy_stmt; return this; } @@ -19235,11 +19272,11 @@ Copy_stmtContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); Copy_stmtContext.prototype.constructor = Copy_stmtContext; Copy_stmtContext.prototype.T_COPY = function() { - return this.getToken(HiveSqlParser.T_COPY, 0); + return this.getToken(HiveSql.T_COPY, 0); }; Copy_stmtContext.prototype.T_TO = function() { - return this.getToken(HiveSqlParser.T_TO, 0); + return this.getToken(HiveSql.T_TO, 0); }; Copy_stmtContext.prototype.copy_target = function() { @@ -19251,7 +19288,7 @@ Copy_stmtContext.prototype.table_name = function() { }; Copy_stmtContext.prototype.T_OPEN_P = function() { - return this.getToken(HiveSqlParser.T_OPEN_P, 0); + return this.getToken(HiveSql.T_OPEN_P, 0); }; Copy_stmtContext.prototype.select_stmt = function() { @@ -19259,11 +19296,11 @@ Copy_stmtContext.prototype.select_stmt = function() { }; Copy_stmtContext.prototype.T_CLOSE_P = function() { - return this.getToken(HiveSqlParser.T_CLOSE_P, 0); + return this.getToken(HiveSql.T_CLOSE_P, 0); }; Copy_stmtContext.prototype.T_HDFS = function() { - return this.getToken(HiveSqlParser.T_HDFS, 0); + return this.getToken(HiveSql.T_HDFS, 0); }; Copy_stmtContext.prototype.copy_option = function(i) { @@ -19300,374 +19337,373 @@ Copy_stmtContext.prototype.accept = function(visitor) { -HiveSqlParser.Copy_stmtContext = Copy_stmtContext; +HiveSql.Copy_stmtContext = Copy_stmtContext; -HiveSqlParser.prototype.copy_stmt = function() { +HiveSql.prototype.copy_stmt = function() { var localctx = new Copy_stmtContext(this, this._ctx, this.state); - this.enterRule(localctx, 220, HiveSqlParser.RULE_copy_stmt); + this.enterRule(localctx, 220, HiveSql.RULE_copy_stmt); try { this.enterOuterAlt(localctx, 1); - this.state = 1921; - this.match(HiveSqlParser.T_COPY); - this.state = 1927; + this.state = 1918; + this.match(HiveSql.T_COPY); + this.state = 1924; this._errHandler.sync(this); switch(this._input.LA(1)) { - case HiveSqlParser.T__8: - case HiveSqlParser.T_GO: - case HiveSqlParser.T_BEGIN: - case HiveSqlParser.T_EXCEPTION: - case HiveSqlParser.L_ID: - case HiveSqlParser.T_THEN: - case HiveSqlParser.T_SET: - case HiveSqlParser.T_ALLOCATE: - case HiveSqlParser.T_CURSOR: - case HiveSqlParser.T_FOR: - case HiveSqlParser.T_RESULT: - case HiveSqlParser.T_PROCEDURE: - case HiveSqlParser.T_ASSOCIATE: - case HiveSqlParser.T_LOCATOR: - case HiveSqlParser.T_LOCATORS: - case HiveSqlParser.T_WITH: - case HiveSqlParser.T_TRANSACTION: - case HiveSqlParser.T_BREAK: - case HiveSqlParser.T_CALL: - case HiveSqlParser.T_DECLARE: - case HiveSqlParser.T_AS: - case HiveSqlParser.T_CONSTANT: - case HiveSqlParser.T_CONDITION: - case HiveSqlParser.T_IS: - case HiveSqlParser.T_RETURN: - case HiveSqlParser.T_ONLY: - case HiveSqlParser.T_TO: - case HiveSqlParser.T_CALLER: - case HiveSqlParser.T_CLIENT: - case HiveSqlParser.T_WITHOUT: - case HiveSqlParser.T_CONTINUE: - case HiveSqlParser.T_EXIT: - case HiveSqlParser.T_HANDLER: - case HiveSqlParser.T_SQLEXCEPTION: - case HiveSqlParser.T_SQLWARNING: - case HiveSqlParser.T_NOT: - case HiveSqlParser.T_FOUND: - case HiveSqlParser.T_GLOBAL: - case HiveSqlParser.T_TEMPORARY: - case HiveSqlParser.T_TABLE: - case HiveSqlParser.T_CREATE: - case HiveSqlParser.T_IF: - case HiveSqlParser.T_EXISTS: - case HiveSqlParser.T_LOCAL: - case HiveSqlParser.T_MULTISET: - case HiveSqlParser.T_VOLATILE: - case HiveSqlParser.T_LIKE: - case HiveSqlParser.T_CONSTRAINT: - case HiveSqlParser.T_PRIMARY: - case HiveSqlParser.T_KEY: - case HiveSqlParser.T_UNIQUE: - case HiveSqlParser.T_REFERENCES: - case HiveSqlParser.T_IDENTITY: - case HiveSqlParser.T_AUTO_INCREMENT: - case HiveSqlParser.T_ENABLE: - case HiveSqlParser.T_CLUSTERED: - case HiveSqlParser.T_ASC: - case HiveSqlParser.T_DESC: - case HiveSqlParser.T_FOREIGN: - case HiveSqlParser.T_ON: - case HiveSqlParser.T_UPDATE: - case HiveSqlParser.T_DELETE: - case HiveSqlParser.T_NO: - case HiveSqlParser.T_ACTION: - case HiveSqlParser.T_RESTRICT: - case HiveSqlParser.T_DEFAULT: - case HiveSqlParser.T_CASCADE: - case HiveSqlParser.T_LOG: - case HiveSqlParser.T_FALLBACK: - case HiveSqlParser.T_COMMIT: - case HiveSqlParser.T_PRESERVE: - case HiveSqlParser.T_ROWS: - case HiveSqlParser.T_SEGMENT: - case HiveSqlParser.T_CREATION: - case HiveSqlParser.T_IMMEDIATE: - case HiveSqlParser.T_DEFERRED: - case HiveSqlParser.T_PCTFREE: - case HiveSqlParser.T_PCTUSED: - case HiveSqlParser.T_INITRANS: - case HiveSqlParser.T_MAXTRANS: - case HiveSqlParser.T_NOCOMPRESS: - case HiveSqlParser.T_LOGGING: - case HiveSqlParser.T_NOLOGGING: - case HiveSqlParser.T_STORAGE: - case HiveSqlParser.T_TABLESPACE: - case HiveSqlParser.T_INDEX: - case HiveSqlParser.T_IN: - case HiveSqlParser.T_REPLACE: - case HiveSqlParser.T_DISTRIBUTE: - case HiveSqlParser.T_BY: - case HiveSqlParser.T_HASH: - case HiveSqlParser.T_LOGGED: - case HiveSqlParser.T_COMPRESS: - case HiveSqlParser.T_YES: - case HiveSqlParser.T_DEFINITION: - case HiveSqlParser.T_DROP: - case HiveSqlParser.T_DATA: - case HiveSqlParser.T_STORED: - case HiveSqlParser.T_ROW: - case HiveSqlParser.T_FORMAT: - case HiveSqlParser.T_DELIMITED: - case HiveSqlParser.T_FIELDS: - case HiveSqlParser.T_TERMINATED: - case HiveSqlParser.T_ESCAPED: - case HiveSqlParser.T_COLLECTION: - case HiveSqlParser.T_ITEMS: - case HiveSqlParser.T_MAP: - case HiveSqlParser.T_KEYS: - case HiveSqlParser.T_LINES: - case HiveSqlParser.T_DEFINED: - case HiveSqlParser.T_TEXTIMAGE_ON: - case HiveSqlParser.T_COMMENT: - case HiveSqlParser.T_CHARACTER: - case HiveSqlParser.T_CHARSET: - case HiveSqlParser.T_ENGINE: - case HiveSqlParser.T_ALTER: - case HiveSqlParser.T_ADD2: - case HiveSqlParser.T_CHAR: - case HiveSqlParser.T_BIGINT: - case HiveSqlParser.T_BINARY_DOUBLE: - case HiveSqlParser.T_BINARY_FLOAT: - case HiveSqlParser.T_BIT: - case HiveSqlParser.T_DATE: - case HiveSqlParser.T_DATETIME: - case HiveSqlParser.T_DEC: - case HiveSqlParser.T_DECIMAL: - case HiveSqlParser.T_DOUBLE: - case HiveSqlParser.T_PRECISION: - case HiveSqlParser.T_FLOAT: - case HiveSqlParser.T_INT: - case HiveSqlParser.T_INT2: - case HiveSqlParser.T_INT4: - case HiveSqlParser.T_INT8: - case HiveSqlParser.T_INTEGER: - case HiveSqlParser.T_NCHAR: - case HiveSqlParser.T_NVARCHAR: - case HiveSqlParser.T_NUMBER: - case HiveSqlParser.T_NUMERIC: - case HiveSqlParser.T_REAL: - case HiveSqlParser.T_RESULT_SET_LOCATOR: - case HiveSqlParser.T_VARYING: - case HiveSqlParser.T_SIMPLE_FLOAT: - case HiveSqlParser.T_SIMPLE_DOUBLE: - case HiveSqlParser.T_SMALLINT: - case HiveSqlParser.T_SMALLDATETIME: - case HiveSqlParser.T_STRING: - case HiveSqlParser.T_SYS_REFCURSOR: - case HiveSqlParser.T_TIMESTAMP: - case HiveSqlParser.T_VARCHAR: - case HiveSqlParser.T_VARCHAR2: - case HiveSqlParser.T_XML: - case HiveSqlParser.T_MAX: - case HiveSqlParser.T_BYTE: - case HiveSqlParser.T_CASESPECIFIC: - case HiveSqlParser.T_CS: - case HiveSqlParser.T_DATABASE: - case HiveSqlParser.T_SCHEMA: - case HiveSqlParser.T_LOCATION: - case HiveSqlParser.T_OR: - case HiveSqlParser.T_FUNCTION: - case HiveSqlParser.T_RETURNS: - case HiveSqlParser.T_PACKAGE: - case HiveSqlParser.T_PROC: - case HiveSqlParser.T_BODY: - case HiveSqlParser.T_OUT: - case HiveSqlParser.T_INOUT: - case HiveSqlParser.T_LANGUAGE: - case HiveSqlParser.T_SQL: - case HiveSqlParser.T_SECURITY: - case HiveSqlParser.T_CREATOR: - case HiveSqlParser.T_DEFINER: - case HiveSqlParser.T_INVOKER: - case HiveSqlParser.T_OWNER: - case HiveSqlParser.T_DYNAMIC: - case HiveSqlParser.T_SETS: - case HiveSqlParser.T_EXEC: - case HiveSqlParser.T_EXECUTE: - case HiveSqlParser.T_INTO: - case HiveSqlParser.T_INCLUDE: - case HiveSqlParser.T_INSERT: - case HiveSqlParser.T_OVERWRITE: - case HiveSqlParser.T_VALUES: - case HiveSqlParser.T_DIRECTORY: - case HiveSqlParser.T_GET: - case HiveSqlParser.T_DIAGNOSTICS: - case HiveSqlParser.T_MESSAGE_TEXT: - case HiveSqlParser.T_ROW_COUNT: - case HiveSqlParser.T_GRANT: - case HiveSqlParser.T_ROLE: - case HiveSqlParser.T_LEAVE: - case HiveSqlParser.T_OBJECT: - case HiveSqlParser.T_AT: - case HiveSqlParser.T_OPEN: - case HiveSqlParser.T_FETCH: - case HiveSqlParser.T_FROM: - case HiveSqlParser.T_COLLECT: - case HiveSqlParser.T_STATISTICS: - case HiveSqlParser.T_STATS: - case HiveSqlParser.T_COLUMN: - case HiveSqlParser.T_CLOSE: - case HiveSqlParser.T_CMP: - case HiveSqlParser.T_SUM: - case HiveSqlParser.T_COPY: - case HiveSqlParser.T_HDFS: - case HiveSqlParser.T_BATCHSIZE: - case HiveSqlParser.T_DELIMITER: - case HiveSqlParser.T_SQLINSERT: - case HiveSqlParser.T_IGNORE: - case HiveSqlParser.T_WORK: - case HiveSqlParser.T_PRINT: - case HiveSqlParser.T_QUIT: - case HiveSqlParser.T_RAISE: - case HiveSqlParser.T_RESIGNAL: - case HiveSqlParser.T_SQLSTATE: - case HiveSqlParser.T_VALUE: - case HiveSqlParser.T_ROLLBACK: - case HiveSqlParser.T_CURRENT: - case HiveSqlParser.T_CURRENT_SCHEMA: - case HiveSqlParser.T_ANSI_NULLS: - case HiveSqlParser.T_ANSI_PADDING: - case HiveSqlParser.T_NOCOUNT: - case HiveSqlParser.T_QUOTED_IDENTIFIER: - case HiveSqlParser.T_XACT_ABORT: - case HiveSqlParser.T_OFF: - case HiveSqlParser.T_QUERY_BAND: - case HiveSqlParser.T_NONE: - case HiveSqlParser.T_SESSION: - case HiveSqlParser.T_SIGNAL: - case HiveSqlParser.T_SUMMARY: - case HiveSqlParser.T_TOP: - case HiveSqlParser.T_LIMIT: - case HiveSqlParser.T_TRUNCATE: - case HiveSqlParser.T_USE: - case HiveSqlParser.T_WHILE: - case HiveSqlParser.T_DO: - case HiveSqlParser.T_LOOP: - case HiveSqlParser.T_REVERSE: - case HiveSqlParser.T_STEP: - case HiveSqlParser.T_USING: - case HiveSqlParser.T_ALL: - case HiveSqlParser.T_EXCEPT: - case HiveSqlParser.T_INTERSECT: - case HiveSqlParser.T_SELECT: - case HiveSqlParser.T_SEL: - case HiveSqlParser.T_DISTINCT: - case HiveSqlParser.T_TITLE: - case HiveSqlParser.T_INNER: - case HiveSqlParser.T_JOIN: - case HiveSqlParser.T_LEFT: - case HiveSqlParser.T_RIGHT: - case HiveSqlParser.T_FULL: - case HiveSqlParser.T_OUTER: - case HiveSqlParser.T_GROUP: - case HiveSqlParser.T_HAVING: - case HiveSqlParser.T_QUALIFY: - case HiveSqlParser.T_ORDER: - case HiveSqlParser.T_RR: - case HiveSqlParser.T_RS: - case HiveSqlParser.T_UR: - case HiveSqlParser.T_AND: - case HiveSqlParser.T_KEEP: - case HiveSqlParser.T_EXCLUSIVE: - case HiveSqlParser.T_SHARE: - case HiveSqlParser.T_LOCKS: - case HiveSqlParser.T_MERGE: - case HiveSqlParser.T_MATCHED: - case HiveSqlParser.T_DESCRIBE: - case HiveSqlParser.T_BETWEEN: - case HiveSqlParser.T_RLIKE: - case HiveSqlParser.T_REGEXP: - case HiveSqlParser.T_INTERVAL: - case HiveSqlParser.T_DAY: - case HiveSqlParser.T_DAYS: - case HiveSqlParser.T_MICROSECOND: - case HiveSqlParser.T_MICROSECONDS: - case HiveSqlParser.T_SECOND: - case HiveSqlParser.T_SECONDS: - case HiveSqlParser.T_CONCAT: - case HiveSqlParser.T_CASE: - case HiveSqlParser.T_ISOPEN: - case HiveSqlParser.T_NOTFOUND: - case HiveSqlParser.T_AVG: - case HiveSqlParser.T_COUNT: - case HiveSqlParser.T_COUNT_BIG: - case HiveSqlParser.T_CUME_DIST: - case HiveSqlParser.T_DENSE_RANK: - case HiveSqlParser.T_FIRST_VALUE: - case HiveSqlParser.T_LAG: - case HiveSqlParser.T_LAST_VALUE: - case HiveSqlParser.T_LEAD: - case HiveSqlParser.T_MIN: - case HiveSqlParser.T_RANK: - case HiveSqlParser.T_ROW_NUMBER: - case HiveSqlParser.T_STDEV: - case HiveSqlParser.T_VAR: - case HiveSqlParser.T_VARIANCE: - case HiveSqlParser.T_OVER: - case HiveSqlParser.T_PARTITION: - case HiveSqlParser.T_ACTIVITY_COUNT: - case HiveSqlParser.T_CAST: - case HiveSqlParser.T_CURRENT_DATE: - case HiveSqlParser.T_CURRENT_TIMESTAMP: - case HiveSqlParser.T_CURRENT_USER: - case HiveSqlParser.T_USER: - case HiveSqlParser.T_PART_COUNT: - case HiveSqlParser.T_PART_LOC: - case HiveSqlParser.T_TRIM: - case HiveSqlParser.T_SUBSTRING: - case HiveSqlParser.T_SYSDATE: - case HiveSqlParser.T_HIVE: - case HiveSqlParser.T_HOST: - case HiveSqlParser.T_TRUE: - case HiveSqlParser.T_FALSE: - case HiveSqlParser.T_DIR: - case HiveSqlParser.T_FILE: - case HiveSqlParser.T_FILES: - case HiveSqlParser.T_NEW: - case HiveSqlParser.T_PWD: - case HiveSqlParser.T_SESSIONS: - case HiveSqlParser.T_SUBDIR: - this.state = 1922; + case HiveSql.T_ACTION: + case HiveSql.T_ADD2: + case HiveSql.T_ALL: + case HiveSql.T_ALLOCATE: + case HiveSql.T_ALTER: + case HiveSql.T_AND: + case HiveSql.T_ANSI_NULLS: + case HiveSql.T_ANSI_PADDING: + case HiveSql.T_AS: + case HiveSql.T_ASC: + case HiveSql.T_ASSOCIATE: + case HiveSql.T_AT: + case HiveSql.T_AUTO_INCREMENT: + case HiveSql.T_AVG: + case HiveSql.T_BATCHSIZE: + case HiveSql.T_BEGIN: + case HiveSql.T_BETWEEN: + case HiveSql.T_BIGINT: + case HiveSql.T_BINARY_DOUBLE: + case HiveSql.T_BINARY_FLOAT: + case HiveSql.T_BIT: + case HiveSql.T_BODY: + case HiveSql.T_BREAK: + case HiveSql.T_BY: + case HiveSql.T_BYTE: + case HiveSql.T_CALL: + case HiveSql.T_CALLER: + case HiveSql.T_CASCADE: + case HiveSql.T_CASE: + case HiveSql.T_CASESPECIFIC: + case HiveSql.T_CAST: + case HiveSql.T_CHAR: + case HiveSql.T_CHARACTER: + case HiveSql.T_CHARSET: + case HiveSql.T_CLIENT: + case HiveSql.T_CLOSE: + case HiveSql.T_CLUSTERED: + case HiveSql.T_CMP: + case HiveSql.T_COLLECT: + case HiveSql.T_COLLECTION: + case HiveSql.T_COLUMN: + case HiveSql.T_COMMENT: + case HiveSql.T_CONSTANT: + case HiveSql.T_COMMIT: + case HiveSql.T_COMPRESS: + case HiveSql.T_CONCAT: + case HiveSql.T_CONDITION: + case HiveSql.T_CONSTRAINT: + case HiveSql.T_CONTINUE: + case HiveSql.T_COPY: + case HiveSql.T_COUNT: + case HiveSql.T_COUNT_BIG: + case HiveSql.T_CREATE: + case HiveSql.T_CREATION: + case HiveSql.T_CREATOR: + case HiveSql.T_CS: + case HiveSql.T_CURRENT: + case HiveSql.T_CURRENT_SCHEMA: + case HiveSql.T_CURSOR: + case HiveSql.T_DATABASE: + case HiveSql.T_DATA: + case HiveSql.T_DATE: + case HiveSql.T_DATETIME: + case HiveSql.T_DAY: + case HiveSql.T_DAYS: + case HiveSql.T_DEC: + case HiveSql.T_DECIMAL: + case HiveSql.T_DECLARE: + case HiveSql.T_DEFAULT: + case HiveSql.T_DEFERRED: + case HiveSql.T_DEFINED: + case HiveSql.T_DEFINER: + case HiveSql.T_DEFINITION: + case HiveSql.T_DELETE: + case HiveSql.T_DELIMITED: + case HiveSql.T_DELIMITER: + case HiveSql.T_DESC: + case HiveSql.T_DESCRIBE: + case HiveSql.T_DIAGNOSTICS: + case HiveSql.T_DIR: + case HiveSql.T_DIRECTORY: + case HiveSql.T_DISTINCT: + case HiveSql.T_DISTRIBUTE: + case HiveSql.T_DO: + case HiveSql.T_DOUBLE: + case HiveSql.T_DROP: + case HiveSql.T_DYNAMIC: + case HiveSql.T_ENABLE: + case HiveSql.T_ENGINE: + case HiveSql.T_ESCAPED: + case HiveSql.T_EXCEPT: + case HiveSql.T_EXEC: + case HiveSql.T_EXECUTE: + case HiveSql.T_EXCEPTION: + case HiveSql.T_EXCLUSIVE: + case HiveSql.T_EXISTS: + case HiveSql.T_EXIT: + case HiveSql.T_FALLBACK: + case HiveSql.T_FALSE: + case HiveSql.T_FETCH: + case HiveSql.T_FIELDS: + case HiveSql.T_FILE: + case HiveSql.T_FILES: + case HiveSql.T_FLOAT: + case HiveSql.T_FOR: + case HiveSql.T_FOREIGN: + case HiveSql.T_FORMAT: + case HiveSql.T_FOUND: + case HiveSql.T_FROM: + case HiveSql.T_FULL: + case HiveSql.T_FUNCTION: + case HiveSql.T_GET: + case HiveSql.T_GLOBAL: + case HiveSql.T_GO: + case HiveSql.T_GRANT: + case HiveSql.T_GROUP: + case HiveSql.T_HANDLER: + case HiveSql.T_HASH: + case HiveSql.T_HAVING: + case HiveSql.T_HDFS: + case HiveSql.T_HIVE: + case HiveSql.T_HOST: + case HiveSql.T_IDENTITY: + case HiveSql.T_IF: + case HiveSql.T_IGNORE: + case HiveSql.T_IMMEDIATE: + case HiveSql.T_IN: + case HiveSql.T_INCLUDE: + case HiveSql.T_INDEX: + case HiveSql.T_INITRANS: + case HiveSql.T_INNER: + case HiveSql.T_INOUT: + case HiveSql.T_INSERT: + case HiveSql.T_INT: + case HiveSql.T_INT2: + case HiveSql.T_INT4: + case HiveSql.T_INT8: + case HiveSql.T_INTEGER: + case HiveSql.T_INTERSECT: + case HiveSql.T_INTERVAL: + case HiveSql.T_INTO: + case HiveSql.T_INVOKER: + case HiveSql.T_IS: + case HiveSql.T_ISOPEN: + case HiveSql.T_ITEMS: + case HiveSql.T_JOIN: + case HiveSql.T_KEEP: + case HiveSql.T_KEY: + case HiveSql.T_KEYS: + case HiveSql.T_LANGUAGE: + case HiveSql.T_LEAVE: + case HiveSql.T_LEFT: + case HiveSql.T_LIKE: + case HiveSql.T_LIMIT: + case HiveSql.T_LINES: + case HiveSql.T_LOCAL: + case HiveSql.T_LOCATION: + case HiveSql.T_LOCATOR: + case HiveSql.T_LOCATORS: + case HiveSql.T_LOCKS: + case HiveSql.T_LOG: + case HiveSql.T_LOGGED: + case HiveSql.T_LOGGING: + case HiveSql.T_LOOP: + case HiveSql.T_MAP: + case HiveSql.T_MATCHED: + case HiveSql.T_MAX: + case HiveSql.T_MAXTRANS: + case HiveSql.T_MERGE: + case HiveSql.T_MESSAGE_TEXT: + case HiveSql.T_MICROSECOND: + case HiveSql.T_MICROSECONDS: + case HiveSql.T_MIN: + case HiveSql.T_MULTISET: + case HiveSql.T_NCHAR: + case HiveSql.T_NEW: + case HiveSql.T_NVARCHAR: + case HiveSql.T_NO: + case HiveSql.T_NOCOUNT: + case HiveSql.T_NOCOMPRESS: + case HiveSql.T_NOLOGGING: + case HiveSql.T_NONE: + case HiveSql.T_NOT: + case HiveSql.T_NOTFOUND: + case HiveSql.T_NUMERIC: + case HiveSql.T_NUMBER: + case HiveSql.T_OBJECT: + case HiveSql.T_OFF: + case HiveSql.T_ON: + case HiveSql.T_ONLY: + case HiveSql.T_OPEN: + case HiveSql.T_OR: + case HiveSql.T_ORDER: + case HiveSql.T_OUT: + case HiveSql.T_OUTER: + case HiveSql.T_OVER: + case HiveSql.T_OVERWRITE: + case HiveSql.T_OWNER: + case HiveSql.T_PACKAGE: + case HiveSql.T_PARTITION: + case HiveSql.T_PCTFREE: + case HiveSql.T_PCTUSED: + case HiveSql.T_PRECISION: + case HiveSql.T_PRESERVE: + case HiveSql.T_PRIMARY: + case HiveSql.T_PRINT: + case HiveSql.T_PROC: + case HiveSql.T_PROCEDURE: + case HiveSql.T_QUALIFY: + case HiveSql.T_QUERY_BAND: + case HiveSql.T_QUIT: + case HiveSql.T_QUOTED_IDENTIFIER: + case HiveSql.T_RAISE: + case HiveSql.T_REAL: + case HiveSql.T_REFERENCES: + case HiveSql.T_REGEXP: + case HiveSql.T_REPLACE: + case HiveSql.T_RESIGNAL: + case HiveSql.T_RESTRICT: + case HiveSql.T_RESULT: + case HiveSql.T_RESULT_SET_LOCATOR: + case HiveSql.T_RETURN: + case HiveSql.T_RETURNS: + case HiveSql.T_REVERSE: + case HiveSql.T_RIGHT: + case HiveSql.T_RLIKE: + case HiveSql.T_ROLE: + case HiveSql.T_ROLLBACK: + case HiveSql.T_ROW: + case HiveSql.T_ROWS: + case HiveSql.T_ROW_COUNT: + case HiveSql.T_RR: + case HiveSql.T_RS: + case HiveSql.T_PWD: + case HiveSql.T_TRIM: + case HiveSql.T_SCHEMA: + case HiveSql.T_SECOND: + case HiveSql.T_SECONDS: + case HiveSql.T_SECURITY: + case HiveSql.T_SEGMENT: + case HiveSql.T_SEL: + case HiveSql.T_SELECT: + case HiveSql.T_SET: + case HiveSql.T_SESSION: + case HiveSql.T_SESSIONS: + case HiveSql.T_SETS: + case HiveSql.T_SHARE: + case HiveSql.T_SIGNAL: + case HiveSql.T_SIMPLE_DOUBLE: + case HiveSql.T_SIMPLE_FLOAT: + case HiveSql.T_SMALLDATETIME: + case HiveSql.T_SMALLINT: + case HiveSql.T_SQL: + case HiveSql.T_SQLEXCEPTION: + case HiveSql.T_SQLINSERT: + case HiveSql.T_SQLSTATE: + case HiveSql.T_SQLWARNING: + case HiveSql.T_STATS: + case HiveSql.T_STATISTICS: + case HiveSql.T_STEP: + case HiveSql.T_STORAGE: + case HiveSql.T_STORED: + case HiveSql.T_STRING: + case HiveSql.T_SUBDIR: + case HiveSql.T_SUBSTRING: + case HiveSql.T_SUM: + case HiveSql.T_SUMMARY: + case HiveSql.T_SYS_REFCURSOR: + case HiveSql.T_TABLE: + case HiveSql.T_TABLESPACE: + case HiveSql.T_TEMPORARY: + case HiveSql.T_TERMINATED: + case HiveSql.T_TEXTIMAGE_ON: + case HiveSql.T_THEN: + case HiveSql.T_TIMESTAMP: + case HiveSql.T_TITLE: + case HiveSql.T_TO: + case HiveSql.T_TOP: + case HiveSql.T_TRANSACTION: + case HiveSql.T_TRUE: + case HiveSql.T_TRUNCATE: + case HiveSql.T_UNIQUE: + case HiveSql.T_UPDATE: + case HiveSql.T_UR: + case HiveSql.T_USE: + case HiveSql.T_USING: + case HiveSql.T_VALUE: + case HiveSql.T_VALUES: + case HiveSql.T_VAR: + case HiveSql.T_VARCHAR: + case HiveSql.T_VARCHAR2: + case HiveSql.T_VARYING: + case HiveSql.T_VOLATILE: + case HiveSql.T_WHILE: + case HiveSql.T_WITH: + case HiveSql.T_WITHOUT: + case HiveSql.T_WORK: + case HiveSql.T_XACT_ABORT: + case HiveSql.T_XML: + case HiveSql.T_YES: + case HiveSql.T_ACTIVITY_COUNT: + case HiveSql.T_CUME_DIST: + case HiveSql.T_CURRENT_DATE: + case HiveSql.T_CURRENT_TIMESTAMP: + case HiveSql.T_CURRENT_USER: + case HiveSql.T_DENSE_RANK: + case HiveSql.T_FIRST_VALUE: + case HiveSql.T_LAG: + case HiveSql.T_LAST_VALUE: + case HiveSql.T_LEAD: + case HiveSql.T_PART_COUNT: + case HiveSql.T_PART_LOC: + case HiveSql.T_RANK: + case HiveSql.T_ROW_NUMBER: + case HiveSql.T_STDEV: + case HiveSql.T_SYSDATE: + case HiveSql.T_VARIANCE: + case HiveSql.T_USER: + case HiveSql.L_ID: + this.state = 1919; this.table_name(); break; - case HiveSqlParser.T_OPEN_P: - this.state = 1923; - this.match(HiveSqlParser.T_OPEN_P); - this.state = 1924; + case HiveSql.T_OPEN_P: + this.state = 1920; + this.match(HiveSql.T_OPEN_P); + this.state = 1921; this.select_stmt(); - this.state = 1925; - this.match(HiveSqlParser.T_CLOSE_P); + this.state = 1922; + this.match(HiveSql.T_CLOSE_P); break; default: throw new antlr4.error.NoViableAltException(this); } - this.state = 1929; - this.match(HiveSqlParser.T_TO); - this.state = 1931; + this.state = 1926; + this.match(HiveSql.T_TO); + this.state = 1928; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,215,this._ctx); if(la_===1) { - this.state = 1930; - this.match(HiveSqlParser.T_HDFS); + this.state = 1927; + this.match(HiveSql.T_HDFS); } - this.state = 1933; + this.state = 1930; this.copy_target(); - this.state = 1937; + this.state = 1934; this._errHandler.sync(this); var _alt = this._interp.adaptivePredict(this._input,216,this._ctx) while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { if(_alt===1) { - this.state = 1934; + this.state = 1931; this.copy_option(); } - this.state = 1939; + this.state = 1936; this._errHandler.sync(this); _alt = this._interp.adaptivePredict(this._input,216,this._ctx); } @@ -19696,7 +19732,7 @@ function Copy_sourceContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_copy_source; + this.ruleIndex = HiveSql.RULE_copy_source; return this; } @@ -19734,25 +19770,25 @@ Copy_sourceContext.prototype.accept = function(visitor) { -HiveSqlParser.Copy_sourceContext = Copy_sourceContext; +HiveSql.Copy_sourceContext = Copy_sourceContext; -HiveSqlParser.prototype.copy_source = function() { +HiveSql.prototype.copy_source = function() { var localctx = new Copy_sourceContext(this, this._ctx, this.state); - this.enterRule(localctx, 222, HiveSqlParser.RULE_copy_source); + this.enterRule(localctx, 222, HiveSql.RULE_copy_source); try { this.enterOuterAlt(localctx, 1); - this.state = 1942; + this.state = 1939; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,217,this._ctx); switch(la_) { case 1: - this.state = 1940; + this.state = 1937; this.file_name(); break; case 2: - this.state = 1941; + this.state = 1938; this.expr(0); break; @@ -19781,7 +19817,7 @@ function Copy_targetContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_copy_target; + this.ruleIndex = HiveSql.RULE_copy_target; return this; } @@ -19819,25 +19855,25 @@ Copy_targetContext.prototype.accept = function(visitor) { -HiveSqlParser.Copy_targetContext = Copy_targetContext; +HiveSql.Copy_targetContext = Copy_targetContext; -HiveSqlParser.prototype.copy_target = function() { +HiveSql.prototype.copy_target = function() { var localctx = new Copy_targetContext(this, this._ctx, this.state); - this.enterRule(localctx, 224, HiveSqlParser.RULE_copy_target); + this.enterRule(localctx, 224, HiveSql.RULE_copy_target); try { this.enterOuterAlt(localctx, 1); - this.state = 1946; + this.state = 1943; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,218,this._ctx); switch(la_) { case 1: - this.state = 1944; + this.state = 1941; this.file_name(); break; case 2: - this.state = 1945; + this.state = 1942; this.expr(0); break; @@ -19866,7 +19902,7 @@ function Copy_optionContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_copy_option; + this.ruleIndex = HiveSql.RULE_copy_option; return this; } @@ -19874,7 +19910,7 @@ Copy_optionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype) Copy_optionContext.prototype.constructor = Copy_optionContext; Copy_optionContext.prototype.T_AT = function() { - return this.getToken(HiveSqlParser.T_AT, 0); + return this.getToken(HiveSql.T_AT, 0); }; Copy_optionContext.prototype.ident = function() { @@ -19882,7 +19918,7 @@ Copy_optionContext.prototype.ident = function() { }; Copy_optionContext.prototype.T_BATCHSIZE = function() { - return this.getToken(HiveSqlParser.T_BATCHSIZE, 0); + return this.getToken(HiveSql.T_BATCHSIZE, 0); }; Copy_optionContext.prototype.expr = function() { @@ -19890,11 +19926,11 @@ Copy_optionContext.prototype.expr = function() { }; Copy_optionContext.prototype.T_DELIMITER = function() { - return this.getToken(HiveSqlParser.T_DELIMITER, 0); + return this.getToken(HiveSql.T_DELIMITER, 0); }; Copy_optionContext.prototype.T_SQLINSERT = function() { - return this.getToken(HiveSqlParser.T_SQLINSERT, 0); + return this.getToken(HiveSql.T_SQLINSERT, 0); }; Copy_optionContext.prototype.enterRule = function(listener) { @@ -19920,42 +19956,42 @@ Copy_optionContext.prototype.accept = function(visitor) { -HiveSqlParser.Copy_optionContext = Copy_optionContext; +HiveSql.Copy_optionContext = Copy_optionContext; -HiveSqlParser.prototype.copy_option = function() { +HiveSql.prototype.copy_option = function() { var localctx = new Copy_optionContext(this, this._ctx, this.state); - this.enterRule(localctx, 226, HiveSqlParser.RULE_copy_option); + this.enterRule(localctx, 226, HiveSql.RULE_copy_option); try { - this.state = 1956; + this.state = 1953; this._errHandler.sync(this); switch(this._input.LA(1)) { - case HiveSqlParser.T_AT: + case HiveSql.T_AT: this.enterOuterAlt(localctx, 1); - this.state = 1948; - this.match(HiveSqlParser.T_AT); - this.state = 1949; + this.state = 1945; + this.match(HiveSql.T_AT); + this.state = 1946; this.ident(); break; - case HiveSqlParser.T_BATCHSIZE: + case HiveSql.T_BATCHSIZE: this.enterOuterAlt(localctx, 2); - this.state = 1950; - this.match(HiveSqlParser.T_BATCHSIZE); - this.state = 1951; + this.state = 1947; + this.match(HiveSql.T_BATCHSIZE); + this.state = 1948; this.expr(0); break; - case HiveSqlParser.T_DELIMITER: + case HiveSql.T_DELIMITER: this.enterOuterAlt(localctx, 3); - this.state = 1952; - this.match(HiveSqlParser.T_DELIMITER); - this.state = 1953; + this.state = 1949; + this.match(HiveSql.T_DELIMITER); + this.state = 1950; this.expr(0); break; - case HiveSqlParser.T_SQLINSERT: + case HiveSql.T_SQLINSERT: this.enterOuterAlt(localctx, 4); - this.state = 1954; - this.match(HiveSqlParser.T_SQLINSERT); - this.state = 1955; + this.state = 1951; + this.match(HiveSql.T_SQLINSERT); + this.state = 1952; this.ident(); break; default: @@ -19985,7 +20021,7 @@ function Copy_file_optionContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_copy_file_option; + this.ruleIndex = HiveSql.RULE_copy_file_option; return this; } @@ -19993,15 +20029,15 @@ Copy_file_optionContext.prototype = Object.create(antlr4.ParserRuleContext.proto Copy_file_optionContext.prototype.constructor = Copy_file_optionContext; Copy_file_optionContext.prototype.T_DELETE = function() { - return this.getToken(HiveSqlParser.T_DELETE, 0); + return this.getToken(HiveSql.T_DELETE, 0); }; Copy_file_optionContext.prototype.T_IGNORE = function() { - return this.getToken(HiveSqlParser.T_IGNORE, 0); + return this.getToken(HiveSql.T_IGNORE, 0); }; Copy_file_optionContext.prototype.T_OVERWRITE = function() { - return this.getToken(HiveSqlParser.T_OVERWRITE, 0); + return this.getToken(HiveSql.T_OVERWRITE, 0); }; Copy_file_optionContext.prototype.enterRule = function(listener) { @@ -20027,18 +20063,18 @@ Copy_file_optionContext.prototype.accept = function(visitor) { -HiveSqlParser.Copy_file_optionContext = Copy_file_optionContext; +HiveSql.Copy_file_optionContext = Copy_file_optionContext; -HiveSqlParser.prototype.copy_file_option = function() { +HiveSql.prototype.copy_file_option = function() { var localctx = new Copy_file_optionContext(this, this._ctx, this.state); - this.enterRule(localctx, 228, HiveSqlParser.RULE_copy_file_option); + this.enterRule(localctx, 228, HiveSql.RULE_copy_file_option); var _la = 0; // Token type try { this.enterOuterAlt(localctx, 1); - this.state = 1958; + this.state = 1955; _la = this._input.LA(1); - if(!(_la===HiveSqlParser.T_DELETE || _la===HiveSqlParser.T_OVERWRITE || _la===HiveSqlParser.T_IGNORE)) { + if(!(_la===HiveSql.T_DELETE || _la===HiveSql.T_IGNORE || _la===HiveSql.T_OVERWRITE)) { this._errHandler.recoverInline(this); } else { @@ -20069,7 +20105,7 @@ function Commit_stmtContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_commit_stmt; + this.ruleIndex = HiveSql.RULE_commit_stmt; return this; } @@ -20077,11 +20113,11 @@ Commit_stmtContext.prototype = Object.create(antlr4.ParserRuleContext.prototype) Commit_stmtContext.prototype.constructor = Commit_stmtContext; Commit_stmtContext.prototype.T_COMMIT = function() { - return this.getToken(HiveSqlParser.T_COMMIT, 0); + return this.getToken(HiveSql.T_COMMIT, 0); }; Commit_stmtContext.prototype.T_WORK = function() { - return this.getToken(HiveSqlParser.T_WORK, 0); + return this.getToken(HiveSql.T_WORK, 0); }; Commit_stmtContext.prototype.enterRule = function(listener) { @@ -20107,22 +20143,22 @@ Commit_stmtContext.prototype.accept = function(visitor) { -HiveSqlParser.Commit_stmtContext = Commit_stmtContext; +HiveSql.Commit_stmtContext = Commit_stmtContext; -HiveSqlParser.prototype.commit_stmt = function() { +HiveSql.prototype.commit_stmt = function() { var localctx = new Commit_stmtContext(this, this._ctx, this.state); - this.enterRule(localctx, 230, HiveSqlParser.RULE_commit_stmt); + this.enterRule(localctx, 230, HiveSql.RULE_commit_stmt); try { this.enterOuterAlt(localctx, 1); - this.state = 1960; - this.match(HiveSqlParser.T_COMMIT); - this.state = 1962; + this.state = 1957; + this.match(HiveSql.T_COMMIT); + this.state = 1959; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,220,this._ctx); if(la_===1) { - this.state = 1961; - this.match(HiveSqlParser.T_WORK); + this.state = 1958; + this.match(HiveSql.T_WORK); } } catch (re) { @@ -20149,7 +20185,7 @@ function Create_index_stmtContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_create_index_stmt; + this.ruleIndex = HiveSql.RULE_create_index_stmt; return this; } @@ -20157,11 +20193,11 @@ Create_index_stmtContext.prototype = Object.create(antlr4.ParserRuleContext.prot Create_index_stmtContext.prototype.constructor = Create_index_stmtContext; Create_index_stmtContext.prototype.T_CREATE = function() { - return this.getToken(HiveSqlParser.T_CREATE, 0); + return this.getToken(HiveSql.T_CREATE, 0); }; Create_index_stmtContext.prototype.T_INDEX = function() { - return this.getToken(HiveSqlParser.T_INDEX, 0); + return this.getToken(HiveSql.T_INDEX, 0); }; Create_index_stmtContext.prototype.ident = function() { @@ -20169,7 +20205,7 @@ Create_index_stmtContext.prototype.ident = function() { }; Create_index_stmtContext.prototype.T_ON = function() { - return this.getToken(HiveSqlParser.T_ON, 0); + return this.getToken(HiveSql.T_ON, 0); }; Create_index_stmtContext.prototype.table_name = function() { @@ -20177,7 +20213,7 @@ Create_index_stmtContext.prototype.table_name = function() { }; Create_index_stmtContext.prototype.T_OPEN_P = function() { - return this.getToken(HiveSqlParser.T_OPEN_P, 0); + return this.getToken(HiveSql.T_OPEN_P, 0); }; Create_index_stmtContext.prototype.create_index_col = function(i) { @@ -20192,11 +20228,11 @@ Create_index_stmtContext.prototype.create_index_col = function(i) { }; Create_index_stmtContext.prototype.T_CLOSE_P = function() { - return this.getToken(HiveSqlParser.T_CLOSE_P, 0); + return this.getToken(HiveSql.T_CLOSE_P, 0); }; Create_index_stmtContext.prototype.T_UNIQUE = function() { - return this.getToken(HiveSqlParser.T_UNIQUE, 0); + return this.getToken(HiveSql.T_UNIQUE, 0); }; Create_index_stmtContext.prototype.T_COMMA = function(i) { @@ -20204,9 +20240,9 @@ Create_index_stmtContext.prototype.T_COMMA = function(i) { i = null; } if(i===null) { - return this.getTokens(HiveSqlParser.T_COMMA); + return this.getTokens(HiveSql.T_COMMA); } else { - return this.getToken(HiveSqlParser.T_COMMA, i); + return this.getToken(HiveSql.T_COMMA, i); } }; @@ -20234,51 +20270,51 @@ Create_index_stmtContext.prototype.accept = function(visitor) { -HiveSqlParser.Create_index_stmtContext = Create_index_stmtContext; +HiveSql.Create_index_stmtContext = Create_index_stmtContext; -HiveSqlParser.prototype.create_index_stmt = function() { +HiveSql.prototype.create_index_stmt = function() { var localctx = new Create_index_stmtContext(this, this._ctx, this.state); - this.enterRule(localctx, 232, HiveSqlParser.RULE_create_index_stmt); + this.enterRule(localctx, 232, HiveSql.RULE_create_index_stmt); var _la = 0; // Token type try { this.enterOuterAlt(localctx, 1); - this.state = 1964; - this.match(HiveSqlParser.T_CREATE); - this.state = 1966; + this.state = 1961; + this.match(HiveSql.T_CREATE); + this.state = 1963; this._errHandler.sync(this); _la = this._input.LA(1); - if(_la===HiveSqlParser.T_UNIQUE) { - this.state = 1965; - this.match(HiveSqlParser.T_UNIQUE); + if(_la===HiveSql.T_UNIQUE) { + this.state = 1962; + this.match(HiveSql.T_UNIQUE); } - this.state = 1968; - this.match(HiveSqlParser.T_INDEX); - this.state = 1969; + this.state = 1965; + this.match(HiveSql.T_INDEX); + this.state = 1966; this.ident(); - this.state = 1970; - this.match(HiveSqlParser.T_ON); - this.state = 1971; + this.state = 1967; + this.match(HiveSql.T_ON); + this.state = 1968; this.table_name(); - this.state = 1972; - this.match(HiveSqlParser.T_OPEN_P); - this.state = 1973; + this.state = 1969; + this.match(HiveSql.T_OPEN_P); + this.state = 1970; this.create_index_col(); - this.state = 1978; + this.state = 1975; this._errHandler.sync(this); _la = this._input.LA(1); - while(_la===HiveSqlParser.T_COMMA) { - this.state = 1974; - this.match(HiveSqlParser.T_COMMA); - this.state = 1975; + while(_la===HiveSql.T_COMMA) { + this.state = 1971; + this.match(HiveSql.T_COMMA); + this.state = 1972; this.create_index_col(); - this.state = 1980; + this.state = 1977; this._errHandler.sync(this); _la = this._input.LA(1); } - this.state = 1981; - this.match(HiveSqlParser.T_CLOSE_P); + this.state = 1978; + this.match(HiveSql.T_CLOSE_P); } catch (re) { if(re instanceof antlr4.error.RecognitionException) { localctx.exception = re; @@ -20303,7 +20339,7 @@ function Create_index_colContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_create_index_col; + this.ruleIndex = HiveSql.RULE_create_index_col; return this; } @@ -20315,11 +20351,11 @@ Create_index_colContext.prototype.ident = function() { }; Create_index_colContext.prototype.T_ASC = function() { - return this.getToken(HiveSqlParser.T_ASC, 0); + return this.getToken(HiveSql.T_ASC, 0); }; Create_index_colContext.prototype.T_DESC = function() { - return this.getToken(HiveSqlParser.T_DESC, 0); + return this.getToken(HiveSql.T_DESC, 0); }; Create_index_colContext.prototype.enterRule = function(listener) { @@ -20345,24 +20381,24 @@ Create_index_colContext.prototype.accept = function(visitor) { -HiveSqlParser.Create_index_colContext = Create_index_colContext; +HiveSql.Create_index_colContext = Create_index_colContext; -HiveSqlParser.prototype.create_index_col = function() { +HiveSql.prototype.create_index_col = function() { var localctx = new Create_index_colContext(this, this._ctx, this.state); - this.enterRule(localctx, 234, HiveSqlParser.RULE_create_index_col); + this.enterRule(localctx, 234, HiveSql.RULE_create_index_col); var _la = 0; // Token type try { this.enterOuterAlt(localctx, 1); - this.state = 1983; + this.state = 1980; this.ident(); - this.state = 1985; + this.state = 1982; this._errHandler.sync(this); _la = this._input.LA(1); - if(_la===HiveSqlParser.T_ASC || _la===HiveSqlParser.T_DESC) { - this.state = 1984; + if(_la===HiveSql.T_ASC || _la===HiveSql.T_DESC) { + this.state = 1981; _la = this._input.LA(1); - if(!(_la===HiveSqlParser.T_ASC || _la===HiveSqlParser.T_DESC)) { + if(!(_la===HiveSql.T_ASC || _la===HiveSql.T_DESC)) { this._errHandler.recoverInline(this); } else { @@ -20395,7 +20431,7 @@ function Index_storage_clauseContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_index_storage_clause; + this.ruleIndex = HiveSql.RULE_index_storage_clause; return this; } @@ -20429,15 +20465,15 @@ Index_storage_clauseContext.prototype.accept = function(visitor) { -HiveSqlParser.Index_storage_clauseContext = Index_storage_clauseContext; +HiveSql.Index_storage_clauseContext = Index_storage_clauseContext; -HiveSqlParser.prototype.index_storage_clause = function() { +HiveSql.prototype.index_storage_clause = function() { var localctx = new Index_storage_clauseContext(this, this._ctx, this.state); - this.enterRule(localctx, 236, HiveSqlParser.RULE_index_storage_clause); + this.enterRule(localctx, 236, HiveSql.RULE_index_storage_clause); try { this.enterOuterAlt(localctx, 1); - this.state = 1987; + this.state = 1984; this.index_mssql_storage_clause(); } catch (re) { if(re instanceof antlr4.error.RecognitionException) { @@ -20463,7 +20499,7 @@ function Index_mssql_storage_clauseContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_index_mssql_storage_clause; + this.ruleIndex = HiveSql.RULE_index_mssql_storage_clause; return this; } @@ -20471,11 +20507,11 @@ Index_mssql_storage_clauseContext.prototype = Object.create(antlr4.ParserRuleCon Index_mssql_storage_clauseContext.prototype.constructor = Index_mssql_storage_clauseContext; Index_mssql_storage_clauseContext.prototype.T_WITH = function() { - return this.getToken(HiveSqlParser.T_WITH, 0); + return this.getToken(HiveSql.T_WITH, 0); }; Index_mssql_storage_clauseContext.prototype.T_OPEN_P = function() { - return this.getToken(HiveSqlParser.T_OPEN_P, 0); + return this.getToken(HiveSql.T_OPEN_P, 0); }; Index_mssql_storage_clauseContext.prototype.ident = function(i) { @@ -20494,15 +20530,15 @@ Index_mssql_storage_clauseContext.prototype.T_EQUAL = function(i) { i = null; } if(i===null) { - return this.getTokens(HiveSqlParser.T_EQUAL); + return this.getTokens(HiveSql.T_EQUAL); } else { - return this.getToken(HiveSqlParser.T_EQUAL, i); + return this.getToken(HiveSql.T_EQUAL, i); } }; Index_mssql_storage_clauseContext.prototype.T_CLOSE_P = function() { - return this.getToken(HiveSqlParser.T_CLOSE_P, 0); + return this.getToken(HiveSql.T_CLOSE_P, 0); }; Index_mssql_storage_clauseContext.prototype.T_COMMA = function(i) { @@ -20510,9 +20546,9 @@ Index_mssql_storage_clauseContext.prototype.T_COMMA = function(i) { i = null; } if(i===null) { - return this.getTokens(HiveSqlParser.T_COMMA); + return this.getTokens(HiveSql.T_COMMA); } else { - return this.getToken(HiveSqlParser.T_COMMA, i); + return this.getToken(HiveSql.T_COMMA, i); } }; @@ -20551,52 +20587,52 @@ Index_mssql_storage_clauseContext.prototype.accept = function(visitor) { -HiveSqlParser.Index_mssql_storage_clauseContext = Index_mssql_storage_clauseContext; +HiveSql.Index_mssql_storage_clauseContext = Index_mssql_storage_clauseContext; -HiveSqlParser.prototype.index_mssql_storage_clause = function() { +HiveSql.prototype.index_mssql_storage_clause = function() { var localctx = new Index_mssql_storage_clauseContext(this, this._ctx, this.state); - this.enterRule(localctx, 238, HiveSqlParser.RULE_index_mssql_storage_clause); + this.enterRule(localctx, 238, HiveSql.RULE_index_mssql_storage_clause); var _la = 0; // Token type try { this.enterOuterAlt(localctx, 1); + this.state = 1986; + this.match(HiveSql.T_WITH); + this.state = 1987; + this.match(HiveSql.T_OPEN_P); + this.state = 1988; + this.ident(); this.state = 1989; - this.match(HiveSqlParser.T_WITH); + this.match(HiveSql.T_EQUAL); this.state = 1990; - this.match(HiveSqlParser.T_OPEN_P); - this.state = 1991; this.ident(); - this.state = 1992; - this.match(HiveSqlParser.T_EQUAL); - this.state = 1993; - this.ident(); - this.state = 2001; + this.state = 1998; this._errHandler.sync(this); _la = this._input.LA(1); - while(_la===HiveSqlParser.T_COMMA) { + while(_la===HiveSql.T_COMMA) { + this.state = 1991; + this.match(HiveSql.T_COMMA); + this.state = 1992; + this.ident(); + this.state = 1993; + this.match(HiveSql.T_EQUAL); this.state = 1994; - this.match(HiveSqlParser.T_COMMA); - this.state = 1995; this.ident(); - this.state = 1996; - this.match(HiveSqlParser.T_EQUAL); - this.state = 1997; - this.ident(); - this.state = 2003; + this.state = 2000; this._errHandler.sync(this); _la = this._input.LA(1); } - this.state = 2004; - this.match(HiveSqlParser.T_CLOSE_P); - this.state = 2008; + this.state = 2001; + this.match(HiveSql.T_CLOSE_P); + this.state = 2005; this._errHandler.sync(this); var _alt = this._interp.adaptivePredict(this._input,225,this._ctx) while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { if(_alt===1) { - this.state = 2005; + this.state = 2002; this.create_table_options_mssql_item(); } - this.state = 2010; + this.state = 2007; this._errHandler.sync(this); _alt = this._interp.adaptivePredict(this._input,225,this._ctx); } @@ -20625,7 +20661,7 @@ function Print_stmtContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_print_stmt; + this.ruleIndex = HiveSql.RULE_print_stmt; return this; } @@ -20633,7 +20669,7 @@ Print_stmtContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); Print_stmtContext.prototype.constructor = Print_stmtContext; Print_stmtContext.prototype.T_PRINT = function() { - return this.getToken(HiveSqlParser.T_PRINT, 0); + return this.getToken(HiveSql.T_PRINT, 0); }; Print_stmtContext.prototype.expr = function() { @@ -20641,11 +20677,11 @@ Print_stmtContext.prototype.expr = function() { }; Print_stmtContext.prototype.T_OPEN_P = function() { - return this.getToken(HiveSqlParser.T_OPEN_P, 0); + return this.getToken(HiveSql.T_OPEN_P, 0); }; Print_stmtContext.prototype.T_CLOSE_P = function() { - return this.getToken(HiveSqlParser.T_CLOSE_P, 0); + return this.getToken(HiveSql.T_CLOSE_P, 0); }; Print_stmtContext.prototype.enterRule = function(listener) { @@ -20671,35 +20707,35 @@ Print_stmtContext.prototype.accept = function(visitor) { -HiveSqlParser.Print_stmtContext = Print_stmtContext; +HiveSql.Print_stmtContext = Print_stmtContext; -HiveSqlParser.prototype.print_stmt = function() { +HiveSql.prototype.print_stmt = function() { var localctx = new Print_stmtContext(this, this._ctx, this.state); - this.enterRule(localctx, 240, HiveSqlParser.RULE_print_stmt); + this.enterRule(localctx, 240, HiveSql.RULE_print_stmt); try { - this.state = 2018; + this.state = 2015; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,226,this._ctx); switch(la_) { case 1: this.enterOuterAlt(localctx, 1); - this.state = 2011; - this.match(HiveSqlParser.T_PRINT); - this.state = 2012; + this.state = 2008; + this.match(HiveSql.T_PRINT); + this.state = 2009; this.expr(0); break; case 2: this.enterOuterAlt(localctx, 2); - this.state = 2013; - this.match(HiveSqlParser.T_PRINT); - this.state = 2014; - this.match(HiveSqlParser.T_OPEN_P); - this.state = 2015; + this.state = 2010; + this.match(HiveSql.T_PRINT); + this.state = 2011; + this.match(HiveSql.T_OPEN_P); + this.state = 2012; this.expr(0); - this.state = 2016; - this.match(HiveSqlParser.T_CLOSE_P); + this.state = 2013; + this.match(HiveSql.T_CLOSE_P); break; } @@ -20727,7 +20763,7 @@ function Quit_stmtContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_quit_stmt; + this.ruleIndex = HiveSql.RULE_quit_stmt; return this; } @@ -20735,7 +20771,11 @@ Quit_stmtContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); Quit_stmtContext.prototype.constructor = Quit_stmtContext; Quit_stmtContext.prototype.T_QUIT = function() { - return this.getToken(HiveSqlParser.T_QUIT, 0); + return this.getToken(HiveSql.T_QUIT, 0); +}; + +Quit_stmtContext.prototype.T_DOT = function() { + return this.getToken(HiveSql.T_DOT, 0); }; Quit_stmtContext.prototype.expr = function() { @@ -20765,30 +20805,30 @@ Quit_stmtContext.prototype.accept = function(visitor) { -HiveSqlParser.Quit_stmtContext = Quit_stmtContext; +HiveSql.Quit_stmtContext = Quit_stmtContext; -HiveSqlParser.prototype.quit_stmt = function() { +HiveSql.prototype.quit_stmt = function() { var localctx = new Quit_stmtContext(this, this._ctx, this.state); - this.enterRule(localctx, 242, HiveSqlParser.RULE_quit_stmt); + this.enterRule(localctx, 242, HiveSql.RULE_quit_stmt); var _la = 0; // Token type try { this.enterOuterAlt(localctx, 1); - this.state = 2021; + this.state = 2018; this._errHandler.sync(this); _la = this._input.LA(1); - if(_la===HiveSqlParser.T__4) { - this.state = 2020; - this.match(HiveSqlParser.T__4); + if(_la===HiveSql.T_DOT) { + this.state = 2017; + this.match(HiveSql.T_DOT); } - this.state = 2023; - this.match(HiveSqlParser.T_QUIT); - this.state = 2025; + this.state = 2020; + this.match(HiveSql.T_QUIT); + this.state = 2022; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,228,this._ctx); if(la_===1) { - this.state = 2024; + this.state = 2021; this.expr(0); } @@ -20816,7 +20856,7 @@ function Raise_stmtContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_raise_stmt; + this.ruleIndex = HiveSql.RULE_raise_stmt; return this; } @@ -20824,7 +20864,7 @@ Raise_stmtContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); Raise_stmtContext.prototype.constructor = Raise_stmtContext; Raise_stmtContext.prototype.T_RAISE = function() { - return this.getToken(HiveSqlParser.T_RAISE, 0); + return this.getToken(HiveSql.T_RAISE, 0); }; Raise_stmtContext.prototype.enterRule = function(listener) { @@ -20850,16 +20890,16 @@ Raise_stmtContext.prototype.accept = function(visitor) { -HiveSqlParser.Raise_stmtContext = Raise_stmtContext; +HiveSql.Raise_stmtContext = Raise_stmtContext; -HiveSqlParser.prototype.raise_stmt = function() { +HiveSql.prototype.raise_stmt = function() { var localctx = new Raise_stmtContext(this, this._ctx, this.state); - this.enterRule(localctx, 244, HiveSqlParser.RULE_raise_stmt); + this.enterRule(localctx, 244, HiveSql.RULE_raise_stmt); try { this.enterOuterAlt(localctx, 1); - this.state = 2027; - this.match(HiveSqlParser.T_RAISE); + this.state = 2024; + this.match(HiveSql.T_RAISE); } catch (re) { if(re instanceof antlr4.error.RecognitionException) { localctx.exception = re; @@ -20884,7 +20924,7 @@ function Resignal_stmtContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_resignal_stmt; + this.ruleIndex = HiveSql.RULE_resignal_stmt; return this; } @@ -20892,11 +20932,11 @@ Resignal_stmtContext.prototype = Object.create(antlr4.ParserRuleContext.prototyp Resignal_stmtContext.prototype.constructor = Resignal_stmtContext; Resignal_stmtContext.prototype.T_RESIGNAL = function() { - return this.getToken(HiveSqlParser.T_RESIGNAL, 0); + return this.getToken(HiveSql.T_RESIGNAL, 0); }; Resignal_stmtContext.prototype.T_SQLSTATE = function() { - return this.getToken(HiveSqlParser.T_SQLSTATE, 0); + return this.getToken(HiveSql.T_SQLSTATE, 0); }; Resignal_stmtContext.prototype.expr = function(i) { @@ -20911,19 +20951,19 @@ Resignal_stmtContext.prototype.expr = function(i) { }; Resignal_stmtContext.prototype.T_VALUE = function() { - return this.getToken(HiveSqlParser.T_VALUE, 0); + return this.getToken(HiveSql.T_VALUE, 0); }; Resignal_stmtContext.prototype.T_SET = function() { - return this.getToken(HiveSqlParser.T_SET, 0); + return this.getToken(HiveSql.T_SET, 0); }; Resignal_stmtContext.prototype.T_MESSAGE_TEXT = function() { - return this.getToken(HiveSqlParser.T_MESSAGE_TEXT, 0); + return this.getToken(HiveSql.T_MESSAGE_TEXT, 0); }; Resignal_stmtContext.prototype.T_EQUAL = function() { - return this.getToken(HiveSqlParser.T_EQUAL, 0); + return this.getToken(HiveSql.T_EQUAL, 0); }; Resignal_stmtContext.prototype.enterRule = function(listener) { @@ -20949,43 +20989,43 @@ Resignal_stmtContext.prototype.accept = function(visitor) { -HiveSqlParser.Resignal_stmtContext = Resignal_stmtContext; +HiveSql.Resignal_stmtContext = Resignal_stmtContext; -HiveSqlParser.prototype.resignal_stmt = function() { +HiveSql.prototype.resignal_stmt = function() { var localctx = new Resignal_stmtContext(this, this._ctx, this.state); - this.enterRule(localctx, 246, HiveSqlParser.RULE_resignal_stmt); + this.enterRule(localctx, 246, HiveSql.RULE_resignal_stmt); try { this.enterOuterAlt(localctx, 1); - this.state = 2029; - this.match(HiveSqlParser.T_RESIGNAL); - this.state = 2041; + this.state = 2026; + this.match(HiveSql.T_RESIGNAL); + this.state = 2038; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,231,this._ctx); if(la_===1) { - this.state = 2030; - this.match(HiveSqlParser.T_SQLSTATE); - this.state = 2032; + this.state = 2027; + this.match(HiveSql.T_SQLSTATE); + this.state = 2029; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,229,this._ctx); if(la_===1) { - this.state = 2031; - this.match(HiveSqlParser.T_VALUE); + this.state = 2028; + this.match(HiveSql.T_VALUE); } - this.state = 2034; + this.state = 2031; this.expr(0); - this.state = 2039; + this.state = 2036; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,230,this._ctx); if(la_===1) { + this.state = 2032; + this.match(HiveSql.T_SET); + this.state = 2033; + this.match(HiveSql.T_MESSAGE_TEXT); + this.state = 2034; + this.match(HiveSql.T_EQUAL); this.state = 2035; - this.match(HiveSqlParser.T_SET); - this.state = 2036; - this.match(HiveSqlParser.T_MESSAGE_TEXT); - this.state = 2037; - this.match(HiveSqlParser.T_EQUAL); - this.state = 2038; this.expr(0); } @@ -21015,7 +21055,7 @@ function Return_stmtContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_return_stmt; + this.ruleIndex = HiveSql.RULE_return_stmt; return this; } @@ -21023,7 +21063,7 @@ Return_stmtContext.prototype = Object.create(antlr4.ParserRuleContext.prototype) Return_stmtContext.prototype.constructor = Return_stmtContext; Return_stmtContext.prototype.T_RETURN = function() { - return this.getToken(HiveSqlParser.T_RETURN, 0); + return this.getToken(HiveSql.T_RETURN, 0); }; Return_stmtContext.prototype.expr = function() { @@ -21053,21 +21093,21 @@ Return_stmtContext.prototype.accept = function(visitor) { -HiveSqlParser.Return_stmtContext = Return_stmtContext; +HiveSql.Return_stmtContext = Return_stmtContext; -HiveSqlParser.prototype.return_stmt = function() { +HiveSql.prototype.return_stmt = function() { var localctx = new Return_stmtContext(this, this._ctx, this.state); - this.enterRule(localctx, 248, HiveSqlParser.RULE_return_stmt); + this.enterRule(localctx, 248, HiveSql.RULE_return_stmt); try { this.enterOuterAlt(localctx, 1); - this.state = 2043; - this.match(HiveSqlParser.T_RETURN); - this.state = 2045; + this.state = 2040; + this.match(HiveSql.T_RETURN); + this.state = 2042; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,232,this._ctx); if(la_===1) { - this.state = 2044; + this.state = 2041; this.expr(0); } @@ -21095,7 +21135,7 @@ function Rollback_stmtContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_rollback_stmt; + this.ruleIndex = HiveSql.RULE_rollback_stmt; return this; } @@ -21103,11 +21143,11 @@ Rollback_stmtContext.prototype = Object.create(antlr4.ParserRuleContext.prototyp Rollback_stmtContext.prototype.constructor = Rollback_stmtContext; Rollback_stmtContext.prototype.T_ROLLBACK = function() { - return this.getToken(HiveSqlParser.T_ROLLBACK, 0); + return this.getToken(HiveSql.T_ROLLBACK, 0); }; Rollback_stmtContext.prototype.T_WORK = function() { - return this.getToken(HiveSqlParser.T_WORK, 0); + return this.getToken(HiveSql.T_WORK, 0); }; Rollback_stmtContext.prototype.enterRule = function(listener) { @@ -21133,22 +21173,22 @@ Rollback_stmtContext.prototype.accept = function(visitor) { -HiveSqlParser.Rollback_stmtContext = Rollback_stmtContext; +HiveSql.Rollback_stmtContext = Rollback_stmtContext; -HiveSqlParser.prototype.rollback_stmt = function() { +HiveSql.prototype.rollback_stmt = function() { var localctx = new Rollback_stmtContext(this, this._ctx, this.state); - this.enterRule(localctx, 250, HiveSqlParser.RULE_rollback_stmt); + this.enterRule(localctx, 250, HiveSql.RULE_rollback_stmt); try { this.enterOuterAlt(localctx, 1); - this.state = 2047; - this.match(HiveSqlParser.T_ROLLBACK); - this.state = 2049; + this.state = 2044; + this.match(HiveSql.T_ROLLBACK); + this.state = 2046; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,233,this._ctx); if(la_===1) { - this.state = 2048; - this.match(HiveSqlParser.T_WORK); + this.state = 2045; + this.match(HiveSql.T_WORK); } } catch (re) { @@ -21175,7 +21215,7 @@ function Set_session_optionContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_set_session_option; + this.ruleIndex = HiveSql.RULE_set_session_option; return this; } @@ -21217,35 +21257,35 @@ Set_session_optionContext.prototype.accept = function(visitor) { -HiveSqlParser.Set_session_optionContext = Set_session_optionContext; +HiveSql.Set_session_optionContext = Set_session_optionContext; -HiveSqlParser.prototype.set_session_option = function() { +HiveSql.prototype.set_session_option = function() { var localctx = new Set_session_optionContext(this, this._ctx, this.state); - this.enterRule(localctx, 252, HiveSqlParser.RULE_set_session_option); + this.enterRule(localctx, 252, HiveSql.RULE_set_session_option); try { - this.state = 2054; + this.state = 2051; this._errHandler.sync(this); switch(this._input.LA(1)) { - case HiveSqlParser.T_SCHEMA: - case HiveSqlParser.T_CURRENT: - case HiveSqlParser.T_CURRENT_SCHEMA: + case HiveSql.T_CURRENT: + case HiveSql.T_CURRENT_SCHEMA: + case HiveSql.T_SCHEMA: this.enterOuterAlt(localctx, 1); - this.state = 2051; + this.state = 2048; this.set_current_schema_option(); break; - case HiveSqlParser.T_ANSI_NULLS: - case HiveSqlParser.T_ANSI_PADDING: - case HiveSqlParser.T_NOCOUNT: - case HiveSqlParser.T_QUOTED_IDENTIFIER: - case HiveSqlParser.T_XACT_ABORT: + case HiveSql.T_ANSI_NULLS: + case HiveSql.T_ANSI_PADDING: + case HiveSql.T_NOCOUNT: + case HiveSql.T_QUOTED_IDENTIFIER: + case HiveSql.T_XACT_ABORT: this.enterOuterAlt(localctx, 2); - this.state = 2052; + this.state = 2049; this.set_mssql_session_option(); break; - case HiveSqlParser.T_QUERY_BAND: + case HiveSql.T_QUERY_BAND: this.enterOuterAlt(localctx, 3); - this.state = 2053; + this.state = 2050; this.set_teradata_session_option(); break; default: @@ -21275,7 +21315,7 @@ function Set_current_schema_optionContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_set_current_schema_option; + this.ruleIndex = HiveSql.RULE_set_current_schema_option; return this; } @@ -21287,19 +21327,19 @@ Set_current_schema_optionContext.prototype.expr = function() { }; Set_current_schema_optionContext.prototype.T_CURRENT_SCHEMA = function() { - return this.getToken(HiveSqlParser.T_CURRENT_SCHEMA, 0); + return this.getToken(HiveSql.T_CURRENT_SCHEMA, 0); }; Set_current_schema_optionContext.prototype.T_EQUAL = function() { - return this.getToken(HiveSqlParser.T_EQUAL, 0); + return this.getToken(HiveSql.T_EQUAL, 0); }; Set_current_schema_optionContext.prototype.T_SCHEMA = function() { - return this.getToken(HiveSqlParser.T_SCHEMA, 0); + return this.getToken(HiveSql.T_SCHEMA, 0); }; Set_current_schema_optionContext.prototype.T_CURRENT = function() { - return this.getToken(HiveSqlParser.T_CURRENT, 0); + return this.getToken(HiveSql.T_CURRENT, 0); }; Set_current_schema_optionContext.prototype.enterRule = function(listener) { @@ -21325,47 +21365,47 @@ Set_current_schema_optionContext.prototype.accept = function(visitor) { -HiveSqlParser.Set_current_schema_optionContext = Set_current_schema_optionContext; +HiveSql.Set_current_schema_optionContext = Set_current_schema_optionContext; -HiveSqlParser.prototype.set_current_schema_option = function() { +HiveSql.prototype.set_current_schema_option = function() { var localctx = new Set_current_schema_optionContext(this, this._ctx, this.state); - this.enterRule(localctx, 254, HiveSqlParser.RULE_set_current_schema_option); + this.enterRule(localctx, 254, HiveSql.RULE_set_current_schema_option); var _la = 0; // Token type try { this.enterOuterAlt(localctx, 1); - this.state = 2061; + this.state = 2058; this._errHandler.sync(this); switch(this._input.LA(1)) { - case HiveSqlParser.T_SCHEMA: - case HiveSqlParser.T_CURRENT: - this.state = 2057; + case HiveSql.T_CURRENT: + case HiveSql.T_SCHEMA: + this.state = 2054; this._errHandler.sync(this); _la = this._input.LA(1); - if(_la===HiveSqlParser.T_CURRENT) { - this.state = 2056; - this.match(HiveSqlParser.T_CURRENT); + if(_la===HiveSql.T_CURRENT) { + this.state = 2053; + this.match(HiveSql.T_CURRENT); } - this.state = 2059; - this.match(HiveSqlParser.T_SCHEMA); + this.state = 2056; + this.match(HiveSql.T_SCHEMA); break; - case HiveSqlParser.T_CURRENT_SCHEMA: - this.state = 2060; - this.match(HiveSqlParser.T_CURRENT_SCHEMA); + case HiveSql.T_CURRENT_SCHEMA: + this.state = 2057; + this.match(HiveSql.T_CURRENT_SCHEMA); break; default: throw new antlr4.error.NoViableAltException(this); } - this.state = 2064; + this.state = 2061; this._errHandler.sync(this); _la = this._input.LA(1); - if(_la===HiveSqlParser.T_EQUAL) { - this.state = 2063; - this.match(HiveSqlParser.T_EQUAL); + if(_la===HiveSql.T_EQUAL) { + this.state = 2060; + this.match(HiveSql.T_EQUAL); } - this.state = 2066; + this.state = 2063; this.expr(0); } catch (re) { if(re instanceof antlr4.error.RecognitionException) { @@ -21391,7 +21431,7 @@ function Set_mssql_session_optionContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_set_mssql_session_option; + this.ruleIndex = HiveSql.RULE_set_mssql_session_option; return this; } @@ -21399,31 +21439,31 @@ Set_mssql_session_optionContext.prototype = Object.create(antlr4.ParserRuleConte Set_mssql_session_optionContext.prototype.constructor = Set_mssql_session_optionContext; Set_mssql_session_optionContext.prototype.T_ANSI_NULLS = function() { - return this.getToken(HiveSqlParser.T_ANSI_NULLS, 0); + return this.getToken(HiveSql.T_ANSI_NULLS, 0); }; Set_mssql_session_optionContext.prototype.T_ANSI_PADDING = function() { - return this.getToken(HiveSqlParser.T_ANSI_PADDING, 0); + return this.getToken(HiveSql.T_ANSI_PADDING, 0); }; Set_mssql_session_optionContext.prototype.T_NOCOUNT = function() { - return this.getToken(HiveSqlParser.T_NOCOUNT, 0); + return this.getToken(HiveSql.T_NOCOUNT, 0); }; Set_mssql_session_optionContext.prototype.T_QUOTED_IDENTIFIER = function() { - return this.getToken(HiveSqlParser.T_QUOTED_IDENTIFIER, 0); + return this.getToken(HiveSql.T_QUOTED_IDENTIFIER, 0); }; Set_mssql_session_optionContext.prototype.T_XACT_ABORT = function() { - return this.getToken(HiveSqlParser.T_XACT_ABORT, 0); + return this.getToken(HiveSql.T_XACT_ABORT, 0); }; Set_mssql_session_optionContext.prototype.T_ON = function() { - return this.getToken(HiveSqlParser.T_ON, 0); + return this.getToken(HiveSql.T_ON, 0); }; Set_mssql_session_optionContext.prototype.T_OFF = function() { - return this.getToken(HiveSqlParser.T_OFF, 0); + return this.getToken(HiveSql.T_OFF, 0); }; Set_mssql_session_optionContext.prototype.enterRule = function(listener) { @@ -21449,27 +21489,27 @@ Set_mssql_session_optionContext.prototype.accept = function(visitor) { -HiveSqlParser.Set_mssql_session_optionContext = Set_mssql_session_optionContext; +HiveSql.Set_mssql_session_optionContext = Set_mssql_session_optionContext; -HiveSqlParser.prototype.set_mssql_session_option = function() { +HiveSql.prototype.set_mssql_session_option = function() { var localctx = new Set_mssql_session_optionContext(this, this._ctx, this.state); - this.enterRule(localctx, 256, HiveSqlParser.RULE_set_mssql_session_option); + this.enterRule(localctx, 256, HiveSql.RULE_set_mssql_session_option); var _la = 0; // Token type try { this.enterOuterAlt(localctx, 1); - this.state = 2068; + this.state = 2065; _la = this._input.LA(1); - if(!(((((_la - 247)) & ~0x1f) == 0 && ((1 << (_la - 247)) & ((1 << (HiveSqlParser.T_ANSI_NULLS - 247)) | (1 << (HiveSqlParser.T_ANSI_PADDING - 247)) | (1 << (HiveSqlParser.T_NOCOUNT - 247)) | (1 << (HiveSqlParser.T_QUOTED_IDENTIFIER - 247)) | (1 << (HiveSqlParser.T_XACT_ABORT - 247)))) !== 0))) { + if(!(_la===HiveSql.T_ANSI_NULLS || _la===HiveSql.T_ANSI_PADDING || _la===HiveSql.T_NOCOUNT || _la===HiveSql.T_QUOTED_IDENTIFIER || _la===HiveSql.T_XACT_ABORT)) { this._errHandler.recoverInline(this); } else { this._errHandler.reportMatch(this); this.consume(); } - this.state = 2069; + this.state = 2066; _la = this._input.LA(1); - if(!(_la===HiveSqlParser.T_ON || _la===HiveSqlParser.T_OFF)) { + if(!(_la===HiveSql.T_OFF || _la===HiveSql.T_ON)) { this._errHandler.recoverInline(this); } else { @@ -21500,7 +21540,7 @@ function Set_teradata_session_optionContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_set_teradata_session_option; + this.ruleIndex = HiveSql.RULE_set_teradata_session_option; return this; } @@ -21508,23 +21548,23 @@ Set_teradata_session_optionContext.prototype = Object.create(antlr4.ParserRuleCo Set_teradata_session_optionContext.prototype.constructor = Set_teradata_session_optionContext; Set_teradata_session_optionContext.prototype.T_QUERY_BAND = function() { - return this.getToken(HiveSqlParser.T_QUERY_BAND, 0); + return this.getToken(HiveSql.T_QUERY_BAND, 0); }; Set_teradata_session_optionContext.prototype.T_EQUAL = function() { - return this.getToken(HiveSqlParser.T_EQUAL, 0); + return this.getToken(HiveSql.T_EQUAL, 0); }; Set_teradata_session_optionContext.prototype.T_FOR = function() { - return this.getToken(HiveSqlParser.T_FOR, 0); + return this.getToken(HiveSql.T_FOR, 0); }; Set_teradata_session_optionContext.prototype.T_TRANSACTION = function() { - return this.getToken(HiveSqlParser.T_TRANSACTION, 0); + return this.getToken(HiveSql.T_TRANSACTION, 0); }; Set_teradata_session_optionContext.prototype.T_SESSION = function() { - return this.getToken(HiveSqlParser.T_SESSION, 0); + return this.getToken(HiveSql.T_SESSION, 0); }; Set_teradata_session_optionContext.prototype.expr = function() { @@ -21532,11 +21572,11 @@ Set_teradata_session_optionContext.prototype.expr = function() { }; Set_teradata_session_optionContext.prototype.T_NONE = function() { - return this.getToken(HiveSqlParser.T_NONE, 0); + return this.getToken(HiveSql.T_NONE, 0); }; Set_teradata_session_optionContext.prototype.T_UPDATE = function() { - return this.getToken(HiveSqlParser.T_UPDATE, 0); + return this.getToken(HiveSql.T_UPDATE, 0); }; Set_teradata_session_optionContext.prototype.enterRule = function(listener) { @@ -21562,47 +21602,47 @@ Set_teradata_session_optionContext.prototype.accept = function(visitor) { -HiveSqlParser.Set_teradata_session_optionContext = Set_teradata_session_optionContext; +HiveSql.Set_teradata_session_optionContext = Set_teradata_session_optionContext; -HiveSqlParser.prototype.set_teradata_session_option = function() { +HiveSql.prototype.set_teradata_session_option = function() { var localctx = new Set_teradata_session_optionContext(this, this._ctx, this.state); - this.enterRule(localctx, 258, HiveSqlParser.RULE_set_teradata_session_option); + this.enterRule(localctx, 258, HiveSql.RULE_set_teradata_session_option); var _la = 0; // Token type try { this.enterOuterAlt(localctx, 1); - this.state = 2071; - this.match(HiveSqlParser.T_QUERY_BAND); + this.state = 2068; + this.match(HiveSql.T_QUERY_BAND); + this.state = 2069; + this.match(HiveSql.T_EQUAL); this.state = 2072; - this.match(HiveSqlParser.T_EQUAL); - this.state = 2075; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,238,this._ctx); switch(la_) { case 1: - this.state = 2073; + this.state = 2070; this.expr(0); break; case 2: - this.state = 2074; - this.match(HiveSqlParser.T_NONE); + this.state = 2071; + this.match(HiveSql.T_NONE); break; } - this.state = 2078; + this.state = 2075; this._errHandler.sync(this); _la = this._input.LA(1); - if(_la===HiveSqlParser.T_UPDATE) { - this.state = 2077; - this.match(HiveSqlParser.T_UPDATE); + if(_la===HiveSql.T_UPDATE) { + this.state = 2074; + this.match(HiveSql.T_UPDATE); } - this.state = 2080; - this.match(HiveSqlParser.T_FOR); - this.state = 2081; + this.state = 2077; + this.match(HiveSql.T_FOR); + this.state = 2078; _la = this._input.LA(1); - if(!(_la===HiveSqlParser.T_TRANSACTION || _la===HiveSqlParser.T_SESSION)) { + if(!(_la===HiveSql.T_SESSION || _la===HiveSql.T_TRANSACTION)) { this._errHandler.recoverInline(this); } else { @@ -21633,7 +21673,7 @@ function Signal_stmtContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_signal_stmt; + this.ruleIndex = HiveSql.RULE_signal_stmt; return this; } @@ -21641,7 +21681,7 @@ Signal_stmtContext.prototype = Object.create(antlr4.ParserRuleContext.prototype) Signal_stmtContext.prototype.constructor = Signal_stmtContext; Signal_stmtContext.prototype.T_SIGNAL = function() { - return this.getToken(HiveSqlParser.T_SIGNAL, 0); + return this.getToken(HiveSql.T_SIGNAL, 0); }; Signal_stmtContext.prototype.ident = function() { @@ -21671,17 +21711,17 @@ Signal_stmtContext.prototype.accept = function(visitor) { -HiveSqlParser.Signal_stmtContext = Signal_stmtContext; +HiveSql.Signal_stmtContext = Signal_stmtContext; -HiveSqlParser.prototype.signal_stmt = function() { +HiveSql.prototype.signal_stmt = function() { var localctx = new Signal_stmtContext(this, this._ctx, this.state); - this.enterRule(localctx, 260, HiveSqlParser.RULE_signal_stmt); + this.enterRule(localctx, 260, HiveSql.RULE_signal_stmt); try { this.enterOuterAlt(localctx, 1); - this.state = 2083; - this.match(HiveSqlParser.T_SIGNAL); - this.state = 2084; + this.state = 2080; + this.match(HiveSql.T_SIGNAL); + this.state = 2081; this.ident(); } catch (re) { if(re instanceof antlr4.error.RecognitionException) { @@ -21707,7 +21747,7 @@ function Summary_stmtContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_summary_stmt; + this.ruleIndex = HiveSql.RULE_summary_stmt; return this; } @@ -21715,11 +21755,11 @@ Summary_stmtContext.prototype = Object.create(antlr4.ParserRuleContext.prototype Summary_stmtContext.prototype.constructor = Summary_stmtContext; Summary_stmtContext.prototype.T_SUMMARY = function() { - return this.getToken(HiveSqlParser.T_SUMMARY, 0); + return this.getToken(HiveSql.T_SUMMARY, 0); }; Summary_stmtContext.prototype.T_FOR = function() { - return this.getToken(HiveSqlParser.T_FOR, 0); + return this.getToken(HiveSql.T_FOR, 0); }; Summary_stmtContext.prototype.select_stmt = function() { @@ -21731,7 +21771,7 @@ Summary_stmtContext.prototype.table_name = function() { }; Summary_stmtContext.prototype.T_TOP = function() { - return this.getToken(HiveSqlParser.T_TOP, 0); + return this.getToken(HiveSql.T_TOP, 0); }; Summary_stmtContext.prototype.expr = function(i) { @@ -21750,7 +21790,7 @@ Summary_stmtContext.prototype.where_clause = function() { }; Summary_stmtContext.prototype.T_LIMIT = function() { - return this.getToken(HiveSqlParser.T_LIMIT, 0); + return this.getToken(HiveSql.T_LIMIT, 0); }; Summary_stmtContext.prototype.enterRule = function(listener) { @@ -21776,56 +21816,56 @@ Summary_stmtContext.prototype.accept = function(visitor) { -HiveSqlParser.Summary_stmtContext = Summary_stmtContext; +HiveSql.Summary_stmtContext = Summary_stmtContext; -HiveSqlParser.prototype.summary_stmt = function() { +HiveSql.prototype.summary_stmt = function() { var localctx = new Summary_stmtContext(this, this._ctx, this.state); - this.enterRule(localctx, 262, HiveSqlParser.RULE_summary_stmt); + this.enterRule(localctx, 262, HiveSql.RULE_summary_stmt); var _la = 0; // Token type try { this.enterOuterAlt(localctx, 1); + this.state = 2083; + this.match(HiveSql.T_SUMMARY); this.state = 2086; - this.match(HiveSqlParser.T_SUMMARY); - this.state = 2089; this._errHandler.sync(this); _la = this._input.LA(1); - if(_la===HiveSqlParser.T_TOP) { - this.state = 2087; - this.match(HiveSqlParser.T_TOP); - this.state = 2088; + if(_la===HiveSql.T_TOP) { + this.state = 2084; + this.match(HiveSql.T_TOP); + this.state = 2085; this.expr(0); } - this.state = 2091; - this.match(HiveSqlParser.T_FOR); - this.state = 2101; + this.state = 2088; + this.match(HiveSql.T_FOR); + this.state = 2098; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,243,this._ctx); switch(la_) { case 1: - this.state = 2092; + this.state = 2089; this.select_stmt(); break; case 2: - this.state = 2093; + this.state = 2090; this.table_name(); - this.state = 2095; + this.state = 2092; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,241,this._ctx); if(la_===1) { - this.state = 2094; + this.state = 2091; this.where_clause(); } - this.state = 2099; + this.state = 2096; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,242,this._ctx); if(la_===1) { - this.state = 2097; - this.match(HiveSqlParser.T_LIMIT); - this.state = 2098; + this.state = 2094; + this.match(HiveSql.T_LIMIT); + this.state = 2095; this.expr(0); } @@ -21856,7 +21896,7 @@ function Truncate_stmtContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_truncate_stmt; + this.ruleIndex = HiveSql.RULE_truncate_stmt; return this; } @@ -21864,7 +21904,7 @@ Truncate_stmtContext.prototype = Object.create(antlr4.ParserRuleContext.prototyp Truncate_stmtContext.prototype.constructor = Truncate_stmtContext; Truncate_stmtContext.prototype.T_TRUNCATE = function() { - return this.getToken(HiveSqlParser.T_TRUNCATE, 0); + return this.getToken(HiveSql.T_TRUNCATE, 0); }; Truncate_stmtContext.prototype.table_name = function() { @@ -21872,7 +21912,7 @@ Truncate_stmtContext.prototype.table_name = function() { }; Truncate_stmtContext.prototype.T_TABLE = function() { - return this.getToken(HiveSqlParser.T_TABLE, 0); + return this.getToken(HiveSql.T_TABLE, 0); }; Truncate_stmtContext.prototype.enterRule = function(listener) { @@ -21898,25 +21938,25 @@ Truncate_stmtContext.prototype.accept = function(visitor) { -HiveSqlParser.Truncate_stmtContext = Truncate_stmtContext; +HiveSql.Truncate_stmtContext = Truncate_stmtContext; -HiveSqlParser.prototype.truncate_stmt = function() { +HiveSql.prototype.truncate_stmt = function() { var localctx = new Truncate_stmtContext(this, this._ctx, this.state); - this.enterRule(localctx, 264, HiveSqlParser.RULE_truncate_stmt); + this.enterRule(localctx, 264, HiveSql.RULE_truncate_stmt); try { this.enterOuterAlt(localctx, 1); - this.state = 2103; - this.match(HiveSqlParser.T_TRUNCATE); - this.state = 2105; + this.state = 2100; + this.match(HiveSql.T_TRUNCATE); + this.state = 2102; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,244,this._ctx); if(la_===1) { - this.state = 2104; - this.match(HiveSqlParser.T_TABLE); + this.state = 2101; + this.match(HiveSql.T_TABLE); } - this.state = 2107; + this.state = 2104; this.table_name(); } catch (re) { if(re instanceof antlr4.error.RecognitionException) { @@ -21942,7 +21982,7 @@ function Use_stmtContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_use_stmt; + this.ruleIndex = HiveSql.RULE_use_stmt; return this; } @@ -21950,7 +21990,7 @@ Use_stmtContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); Use_stmtContext.prototype.constructor = Use_stmtContext; Use_stmtContext.prototype.T_USE = function() { - return this.getToken(HiveSqlParser.T_USE, 0); + return this.getToken(HiveSql.T_USE, 0); }; Use_stmtContext.prototype.expr = function() { @@ -21980,17 +22020,17 @@ Use_stmtContext.prototype.accept = function(visitor) { -HiveSqlParser.Use_stmtContext = Use_stmtContext; +HiveSql.Use_stmtContext = Use_stmtContext; -HiveSqlParser.prototype.use_stmt = function() { +HiveSql.prototype.use_stmt = function() { var localctx = new Use_stmtContext(this, this._ctx, this.state); - this.enterRule(localctx, 266, HiveSqlParser.RULE_use_stmt); + this.enterRule(localctx, 266, HiveSql.RULE_use_stmt); try { this.enterOuterAlt(localctx, 1); - this.state = 2109; - this.match(HiveSqlParser.T_USE); - this.state = 2110; + this.state = 2106; + this.match(HiveSql.T_USE); + this.state = 2107; this.expr(0); } catch (re) { if(re instanceof antlr4.error.RecognitionException) { @@ -22016,7 +22056,7 @@ function Values_into_stmtContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_values_into_stmt; + this.ruleIndex = HiveSql.RULE_values_into_stmt; return this; } @@ -22024,7 +22064,7 @@ Values_into_stmtContext.prototype = Object.create(antlr4.ParserRuleContext.proto Values_into_stmtContext.prototype.constructor = Values_into_stmtContext; Values_into_stmtContext.prototype.T_VALUES = function() { - return this.getToken(HiveSqlParser.T_VALUES, 0); + return this.getToken(HiveSql.T_VALUES, 0); }; Values_into_stmtContext.prototype.expr = function(i) { @@ -22039,7 +22079,7 @@ Values_into_stmtContext.prototype.expr = function(i) { }; Values_into_stmtContext.prototype.T_INTO = function() { - return this.getToken(HiveSqlParser.T_INTO, 0); + return this.getToken(HiveSql.T_INTO, 0); }; Values_into_stmtContext.prototype.ident = function(i) { @@ -22058,9 +22098,9 @@ Values_into_stmtContext.prototype.T_OPEN_P = function(i) { i = null; } if(i===null) { - return this.getTokens(HiveSqlParser.T_OPEN_P); + return this.getTokens(HiveSql.T_OPEN_P); } else { - return this.getToken(HiveSqlParser.T_OPEN_P, i); + return this.getToken(HiveSql.T_OPEN_P, i); } }; @@ -22070,9 +22110,9 @@ Values_into_stmtContext.prototype.T_COMMA = function(i) { i = null; } if(i===null) { - return this.getTokens(HiveSqlParser.T_COMMA); + return this.getTokens(HiveSql.T_COMMA); } else { - return this.getToken(HiveSqlParser.T_COMMA, i); + return this.getToken(HiveSql.T_COMMA, i); } }; @@ -22082,9 +22122,9 @@ Values_into_stmtContext.prototype.T_CLOSE_P = function(i) { i = null; } if(i===null) { - return this.getTokens(HiveSqlParser.T_CLOSE_P); + return this.getTokens(HiveSql.T_CLOSE_P); } else { - return this.getToken(HiveSqlParser.T_CLOSE_P, i); + return this.getToken(HiveSql.T_CLOSE_P, i); } }; @@ -22112,80 +22152,80 @@ Values_into_stmtContext.prototype.accept = function(visitor) { -HiveSqlParser.Values_into_stmtContext = Values_into_stmtContext; +HiveSql.Values_into_stmtContext = Values_into_stmtContext; -HiveSqlParser.prototype.values_into_stmt = function() { +HiveSql.prototype.values_into_stmt = function() { var localctx = new Values_into_stmtContext(this, this._ctx, this.state); - this.enterRule(localctx, 268, HiveSqlParser.RULE_values_into_stmt); + this.enterRule(localctx, 268, HiveSql.RULE_values_into_stmt); var _la = 0; // Token type try { this.enterOuterAlt(localctx, 1); - this.state = 2112; - this.match(HiveSqlParser.T_VALUES); - this.state = 2114; + this.state = 2109; + this.match(HiveSql.T_VALUES); + this.state = 2111; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,245,this._ctx); if(la_===1) { - this.state = 2113; - this.match(HiveSqlParser.T_OPEN_P); + this.state = 2110; + this.match(HiveSql.T_OPEN_P); } - this.state = 2116; + this.state = 2113; this.expr(0); - this.state = 2121; + this.state = 2118; this._errHandler.sync(this); _la = this._input.LA(1); - while(_la===HiveSqlParser.T_COMMA) { - this.state = 2117; - this.match(HiveSqlParser.T_COMMA); - this.state = 2118; + while(_la===HiveSql.T_COMMA) { + this.state = 2114; + this.match(HiveSql.T_COMMA); + this.state = 2115; this.expr(0); - this.state = 2123; + this.state = 2120; this._errHandler.sync(this); _la = this._input.LA(1); } - this.state = 2125; + this.state = 2122; this._errHandler.sync(this); _la = this._input.LA(1); - if(_la===HiveSqlParser.T_CLOSE_P) { - this.state = 2124; - this.match(HiveSqlParser.T_CLOSE_P); + if(_la===HiveSql.T_CLOSE_P) { + this.state = 2121; + this.match(HiveSql.T_CLOSE_P); } - this.state = 2127; - this.match(HiveSqlParser.T_INTO); - this.state = 2129; + this.state = 2124; + this.match(HiveSql.T_INTO); + this.state = 2126; this._errHandler.sync(this); _la = this._input.LA(1); - if(_la===HiveSqlParser.T_OPEN_P) { - this.state = 2128; - this.match(HiveSqlParser.T_OPEN_P); + if(_la===HiveSql.T_OPEN_P) { + this.state = 2125; + this.match(HiveSql.T_OPEN_P); } - this.state = 2131; + this.state = 2128; this.ident(); - this.state = 2136; + this.state = 2133; this._errHandler.sync(this); var _alt = this._interp.adaptivePredict(this._input,249,this._ctx) while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { if(_alt===1) { - this.state = 2132; - this.match(HiveSqlParser.T_COMMA); - this.state = 2133; + this.state = 2129; + this.match(HiveSql.T_COMMA); + this.state = 2130; this.ident(); } - this.state = 2138; + this.state = 2135; this._errHandler.sync(this); _alt = this._interp.adaptivePredict(this._input,249,this._ctx); } - this.state = 2140; + this.state = 2137; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,250,this._ctx); if(la_===1) { - this.state = 2139; - this.match(HiveSqlParser.T_CLOSE_P); + this.state = 2136; + this.match(HiveSql.T_CLOSE_P); } } catch (re) { @@ -22212,7 +22252,7 @@ function While_stmtContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_while_stmt; + this.ruleIndex = HiveSql.RULE_while_stmt; return this; } @@ -22224,9 +22264,9 @@ While_stmtContext.prototype.T_WHILE = function(i) { i = null; } if(i===null) { - return this.getTokens(HiveSqlParser.T_WHILE); + return this.getTokens(HiveSql.T_WHILE); } else { - return this.getToken(HiveSqlParser.T_WHILE, i); + return this.getToken(HiveSql.T_WHILE, i); } }; @@ -22240,11 +22280,11 @@ While_stmtContext.prototype.block = function() { }; While_stmtContext.prototype.T_END = function() { - return this.getToken(HiveSqlParser.T_END, 0); + return this.getToken(HiveSql.T_END, 0); }; While_stmtContext.prototype.T_DO = function() { - return this.getToken(HiveSqlParser.T_DO, 0); + return this.getToken(HiveSql.T_DO, 0); }; While_stmtContext.prototype.T_LOOP = function(i) { @@ -22252,19 +22292,19 @@ While_stmtContext.prototype.T_LOOP = function(i) { i = null; } if(i===null) { - return this.getTokens(HiveSqlParser.T_LOOP); + return this.getTokens(HiveSql.T_LOOP); } else { - return this.getToken(HiveSqlParser.T_LOOP, i); + return this.getToken(HiveSql.T_LOOP, i); } }; While_stmtContext.prototype.T_THEN = function() { - return this.getToken(HiveSqlParser.T_THEN, 0); + return this.getToken(HiveSql.T_THEN, 0); }; While_stmtContext.prototype.T_BEGIN = function() { - return this.getToken(HiveSqlParser.T_BEGIN, 0); + return this.getToken(HiveSql.T_BEGIN, 0); }; While_stmtContext.prototype.enterRule = function(listener) { @@ -22290,39 +22330,39 @@ While_stmtContext.prototype.accept = function(visitor) { -HiveSqlParser.While_stmtContext = While_stmtContext; +HiveSql.While_stmtContext = While_stmtContext; -HiveSqlParser.prototype.while_stmt = function() { +HiveSql.prototype.while_stmt = function() { var localctx = new While_stmtContext(this, this._ctx, this.state); - this.enterRule(localctx, 270, HiveSqlParser.RULE_while_stmt); + this.enterRule(localctx, 270, HiveSql.RULE_while_stmt); var _la = 0; // Token type try { this.enterOuterAlt(localctx, 1); - this.state = 2142; - this.match(HiveSqlParser.T_WHILE); - this.state = 2143; + this.state = 2139; + this.match(HiveSql.T_WHILE); + this.state = 2140; this.bool_expr(0); - this.state = 2144; + this.state = 2141; _la = this._input.LA(1); - if(!(_la===HiveSqlParser.T_BEGIN || _la===HiveSqlParser.T_THEN || _la===HiveSqlParser.T_DO || _la===HiveSqlParser.T_LOOP)) { + if(!(_la===HiveSql.T_BEGIN || _la===HiveSql.T_DO || _la===HiveSql.T_LOOP || _la===HiveSql.T_THEN)) { this._errHandler.recoverInline(this); } else { this._errHandler.reportMatch(this); this.consume(); } - this.state = 2145; + this.state = 2142; this.block(); - this.state = 2146; - this.match(HiveSqlParser.T_END); - this.state = 2148; + this.state = 2143; + this.match(HiveSql.T_END); + this.state = 2145; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,251,this._ctx); if(la_===1) { - this.state = 2147; + this.state = 2144; _la = this._input.LA(1); - if(!(_la===HiveSqlParser.T_WHILE || _la===HiveSqlParser.T_LOOP)) { + if(!(_la===HiveSql.T_LOOP || _la===HiveSql.T_WHILE)) { this._errHandler.recoverInline(this); } else { @@ -22355,7 +22395,7 @@ function For_cursor_stmtContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_for_cursor_stmt; + this.ruleIndex = HiveSql.RULE_for_cursor_stmt; return this; } @@ -22363,15 +22403,15 @@ For_cursor_stmtContext.prototype = Object.create(antlr4.ParserRuleContext.protot For_cursor_stmtContext.prototype.constructor = For_cursor_stmtContext; For_cursor_stmtContext.prototype.T_FOR = function() { - return this.getToken(HiveSqlParser.T_FOR, 0); + return this.getToken(HiveSql.T_FOR, 0); }; For_cursor_stmtContext.prototype.L_ID = function() { - return this.getToken(HiveSqlParser.L_ID, 0); + return this.getToken(HiveSql.L_ID, 0); }; For_cursor_stmtContext.prototype.T_IN = function() { - return this.getToken(HiveSqlParser.T_IN, 0); + return this.getToken(HiveSql.T_IN, 0); }; For_cursor_stmtContext.prototype.select_stmt = function() { @@ -22383,9 +22423,9 @@ For_cursor_stmtContext.prototype.T_LOOP = function(i) { i = null; } if(i===null) { - return this.getTokens(HiveSqlParser.T_LOOP); + return this.getTokens(HiveSql.T_LOOP); } else { - return this.getToken(HiveSqlParser.T_LOOP, i); + return this.getToken(HiveSql.T_LOOP, i); } }; @@ -22395,15 +22435,15 @@ For_cursor_stmtContext.prototype.block = function() { }; For_cursor_stmtContext.prototype.T_END = function() { - return this.getToken(HiveSqlParser.T_END, 0); + return this.getToken(HiveSql.T_END, 0); }; For_cursor_stmtContext.prototype.T_OPEN_P = function() { - return this.getToken(HiveSqlParser.T_OPEN_P, 0); + return this.getToken(HiveSql.T_OPEN_P, 0); }; For_cursor_stmtContext.prototype.T_CLOSE_P = function() { - return this.getToken(HiveSqlParser.T_CLOSE_P, 0); + return this.getToken(HiveSql.T_CLOSE_P, 0); }; For_cursor_stmtContext.prototype.enterRule = function(listener) { @@ -22429,47 +22469,47 @@ For_cursor_stmtContext.prototype.accept = function(visitor) { -HiveSqlParser.For_cursor_stmtContext = For_cursor_stmtContext; +HiveSql.For_cursor_stmtContext = For_cursor_stmtContext; -HiveSqlParser.prototype.for_cursor_stmt = function() { +HiveSql.prototype.for_cursor_stmt = function() { var localctx = new For_cursor_stmtContext(this, this._ctx, this.state); - this.enterRule(localctx, 272, HiveSqlParser.RULE_for_cursor_stmt); + this.enterRule(localctx, 272, HiveSql.RULE_for_cursor_stmt); var _la = 0; // Token type try { this.enterOuterAlt(localctx, 1); - this.state = 2150; - this.match(HiveSqlParser.T_FOR); + this.state = 2147; + this.match(HiveSql.T_FOR); + this.state = 2148; + this.match(HiveSql.L_ID); + this.state = 2149; + this.match(HiveSql.T_IN); this.state = 2151; - this.match(HiveSqlParser.L_ID); - this.state = 2152; - this.match(HiveSqlParser.T_IN); - this.state = 2154; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,252,this._ctx); if(la_===1) { - this.state = 2153; - this.match(HiveSqlParser.T_OPEN_P); + this.state = 2150; + this.match(HiveSql.T_OPEN_P); } - this.state = 2156; + this.state = 2153; this.select_stmt(); - this.state = 2158; + this.state = 2155; this._errHandler.sync(this); _la = this._input.LA(1); - if(_la===HiveSqlParser.T_CLOSE_P) { - this.state = 2157; - this.match(HiveSqlParser.T_CLOSE_P); + if(_la===HiveSql.T_CLOSE_P) { + this.state = 2154; + this.match(HiveSql.T_CLOSE_P); } - this.state = 2160; - this.match(HiveSqlParser.T_LOOP); - this.state = 2161; + this.state = 2157; + this.match(HiveSql.T_LOOP); + this.state = 2158; this.block(); - this.state = 2162; - this.match(HiveSqlParser.T_END); - this.state = 2163; - this.match(HiveSqlParser.T_LOOP); + this.state = 2159; + this.match(HiveSql.T_END); + this.state = 2160; + this.match(HiveSql.T_LOOP); } catch (re) { if(re instanceof antlr4.error.RecognitionException) { localctx.exception = re; @@ -22494,7 +22534,7 @@ function For_range_stmtContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_for_range_stmt; + this.ruleIndex = HiveSql.RULE_for_range_stmt; return this; } @@ -22502,15 +22542,15 @@ For_range_stmtContext.prototype = Object.create(antlr4.ParserRuleContext.prototy For_range_stmtContext.prototype.constructor = For_range_stmtContext; For_range_stmtContext.prototype.T_FOR = function() { - return this.getToken(HiveSqlParser.T_FOR, 0); + return this.getToken(HiveSql.T_FOR, 0); }; For_range_stmtContext.prototype.L_ID = function() { - return this.getToken(HiveSqlParser.L_ID, 0); + return this.getToken(HiveSql.L_ID, 0); }; For_range_stmtContext.prototype.T_IN = function() { - return this.getToken(HiveSqlParser.T_IN, 0); + return this.getToken(HiveSql.T_IN, 0); }; For_range_stmtContext.prototype.expr = function(i) { @@ -22525,7 +22565,7 @@ For_range_stmtContext.prototype.expr = function(i) { }; For_range_stmtContext.prototype.T_DOT2 = function() { - return this.getToken(HiveSqlParser.T_DOT2, 0); + return this.getToken(HiveSql.T_DOT2, 0); }; For_range_stmtContext.prototype.T_LOOP = function(i) { @@ -22533,9 +22573,9 @@ For_range_stmtContext.prototype.T_LOOP = function(i) { i = null; } if(i===null) { - return this.getTokens(HiveSqlParser.T_LOOP); + return this.getTokens(HiveSql.T_LOOP); } else { - return this.getToken(HiveSqlParser.T_LOOP, i); + return this.getToken(HiveSql.T_LOOP, i); } }; @@ -22545,19 +22585,19 @@ For_range_stmtContext.prototype.block = function() { }; For_range_stmtContext.prototype.T_END = function() { - return this.getToken(HiveSqlParser.T_END, 0); + return this.getToken(HiveSql.T_END, 0); }; For_range_stmtContext.prototype.T_REVERSE = function() { - return this.getToken(HiveSqlParser.T_REVERSE, 0); + return this.getToken(HiveSql.T_REVERSE, 0); }; For_range_stmtContext.prototype.T_BY = function() { - return this.getToken(HiveSqlParser.T_BY, 0); + return this.getToken(HiveSql.T_BY, 0); }; For_range_stmtContext.prototype.T_STEP = function() { - return this.getToken(HiveSqlParser.T_STEP, 0); + return this.getToken(HiveSql.T_STEP, 0); }; For_range_stmtContext.prototype.enterRule = function(listener) { @@ -22583,60 +22623,60 @@ For_range_stmtContext.prototype.accept = function(visitor) { -HiveSqlParser.For_range_stmtContext = For_range_stmtContext; +HiveSql.For_range_stmtContext = For_range_stmtContext; -HiveSqlParser.prototype.for_range_stmt = function() { +HiveSql.prototype.for_range_stmt = function() { var localctx = new For_range_stmtContext(this, this._ctx, this.state); - this.enterRule(localctx, 274, HiveSqlParser.RULE_for_range_stmt); + this.enterRule(localctx, 274, HiveSql.RULE_for_range_stmt); var _la = 0; // Token type try { this.enterOuterAlt(localctx, 1); - this.state = 2165; - this.match(HiveSqlParser.T_FOR); + this.state = 2162; + this.match(HiveSql.T_FOR); + this.state = 2163; + this.match(HiveSql.L_ID); + this.state = 2164; + this.match(HiveSql.T_IN); this.state = 2166; - this.match(HiveSqlParser.L_ID); - this.state = 2167; - this.match(HiveSqlParser.T_IN); - this.state = 2169; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,254,this._ctx); if(la_===1) { - this.state = 2168; - this.match(HiveSqlParser.T_REVERSE); + this.state = 2165; + this.match(HiveSql.T_REVERSE); } - this.state = 2171; + this.state = 2168; + this.expr(0); + this.state = 2169; + this.match(HiveSql.T_DOT2); + this.state = 2170; this.expr(0); - this.state = 2172; - this.match(HiveSqlParser.T_DOT2); this.state = 2173; - this.expr(0); - this.state = 2176; this._errHandler.sync(this); _la = this._input.LA(1); - if(_la===HiveSqlParser.T_BY || _la===HiveSqlParser.T_STEP) { - this.state = 2174; + if(_la===HiveSql.T_BY || _la===HiveSql.T_STEP) { + this.state = 2171; _la = this._input.LA(1); - if(!(_la===HiveSqlParser.T_BY || _la===HiveSqlParser.T_STEP)) { + if(!(_la===HiveSql.T_BY || _la===HiveSql.T_STEP)) { this._errHandler.recoverInline(this); } else { this._errHandler.reportMatch(this); this.consume(); } - this.state = 2175; + this.state = 2172; this.expr(0); } - this.state = 2178; - this.match(HiveSqlParser.T_LOOP); - this.state = 2179; + this.state = 2175; + this.match(HiveSql.T_LOOP); + this.state = 2176; this.block(); - this.state = 2180; - this.match(HiveSqlParser.T_END); - this.state = 2181; - this.match(HiveSqlParser.T_LOOP); + this.state = 2177; + this.match(HiveSql.T_END); + this.state = 2178; + this.match(HiveSql.T_LOOP); } catch (re) { if(re instanceof antlr4.error.RecognitionException) { localctx.exception = re; @@ -22661,7 +22701,7 @@ function LabelContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_label; + this.ruleIndex = HiveSql.RULE_label; return this; } @@ -22669,7 +22709,7 @@ LabelContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); LabelContext.prototype.constructor = LabelContext; LabelContext.prototype.L_LABEL = function() { - return this.getToken(HiveSqlParser.L_LABEL, 0); + return this.getToken(HiveSql.L_LABEL, 0); }; LabelContext.prototype.T_LESS = function(i) { @@ -22677,15 +22717,15 @@ LabelContext.prototype.T_LESS = function(i) { i = null; } if(i===null) { - return this.getTokens(HiveSqlParser.T_LESS); + return this.getTokens(HiveSql.T_LESS); } else { - return this.getToken(HiveSqlParser.T_LESS, i); + return this.getToken(HiveSql.T_LESS, i); } }; LabelContext.prototype.L_ID = function() { - return this.getToken(HiveSqlParser.L_ID, 0); + return this.getToken(HiveSql.L_ID, 0); }; LabelContext.prototype.T_GREATER = function(i) { @@ -22693,9 +22733,9 @@ LabelContext.prototype.T_GREATER = function(i) { i = null; } if(i===null) { - return this.getTokens(HiveSqlParser.T_GREATER); + return this.getTokens(HiveSql.T_GREATER); } else { - return this.getToken(HiveSqlParser.T_GREATER, i); + return this.getToken(HiveSql.T_GREATER, i); } }; @@ -22723,33 +22763,33 @@ LabelContext.prototype.accept = function(visitor) { -HiveSqlParser.LabelContext = LabelContext; +HiveSql.LabelContext = LabelContext; -HiveSqlParser.prototype.label = function() { +HiveSql.prototype.label = function() { var localctx = new LabelContext(this, this._ctx, this.state); - this.enterRule(localctx, 276, HiveSqlParser.RULE_label); + this.enterRule(localctx, 276, HiveSql.RULE_label); try { - this.state = 2189; + this.state = 2186; this._errHandler.sync(this); switch(this._input.LA(1)) { - case HiveSqlParser.L_LABEL: + case HiveSql.L_LABEL: this.enterOuterAlt(localctx, 1); - this.state = 2183; - this.match(HiveSqlParser.L_LABEL); + this.state = 2180; + this.match(HiveSql.L_LABEL); break; - case HiveSqlParser.T_LESS: + case HiveSql.T_LESS: this.enterOuterAlt(localctx, 2); + this.state = 2181; + this.match(HiveSql.T_LESS); + this.state = 2182; + this.match(HiveSql.T_LESS); + this.state = 2183; + this.match(HiveSql.L_ID); this.state = 2184; - this.match(HiveSqlParser.T_LESS); + this.match(HiveSql.T_GREATER); this.state = 2185; - this.match(HiveSqlParser.T_LESS); - this.state = 2186; - this.match(HiveSqlParser.L_ID); - this.state = 2187; - this.match(HiveSqlParser.T_GREATER); - this.state = 2188; - this.match(HiveSqlParser.T_GREATER); + this.match(HiveSql.T_GREATER); break; default: throw new antlr4.error.NoViableAltException(this); @@ -22778,7 +22818,7 @@ function Using_clauseContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_using_clause; + this.ruleIndex = HiveSql.RULE_using_clause; return this; } @@ -22786,7 +22826,7 @@ Using_clauseContext.prototype = Object.create(antlr4.ParserRuleContext.prototype Using_clauseContext.prototype.constructor = Using_clauseContext; Using_clauseContext.prototype.T_USING = function() { - return this.getToken(HiveSqlParser.T_USING, 0); + return this.getToken(HiveSql.T_USING, 0); }; Using_clauseContext.prototype.expr = function(i) { @@ -22805,9 +22845,9 @@ Using_clauseContext.prototype.T_COMMA = function(i) { i = null; } if(i===null) { - return this.getTokens(HiveSqlParser.T_COMMA); + return this.getTokens(HiveSql.T_COMMA); } else { - return this.getToken(HiveSqlParser.T_COMMA, i); + return this.getToken(HiveSql.T_COMMA, i); } }; @@ -22835,29 +22875,29 @@ Using_clauseContext.prototype.accept = function(visitor) { -HiveSqlParser.Using_clauseContext = Using_clauseContext; +HiveSql.Using_clauseContext = Using_clauseContext; -HiveSqlParser.prototype.using_clause = function() { +HiveSql.prototype.using_clause = function() { var localctx = new Using_clauseContext(this, this._ctx, this.state); - this.enterRule(localctx, 278, HiveSqlParser.RULE_using_clause); + this.enterRule(localctx, 278, HiveSql.RULE_using_clause); try { this.enterOuterAlt(localctx, 1); - this.state = 2191; - this.match(HiveSqlParser.T_USING); - this.state = 2192; + this.state = 2188; + this.match(HiveSql.T_USING); + this.state = 2189; this.expr(0); - this.state = 2197; + this.state = 2194; this._errHandler.sync(this); var _alt = this._interp.adaptivePredict(this._input,257,this._ctx) while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { if(_alt===1) { - this.state = 2193; - this.match(HiveSqlParser.T_COMMA); - this.state = 2194; + this.state = 2190; + this.match(HiveSql.T_COMMA); + this.state = 2191; this.expr(0); } - this.state = 2199; + this.state = 2196; this._errHandler.sync(this); _alt = this._interp.adaptivePredict(this._input,257,this._ctx); } @@ -22886,7 +22926,7 @@ function Select_stmtContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_select_stmt; + this.ruleIndex = HiveSql.RULE_select_stmt; return this; } @@ -22924,24 +22964,24 @@ Select_stmtContext.prototype.accept = function(visitor) { -HiveSqlParser.Select_stmtContext = Select_stmtContext; +HiveSql.Select_stmtContext = Select_stmtContext; -HiveSqlParser.prototype.select_stmt = function() { +HiveSql.prototype.select_stmt = function() { var localctx = new Select_stmtContext(this, this._ctx, this.state); - this.enterRule(localctx, 280, HiveSqlParser.RULE_select_stmt); + this.enterRule(localctx, 280, HiveSql.RULE_select_stmt); var _la = 0; // Token type try { this.enterOuterAlt(localctx, 1); - this.state = 2201; + this.state = 2198; this._errHandler.sync(this); _la = this._input.LA(1); - if(_la===HiveSqlParser.T_WITH) { - this.state = 2200; + if(_la===HiveSql.T_WITH) { + this.state = 2197; this.cte_select_stmt(); } - this.state = 2203; + this.state = 2200; this.fullselect_stmt(); } catch (re) { if(re instanceof antlr4.error.RecognitionException) { @@ -22967,7 +23007,7 @@ function Cte_select_stmtContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_cte_select_stmt; + this.ruleIndex = HiveSql.RULE_cte_select_stmt; return this; } @@ -22975,7 +23015,7 @@ Cte_select_stmtContext.prototype = Object.create(antlr4.ParserRuleContext.protot Cte_select_stmtContext.prototype.constructor = Cte_select_stmtContext; Cte_select_stmtContext.prototype.T_WITH = function() { - return this.getToken(HiveSqlParser.T_WITH, 0); + return this.getToken(HiveSql.T_WITH, 0); }; Cte_select_stmtContext.prototype.cte_select_stmt_item = function(i) { @@ -22994,9 +23034,9 @@ Cte_select_stmtContext.prototype.T_COMMA = function(i) { i = null; } if(i===null) { - return this.getTokens(HiveSqlParser.T_COMMA); + return this.getTokens(HiveSql.T_COMMA); } else { - return this.getToken(HiveSqlParser.T_COMMA, i); + return this.getToken(HiveSql.T_COMMA, i); } }; @@ -23024,28 +23064,28 @@ Cte_select_stmtContext.prototype.accept = function(visitor) { -HiveSqlParser.Cte_select_stmtContext = Cte_select_stmtContext; +HiveSql.Cte_select_stmtContext = Cte_select_stmtContext; -HiveSqlParser.prototype.cte_select_stmt = function() { +HiveSql.prototype.cte_select_stmt = function() { var localctx = new Cte_select_stmtContext(this, this._ctx, this.state); - this.enterRule(localctx, 282, HiveSqlParser.RULE_cte_select_stmt); + this.enterRule(localctx, 282, HiveSql.RULE_cte_select_stmt); var _la = 0; // Token type try { this.enterOuterAlt(localctx, 1); - this.state = 2205; - this.match(HiveSqlParser.T_WITH); - this.state = 2206; + this.state = 2202; + this.match(HiveSql.T_WITH); + this.state = 2203; this.cte_select_stmt_item(); - this.state = 2211; + this.state = 2208; this._errHandler.sync(this); _la = this._input.LA(1); - while(_la===HiveSqlParser.T_COMMA) { - this.state = 2207; - this.match(HiveSqlParser.T_COMMA); - this.state = 2208; + while(_la===HiveSql.T_COMMA) { + this.state = 2204; + this.match(HiveSql.T_COMMA); + this.state = 2205; this.cte_select_stmt_item(); - this.state = 2213; + this.state = 2210; this._errHandler.sync(this); _la = this._input.LA(1); } @@ -23073,7 +23113,7 @@ function Cte_select_stmt_itemContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_cte_select_stmt_item; + this.ruleIndex = HiveSql.RULE_cte_select_stmt_item; return this; } @@ -23085,11 +23125,11 @@ Cte_select_stmt_itemContext.prototype.ident = function() { }; Cte_select_stmt_itemContext.prototype.T_AS = function() { - return this.getToken(HiveSqlParser.T_AS, 0); + return this.getToken(HiveSql.T_AS, 0); }; Cte_select_stmt_itemContext.prototype.T_OPEN_P = function() { - return this.getToken(HiveSqlParser.T_OPEN_P, 0); + return this.getToken(HiveSql.T_OPEN_P, 0); }; Cte_select_stmt_itemContext.prototype.fullselect_stmt = function() { @@ -23097,7 +23137,7 @@ Cte_select_stmt_itemContext.prototype.fullselect_stmt = function() { }; Cte_select_stmt_itemContext.prototype.T_CLOSE_P = function() { - return this.getToken(HiveSqlParser.T_CLOSE_P, 0); + return this.getToken(HiveSql.T_CLOSE_P, 0); }; Cte_select_stmt_itemContext.prototype.cte_select_cols = function() { @@ -23127,33 +23167,33 @@ Cte_select_stmt_itemContext.prototype.accept = function(visitor) { -HiveSqlParser.Cte_select_stmt_itemContext = Cte_select_stmt_itemContext; +HiveSql.Cte_select_stmt_itemContext = Cte_select_stmt_itemContext; -HiveSqlParser.prototype.cte_select_stmt_item = function() { +HiveSql.prototype.cte_select_stmt_item = function() { var localctx = new Cte_select_stmt_itemContext(this, this._ctx, this.state); - this.enterRule(localctx, 284, HiveSqlParser.RULE_cte_select_stmt_item); + this.enterRule(localctx, 284, HiveSql.RULE_cte_select_stmt_item); var _la = 0; // Token type try { this.enterOuterAlt(localctx, 1); - this.state = 2214; + this.state = 2211; this.ident(); - this.state = 2216; + this.state = 2213; this._errHandler.sync(this); _la = this._input.LA(1); - if(_la===HiveSqlParser.T_OPEN_P) { - this.state = 2215; + if(_la===HiveSql.T_OPEN_P) { + this.state = 2212; this.cte_select_cols(); } - this.state = 2218; - this.match(HiveSqlParser.T_AS); - this.state = 2219; - this.match(HiveSqlParser.T_OPEN_P); - this.state = 2220; + this.state = 2215; + this.match(HiveSql.T_AS); + this.state = 2216; + this.match(HiveSql.T_OPEN_P); + this.state = 2217; this.fullselect_stmt(); - this.state = 2221; - this.match(HiveSqlParser.T_CLOSE_P); + this.state = 2218; + this.match(HiveSql.T_CLOSE_P); } catch (re) { if(re instanceof antlr4.error.RecognitionException) { localctx.exception = re; @@ -23178,7 +23218,7 @@ function Cte_select_colsContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_cte_select_cols; + this.ruleIndex = HiveSql.RULE_cte_select_cols; return this; } @@ -23186,7 +23226,7 @@ Cte_select_colsContext.prototype = Object.create(antlr4.ParserRuleContext.protot Cte_select_colsContext.prototype.constructor = Cte_select_colsContext; Cte_select_colsContext.prototype.T_OPEN_P = function() { - return this.getToken(HiveSqlParser.T_OPEN_P, 0); + return this.getToken(HiveSql.T_OPEN_P, 0); }; Cte_select_colsContext.prototype.ident = function(i) { @@ -23201,7 +23241,7 @@ Cte_select_colsContext.prototype.ident = function(i) { }; Cte_select_colsContext.prototype.T_CLOSE_P = function() { - return this.getToken(HiveSqlParser.T_CLOSE_P, 0); + return this.getToken(HiveSql.T_CLOSE_P, 0); }; Cte_select_colsContext.prototype.T_COMMA = function(i) { @@ -23209,9 +23249,9 @@ Cte_select_colsContext.prototype.T_COMMA = function(i) { i = null; } if(i===null) { - return this.getTokens(HiveSqlParser.T_COMMA); + return this.getTokens(HiveSql.T_COMMA); } else { - return this.getToken(HiveSqlParser.T_COMMA, i); + return this.getToken(HiveSql.T_COMMA, i); } }; @@ -23239,33 +23279,33 @@ Cte_select_colsContext.prototype.accept = function(visitor) { -HiveSqlParser.Cte_select_colsContext = Cte_select_colsContext; +HiveSql.Cte_select_colsContext = Cte_select_colsContext; -HiveSqlParser.prototype.cte_select_cols = function() { +HiveSql.prototype.cte_select_cols = function() { var localctx = new Cte_select_colsContext(this, this._ctx, this.state); - this.enterRule(localctx, 286, HiveSqlParser.RULE_cte_select_cols); + this.enterRule(localctx, 286, HiveSql.RULE_cte_select_cols); var _la = 0; // Token type try { this.enterOuterAlt(localctx, 1); - this.state = 2223; - this.match(HiveSqlParser.T_OPEN_P); - this.state = 2224; + this.state = 2220; + this.match(HiveSql.T_OPEN_P); + this.state = 2221; this.ident(); - this.state = 2229; + this.state = 2226; this._errHandler.sync(this); _la = this._input.LA(1); - while(_la===HiveSqlParser.T_COMMA) { - this.state = 2225; - this.match(HiveSqlParser.T_COMMA); - this.state = 2226; + while(_la===HiveSql.T_COMMA) { + this.state = 2222; + this.match(HiveSql.T_COMMA); + this.state = 2223; this.ident(); - this.state = 2231; + this.state = 2228; this._errHandler.sync(this); _la = this._input.LA(1); } - this.state = 2232; - this.match(HiveSqlParser.T_CLOSE_P); + this.state = 2229; + this.match(HiveSql.T_CLOSE_P); } catch (re) { if(re instanceof antlr4.error.RecognitionException) { localctx.exception = re; @@ -23290,7 +23330,7 @@ function Fullselect_stmtContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_fullselect_stmt; + this.ruleIndex = HiveSql.RULE_fullselect_stmt; return this; } @@ -23342,27 +23382,27 @@ Fullselect_stmtContext.prototype.accept = function(visitor) { -HiveSqlParser.Fullselect_stmtContext = Fullselect_stmtContext; +HiveSql.Fullselect_stmtContext = Fullselect_stmtContext; -HiveSqlParser.prototype.fullselect_stmt = function() { +HiveSql.prototype.fullselect_stmt = function() { var localctx = new Fullselect_stmtContext(this, this._ctx, this.state); - this.enterRule(localctx, 288, HiveSqlParser.RULE_fullselect_stmt); + this.enterRule(localctx, 288, HiveSql.RULE_fullselect_stmt); try { this.enterOuterAlt(localctx, 1); - this.state = 2234; + this.state = 2231; this.fullselect_stmt_item(); - this.state = 2240; + this.state = 2237; this._errHandler.sync(this); var _alt = this._interp.adaptivePredict(this._input,262,this._ctx) while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { if(_alt===1) { - this.state = 2235; + this.state = 2232; this.fullselect_set_clause(); - this.state = 2236; + this.state = 2233; this.fullselect_stmt_item(); } - this.state = 2242; + this.state = 2239; this._errHandler.sync(this); _alt = this._interp.adaptivePredict(this._input,262,this._ctx); } @@ -23391,7 +23431,7 @@ function Fullselect_stmt_itemContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_fullselect_stmt_item; + this.ruleIndex = HiveSql.RULE_fullselect_stmt_item; return this; } @@ -23403,7 +23443,7 @@ Fullselect_stmt_itemContext.prototype.subselect_stmt = function() { }; Fullselect_stmt_itemContext.prototype.T_OPEN_P = function() { - return this.getToken(HiveSqlParser.T_OPEN_P, 0); + return this.getToken(HiveSql.T_OPEN_P, 0); }; Fullselect_stmt_itemContext.prototype.fullselect_stmt = function() { @@ -23411,7 +23451,7 @@ Fullselect_stmt_itemContext.prototype.fullselect_stmt = function() { }; Fullselect_stmt_itemContext.prototype.T_CLOSE_P = function() { - return this.getToken(HiveSqlParser.T_CLOSE_P, 0); + return this.getToken(HiveSql.T_CLOSE_P, 0); }; Fullselect_stmt_itemContext.prototype.enterRule = function(listener) { @@ -23437,30 +23477,30 @@ Fullselect_stmt_itemContext.prototype.accept = function(visitor) { -HiveSqlParser.Fullselect_stmt_itemContext = Fullselect_stmt_itemContext; +HiveSql.Fullselect_stmt_itemContext = Fullselect_stmt_itemContext; -HiveSqlParser.prototype.fullselect_stmt_item = function() { +HiveSql.prototype.fullselect_stmt_item = function() { var localctx = new Fullselect_stmt_itemContext(this, this._ctx, this.state); - this.enterRule(localctx, 290, HiveSqlParser.RULE_fullselect_stmt_item); + this.enterRule(localctx, 290, HiveSql.RULE_fullselect_stmt_item); try { - this.state = 2248; + this.state = 2245; this._errHandler.sync(this); switch(this._input.LA(1)) { - case HiveSqlParser.T_SELECT: - case HiveSqlParser.T_SEL: + case HiveSql.T_SEL: + case HiveSql.T_SELECT: this.enterOuterAlt(localctx, 1); - this.state = 2243; + this.state = 2240; this.subselect_stmt(); break; - case HiveSqlParser.T_OPEN_P: + case HiveSql.T_OPEN_P: this.enterOuterAlt(localctx, 2); - this.state = 2244; - this.match(HiveSqlParser.T_OPEN_P); - this.state = 2245; + this.state = 2241; + this.match(HiveSql.T_OPEN_P); + this.state = 2242; this.fullselect_stmt(); - this.state = 2246; - this.match(HiveSqlParser.T_CLOSE_P); + this.state = 2243; + this.match(HiveSql.T_CLOSE_P); break; default: throw new antlr4.error.NoViableAltException(this); @@ -23489,7 +23529,7 @@ function Fullselect_set_clauseContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_fullselect_set_clause; + this.ruleIndex = HiveSql.RULE_fullselect_set_clause; return this; } @@ -23497,19 +23537,19 @@ Fullselect_set_clauseContext.prototype = Object.create(antlr4.ParserRuleContext. Fullselect_set_clauseContext.prototype.constructor = Fullselect_set_clauseContext; Fullselect_set_clauseContext.prototype.T_UNION = function() { - return this.getToken(HiveSqlParser.T_UNION, 0); + return this.getToken(HiveSql.T_UNION, 0); }; Fullselect_set_clauseContext.prototype.T_ALL = function() { - return this.getToken(HiveSqlParser.T_ALL, 0); + return this.getToken(HiveSql.T_ALL, 0); }; Fullselect_set_clauseContext.prototype.T_EXCEPT = function() { - return this.getToken(HiveSqlParser.T_EXCEPT, 0); + return this.getToken(HiveSql.T_EXCEPT, 0); }; Fullselect_set_clauseContext.prototype.T_INTERSECT = function() { - return this.getToken(HiveSqlParser.T_INTERSECT, 0); + return this.getToken(HiveSql.T_INTERSECT, 0); }; Fullselect_set_clauseContext.prototype.enterRule = function(listener) { @@ -23535,53 +23575,53 @@ Fullselect_set_clauseContext.prototype.accept = function(visitor) { -HiveSqlParser.Fullselect_set_clauseContext = Fullselect_set_clauseContext; +HiveSql.Fullselect_set_clauseContext = Fullselect_set_clauseContext; -HiveSqlParser.prototype.fullselect_set_clause = function() { +HiveSql.prototype.fullselect_set_clause = function() { var localctx = new Fullselect_set_clauseContext(this, this._ctx, this.state); - this.enterRule(localctx, 292, HiveSqlParser.RULE_fullselect_set_clause); + this.enterRule(localctx, 292, HiveSql.RULE_fullselect_set_clause); var _la = 0; // Token type try { - this.state = 2262; + this.state = 2259; this._errHandler.sync(this); switch(this._input.LA(1)) { - case HiveSqlParser.T_UNION: + case HiveSql.T_UNION: this.enterOuterAlt(localctx, 1); - this.state = 2250; - this.match(HiveSqlParser.T_UNION); - this.state = 2252; + this.state = 2247; + this.match(HiveSql.T_UNION); + this.state = 2249; this._errHandler.sync(this); _la = this._input.LA(1); - if(_la===HiveSqlParser.T_ALL) { - this.state = 2251; - this.match(HiveSqlParser.T_ALL); + if(_la===HiveSql.T_ALL) { + this.state = 2248; + this.match(HiveSql.T_ALL); } break; - case HiveSqlParser.T_EXCEPT: + case HiveSql.T_EXCEPT: this.enterOuterAlt(localctx, 2); - this.state = 2254; - this.match(HiveSqlParser.T_EXCEPT); - this.state = 2256; + this.state = 2251; + this.match(HiveSql.T_EXCEPT); + this.state = 2253; this._errHandler.sync(this); _la = this._input.LA(1); - if(_la===HiveSqlParser.T_ALL) { - this.state = 2255; - this.match(HiveSqlParser.T_ALL); + if(_la===HiveSql.T_ALL) { + this.state = 2252; + this.match(HiveSql.T_ALL); } break; - case HiveSqlParser.T_INTERSECT: + case HiveSql.T_INTERSECT: this.enterOuterAlt(localctx, 3); - this.state = 2258; - this.match(HiveSqlParser.T_INTERSECT); - this.state = 2260; + this.state = 2255; + this.match(HiveSql.T_INTERSECT); + this.state = 2257; this._errHandler.sync(this); _la = this._input.LA(1); - if(_la===HiveSqlParser.T_ALL) { - this.state = 2259; - this.match(HiveSqlParser.T_ALL); + if(_la===HiveSql.T_ALL) { + this.state = 2256; + this.match(HiveSql.T_ALL); } break; @@ -23612,7 +23652,7 @@ function Subselect_stmtContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_subselect_stmt; + this.ruleIndex = HiveSql.RULE_subselect_stmt; return this; } @@ -23624,11 +23664,11 @@ Subselect_stmtContext.prototype.select_list = function() { }; Subselect_stmtContext.prototype.T_SELECT = function() { - return this.getToken(HiveSqlParser.T_SELECT, 0); + return this.getToken(HiveSql.T_SELECT, 0); }; Subselect_stmtContext.prototype.T_SEL = function() { - return this.getToken(HiveSqlParser.T_SEL, 0); + return this.getToken(HiveSql.T_SEL, 0); }; Subselect_stmtContext.prototype.into_clause = function() { @@ -23686,83 +23726,83 @@ Subselect_stmtContext.prototype.accept = function(visitor) { -HiveSqlParser.Subselect_stmtContext = Subselect_stmtContext; +HiveSql.Subselect_stmtContext = Subselect_stmtContext; -HiveSqlParser.prototype.subselect_stmt = function() { +HiveSql.prototype.subselect_stmt = function() { var localctx = new Subselect_stmtContext(this, this._ctx, this.state); - this.enterRule(localctx, 294, HiveSqlParser.RULE_subselect_stmt); + this.enterRule(localctx, 294, HiveSql.RULE_subselect_stmt); var _la = 0; // Token type try { this.enterOuterAlt(localctx, 1); - this.state = 2264; + this.state = 2261; _la = this._input.LA(1); - if(!(_la===HiveSqlParser.T_SELECT || _la===HiveSqlParser.T_SEL)) { + if(!(_la===HiveSql.T_SEL || _la===HiveSql.T_SELECT)) { this._errHandler.recoverInline(this); } else { this._errHandler.reportMatch(this); this.consume(); } - this.state = 2265; + this.state = 2262; this.select_list(); - this.state = 2267; + this.state = 2264; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,268,this._ctx); if(la_===1) { - this.state = 2266; + this.state = 2263; this.into_clause(); + } + this.state = 2267; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,269,this._ctx); + if(la_===1) { + this.state = 2266; + this.from_clause(); + } this.state = 2270; this._errHandler.sync(this); - var la_ = this._interp.adaptivePredict(this._input,269,this._ctx); + var la_ = this._interp.adaptivePredict(this._input,270,this._ctx); if(la_===1) { this.state = 2269; - this.from_clause(); + this.where_clause(); } this.state = 2273; this._errHandler.sync(this); - var la_ = this._interp.adaptivePredict(this._input,270,this._ctx); - if(la_===1) { - this.state = 2272; - this.where_clause(); - - } - this.state = 2276; - this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,271,this._ctx); if(la_===1) { - this.state = 2275; + this.state = 2272; this.group_by_clause(); + } + this.state = 2277; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,272,this._ctx); + if(la_===1) { + this.state = 2275; + this.having_clause(); + + } else if(la_===2) { + this.state = 2276; + this.qualify_clause(); + } this.state = 2280; this._errHandler.sync(this); - var la_ = this._interp.adaptivePredict(this._input,272,this._ctx); + var la_ = this._interp.adaptivePredict(this._input,273,this._ctx); if(la_===1) { - this.state = 2278; - this.having_clause(); - - } else if(la_===2) { this.state = 2279; - this.qualify_clause(); + this.order_by_clause(); } this.state = 2283; this._errHandler.sync(this); - var la_ = this._interp.adaptivePredict(this._input,273,this._ctx); - if(la_===1) { - this.state = 2282; - this.order_by_clause(); - - } - this.state = 2286; - this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,274,this._ctx); if(la_===1) { - this.state = 2285; + this.state = 2282; this.select_options(); } @@ -23790,7 +23830,7 @@ function Select_listContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_select_list; + this.ruleIndex = HiveSql.RULE_select_list; return this; } @@ -23821,9 +23861,9 @@ Select_listContext.prototype.T_COMMA = function(i) { i = null; } if(i===null) { - return this.getTokens(HiveSqlParser.T_COMMA); + return this.getTokens(HiveSql.T_COMMA); } else { - return this.getToken(HiveSqlParser.T_COMMA, i); + return this.getToken(HiveSql.T_COMMA, i); } }; @@ -23851,43 +23891,43 @@ Select_listContext.prototype.accept = function(visitor) { -HiveSqlParser.Select_listContext = Select_listContext; +HiveSql.Select_listContext = Select_listContext; -HiveSqlParser.prototype.select_list = function() { +HiveSql.prototype.select_list = function() { var localctx = new Select_listContext(this, this._ctx, this.state); - this.enterRule(localctx, 296, HiveSqlParser.RULE_select_list); + this.enterRule(localctx, 296, HiveSql.RULE_select_list); try { this.enterOuterAlt(localctx, 1); - this.state = 2289; + this.state = 2286; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,275,this._ctx); if(la_===1) { - this.state = 2288; + this.state = 2285; this.select_list_set(); } - this.state = 2292; + this.state = 2289; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,276,this._ctx); if(la_===1) { - this.state = 2291; + this.state = 2288; this.select_list_limit(); } - this.state = 2294; + this.state = 2291; this.select_list_item(); - this.state = 2299; + this.state = 2296; this._errHandler.sync(this); var _alt = this._interp.adaptivePredict(this._input,277,this._ctx) while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { if(_alt===1) { - this.state = 2295; - this.match(HiveSqlParser.T_COMMA); - this.state = 2296; + this.state = 2292; + this.match(HiveSql.T_COMMA); + this.state = 2293; this.select_list_item(); } - this.state = 2301; + this.state = 2298; this._errHandler.sync(this); _alt = this._interp.adaptivePredict(this._input,277,this._ctx); } @@ -23916,7 +23956,7 @@ function Select_list_setContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_select_list_set; + this.ruleIndex = HiveSql.RULE_select_list_set; return this; } @@ -23924,11 +23964,11 @@ Select_list_setContext.prototype = Object.create(antlr4.ParserRuleContext.protot Select_list_setContext.prototype.constructor = Select_list_setContext; Select_list_setContext.prototype.T_ALL = function() { - return this.getToken(HiveSqlParser.T_ALL, 0); + return this.getToken(HiveSql.T_ALL, 0); }; Select_list_setContext.prototype.T_DISTINCT = function() { - return this.getToken(HiveSqlParser.T_DISTINCT, 0); + return this.getToken(HiveSql.T_DISTINCT, 0); }; Select_list_setContext.prototype.enterRule = function(listener) { @@ -23954,18 +23994,18 @@ Select_list_setContext.prototype.accept = function(visitor) { -HiveSqlParser.Select_list_setContext = Select_list_setContext; +HiveSql.Select_list_setContext = Select_list_setContext; -HiveSqlParser.prototype.select_list_set = function() { +HiveSql.prototype.select_list_set = function() { var localctx = new Select_list_setContext(this, this._ctx, this.state); - this.enterRule(localctx, 298, HiveSqlParser.RULE_select_list_set); + this.enterRule(localctx, 298, HiveSql.RULE_select_list_set); var _la = 0; // Token type try { this.enterOuterAlt(localctx, 1); - this.state = 2302; + this.state = 2299; _la = this._input.LA(1); - if(!(_la===HiveSqlParser.T_ALL || _la===HiveSqlParser.T_DISTINCT)) { + if(!(_la===HiveSql.T_ALL || _la===HiveSql.T_DISTINCT)) { this._errHandler.recoverInline(this); } else { @@ -23996,7 +24036,7 @@ function Select_list_limitContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_select_list_limit; + this.ruleIndex = HiveSql.RULE_select_list_limit; return this; } @@ -24004,7 +24044,7 @@ Select_list_limitContext.prototype = Object.create(antlr4.ParserRuleContext.prot Select_list_limitContext.prototype.constructor = Select_list_limitContext; Select_list_limitContext.prototype.T_TOP = function() { - return this.getToken(HiveSqlParser.T_TOP, 0); + return this.getToken(HiveSql.T_TOP, 0); }; Select_list_limitContext.prototype.expr = function() { @@ -24034,17 +24074,17 @@ Select_list_limitContext.prototype.accept = function(visitor) { -HiveSqlParser.Select_list_limitContext = Select_list_limitContext; +HiveSql.Select_list_limitContext = Select_list_limitContext; -HiveSqlParser.prototype.select_list_limit = function() { +HiveSql.prototype.select_list_limit = function() { var localctx = new Select_list_limitContext(this, this._ctx, this.state); - this.enterRule(localctx, 300, HiveSqlParser.RULE_select_list_limit); + this.enterRule(localctx, 300, HiveSql.RULE_select_list_limit); try { this.enterOuterAlt(localctx, 1); - this.state = 2304; - this.match(HiveSqlParser.T_TOP); - this.state = 2305; + this.state = 2301; + this.match(HiveSql.T_TOP); + this.state = 2302; this.expr(0); } catch (re) { if(re instanceof antlr4.error.RecognitionException) { @@ -24070,7 +24110,7 @@ function Select_list_itemContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_select_list_item; + this.ruleIndex = HiveSql.RULE_select_list_item; return this; } @@ -24090,7 +24130,7 @@ Select_list_itemContext.prototype.ident = function() { }; Select_list_itemContext.prototype.T_EQUAL = function() { - return this.getToken(HiveSqlParser.T_EQUAL, 0); + return this.getToken(HiveSql.T_EQUAL, 0); }; Select_list_itemContext.prototype.select_list_alias = function() { @@ -24120,43 +24160,43 @@ Select_list_itemContext.prototype.accept = function(visitor) { -HiveSqlParser.Select_list_itemContext = Select_list_itemContext; +HiveSql.Select_list_itemContext = Select_list_itemContext; -HiveSqlParser.prototype.select_list_item = function() { +HiveSql.prototype.select_list_item = function() { var localctx = new Select_list_itemContext(this, this._ctx, this.state); - this.enterRule(localctx, 302, HiveSqlParser.RULE_select_list_item); + this.enterRule(localctx, 302, HiveSql.RULE_select_list_item); try { this.enterOuterAlt(localctx, 1); - this.state = 2317; + this.state = 2314; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,280,this._ctx); switch(la_) { case 1: - this.state = 2310; + this.state = 2307; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,278,this._ctx); if(la_===1) { - this.state = 2307; + this.state = 2304; this.ident(); - this.state = 2308; - this.match(HiveSqlParser.T_EQUAL); + this.state = 2305; + this.match(HiveSql.T_EQUAL); } - this.state = 2312; + this.state = 2309; this.expr(0); - this.state = 2314; + this.state = 2311; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,279,this._ctx); if(la_===1) { - this.state = 2313; + this.state = 2310; this.select_list_alias(); } break; case 2: - this.state = 2316; + this.state = 2313; this.select_list_asterisk(); break; @@ -24185,7 +24225,7 @@ function Select_list_aliasContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_select_list_alias; + this.ruleIndex = HiveSql.RULE_select_list_alias; return this; } @@ -24197,23 +24237,23 @@ Select_list_aliasContext.prototype.ident = function() { }; Select_list_aliasContext.prototype.T_AS = function() { - return this.getToken(HiveSqlParser.T_AS, 0); + return this.getToken(HiveSql.T_AS, 0); }; Select_list_aliasContext.prototype.T_OPEN_P = function() { - return this.getToken(HiveSqlParser.T_OPEN_P, 0); + return this.getToken(HiveSql.T_OPEN_P, 0); }; Select_list_aliasContext.prototype.T_TITLE = function() { - return this.getToken(HiveSqlParser.T_TITLE, 0); + return this.getToken(HiveSql.T_TITLE, 0); }; Select_list_aliasContext.prototype.L_S_STRING = function() { - return this.getToken(HiveSqlParser.L_S_STRING, 0); + return this.getToken(HiveSql.L_S_STRING, 0); }; Select_list_aliasContext.prototype.T_CLOSE_P = function() { - return this.getToken(HiveSqlParser.T_CLOSE_P, 0); + return this.getToken(HiveSql.T_CLOSE_P, 0); }; Select_list_aliasContext.prototype.enterRule = function(listener) { @@ -24239,45 +24279,45 @@ Select_list_aliasContext.prototype.accept = function(visitor) { -HiveSqlParser.Select_list_aliasContext = Select_list_aliasContext; +HiveSql.Select_list_aliasContext = Select_list_aliasContext; -HiveSqlParser.prototype.select_list_alias = function() { +HiveSql.prototype.select_list_alias = function() { var localctx = new Select_list_aliasContext(this, this._ctx, this.state); - this.enterRule(localctx, 304, HiveSqlParser.RULE_select_list_alias); + this.enterRule(localctx, 304, HiveSql.RULE_select_list_alias); try { - this.state = 2328; + this.state = 2325; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,282,this._ctx); switch(la_) { case 1: this.enterOuterAlt(localctx, 1); - this.state = 2319; - if (!( !this._input.LT(1).getText().equalsIgnoreCase("INTO") && !this._input.LT(1).getText().equalsIgnoreCase("FROM"))) { - throw new antlr4.error.FailedPredicateException(this, "!this._input.LT(1).getText().equalsIgnoreCase(\"INTO\") && !this._input.LT(1).getText().equalsIgnoreCase(\"FROM\")"); + this.state = 2316; + if (!( this._input.LT(1).text.toUpperCase() !== "INTO" && this._input.LT(1).text.toUpperCase() !== "FROM")) { + throw new antlr4.error.FailedPredicateException(this, "this._input.LT(1).text.toUpperCase() !== \"INTO\" && this._input.LT(1).text.toUpperCase() !== \"FROM\""); } - this.state = 2321; + this.state = 2318; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,281,this._ctx); if(la_===1) { - this.state = 2320; - this.match(HiveSqlParser.T_AS); + this.state = 2317; + this.match(HiveSql.T_AS); } - this.state = 2323; + this.state = 2320; this.ident(); break; case 2: this.enterOuterAlt(localctx, 2); + this.state = 2321; + this.match(HiveSql.T_OPEN_P); + this.state = 2322; + this.match(HiveSql.T_TITLE); + this.state = 2323; + this.match(HiveSql.L_S_STRING); this.state = 2324; - this.match(HiveSqlParser.T_OPEN_P); - this.state = 2325; - this.match(HiveSqlParser.T_TITLE); - this.state = 2326; - this.match(HiveSqlParser.L_S_STRING); - this.state = 2327; - this.match(HiveSqlParser.T_CLOSE_P); + this.match(HiveSql.T_CLOSE_P); break; } @@ -24305,15 +24345,23 @@ function Select_list_asteriskContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_select_list_asterisk; + this.ruleIndex = HiveSql.RULE_select_list_asterisk; return this; } Select_list_asteriskContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); Select_list_asteriskContext.prototype.constructor = Select_list_asteriskContext; +Select_list_asteriskContext.prototype.T_MUL = function() { + return this.getToken(HiveSql.T_MUL, 0); +}; + Select_list_asteriskContext.prototype.L_ID = function() { - return this.getToken(HiveSqlParser.L_ID, 0); + return this.getToken(HiveSql.L_ID, 0); +}; + +Select_list_asteriskContext.prototype.T_DOT = function() { + return this.getToken(HiveSql.T_DOT, 0); }; Select_list_asteriskContext.prototype.enterRule = function(listener) { @@ -24339,27 +24387,27 @@ Select_list_asteriskContext.prototype.accept = function(visitor) { -HiveSqlParser.Select_list_asteriskContext = Select_list_asteriskContext; +HiveSql.Select_list_asteriskContext = Select_list_asteriskContext; -HiveSqlParser.prototype.select_list_asterisk = function() { +HiveSql.prototype.select_list_asterisk = function() { var localctx = new Select_list_asteriskContext(this, this._ctx, this.state); - this.enterRule(localctx, 306, HiveSqlParser.RULE_select_list_asterisk); + this.enterRule(localctx, 306, HiveSql.RULE_select_list_asterisk); var _la = 0; // Token type try { this.enterOuterAlt(localctx, 1); - this.state = 2332; + this.state = 2329; this._errHandler.sync(this); _la = this._input.LA(1); - if(_la===HiveSqlParser.L_ID) { - this.state = 2330; - this.match(HiveSqlParser.L_ID); - this.state = 2331; - this.match(HiveSqlParser.T__4); + if(_la===HiveSql.L_ID) { + this.state = 2327; + this.match(HiveSql.L_ID); + this.state = 2328; + this.match(HiveSql.T_DOT); } - this.state = 2334; - this.match(HiveSqlParser.T__5); + this.state = 2331; + this.match(HiveSql.T_MUL); } catch (re) { if(re instanceof antlr4.error.RecognitionException) { localctx.exception = re; @@ -24384,7 +24432,7 @@ function Into_clauseContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_into_clause; + this.ruleIndex = HiveSql.RULE_into_clause; return this; } @@ -24392,7 +24440,7 @@ Into_clauseContext.prototype = Object.create(antlr4.ParserRuleContext.prototype) Into_clauseContext.prototype.constructor = Into_clauseContext; Into_clauseContext.prototype.T_INTO = function() { - return this.getToken(HiveSqlParser.T_INTO, 0); + return this.getToken(HiveSql.T_INTO, 0); }; Into_clauseContext.prototype.ident = function(i) { @@ -24411,9 +24459,9 @@ Into_clauseContext.prototype.T_COMMA = function(i) { i = null; } if(i===null) { - return this.getTokens(HiveSqlParser.T_COMMA); + return this.getTokens(HiveSql.T_COMMA); } else { - return this.getToken(HiveSqlParser.T_COMMA, i); + return this.getToken(HiveSql.T_COMMA, i); } }; @@ -24441,29 +24489,29 @@ Into_clauseContext.prototype.accept = function(visitor) { -HiveSqlParser.Into_clauseContext = Into_clauseContext; +HiveSql.Into_clauseContext = Into_clauseContext; -HiveSqlParser.prototype.into_clause = function() { +HiveSql.prototype.into_clause = function() { var localctx = new Into_clauseContext(this, this._ctx, this.state); - this.enterRule(localctx, 308, HiveSqlParser.RULE_into_clause); + this.enterRule(localctx, 308, HiveSql.RULE_into_clause); try { this.enterOuterAlt(localctx, 1); - this.state = 2336; - this.match(HiveSqlParser.T_INTO); - this.state = 2337; + this.state = 2333; + this.match(HiveSql.T_INTO); + this.state = 2334; this.ident(); - this.state = 2342; + this.state = 2339; this._errHandler.sync(this); var _alt = this._interp.adaptivePredict(this._input,284,this._ctx) while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { if(_alt===1) { - this.state = 2338; - this.match(HiveSqlParser.T_COMMA); - this.state = 2339; + this.state = 2335; + this.match(HiveSql.T_COMMA); + this.state = 2336; this.ident(); } - this.state = 2344; + this.state = 2341; this._errHandler.sync(this); _alt = this._interp.adaptivePredict(this._input,284,this._ctx); } @@ -24492,7 +24540,7 @@ function From_clauseContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_from_clause; + this.ruleIndex = HiveSql.RULE_from_clause; return this; } @@ -24500,7 +24548,7 @@ From_clauseContext.prototype = Object.create(antlr4.ParserRuleContext.prototype) From_clauseContext.prototype.constructor = From_clauseContext; From_clauseContext.prototype.T_FROM = function() { - return this.getToken(HiveSqlParser.T_FROM, 0); + return this.getToken(HiveSql.T_FROM, 0); }; From_clauseContext.prototype.from_table_clause = function() { @@ -24541,27 +24589,27 @@ From_clauseContext.prototype.accept = function(visitor) { -HiveSqlParser.From_clauseContext = From_clauseContext; +HiveSql.From_clauseContext = From_clauseContext; -HiveSqlParser.prototype.from_clause = function() { +HiveSql.prototype.from_clause = function() { var localctx = new From_clauseContext(this, this._ctx, this.state); - this.enterRule(localctx, 310, HiveSqlParser.RULE_from_clause); + this.enterRule(localctx, 310, HiveSql.RULE_from_clause); try { this.enterOuterAlt(localctx, 1); - this.state = 2345; - this.match(HiveSqlParser.T_FROM); - this.state = 2346; + this.state = 2342; + this.match(HiveSql.T_FROM); + this.state = 2343; this.from_table_clause(); - this.state = 2350; + this.state = 2347; this._errHandler.sync(this); var _alt = this._interp.adaptivePredict(this._input,285,this._ctx) while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { if(_alt===1) { - this.state = 2347; + this.state = 2344; this.from_join_clause(); } - this.state = 2352; + this.state = 2349; this._errHandler.sync(this); _alt = this._interp.adaptivePredict(this._input,285,this._ctx); } @@ -24590,7 +24638,7 @@ function From_table_clauseContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_from_table_clause; + this.ruleIndex = HiveSql.RULE_from_table_clause; return this; } @@ -24632,32 +24680,32 @@ From_table_clauseContext.prototype.accept = function(visitor) { -HiveSqlParser.From_table_clauseContext = From_table_clauseContext; +HiveSql.From_table_clauseContext = From_table_clauseContext; -HiveSqlParser.prototype.from_table_clause = function() { +HiveSql.prototype.from_table_clause = function() { var localctx = new From_table_clauseContext(this, this._ctx, this.state); - this.enterRule(localctx, 312, HiveSqlParser.RULE_from_table_clause); + this.enterRule(localctx, 312, HiveSql.RULE_from_table_clause); try { - this.state = 2356; + this.state = 2353; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,286,this._ctx); switch(la_) { case 1: this.enterOuterAlt(localctx, 1); - this.state = 2353; + this.state = 2350; this.from_table_name_clause(); break; case 2: this.enterOuterAlt(localctx, 2); - this.state = 2354; + this.state = 2351; this.from_subselect_clause(); break; case 3: this.enterOuterAlt(localctx, 3); - this.state = 2355; + this.state = 2352; this.from_table_values_clause(); break; @@ -24686,7 +24734,7 @@ function From_table_name_clauseContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_from_table_name_clause; + this.ruleIndex = HiveSql.RULE_from_table_name_clause; return this; } @@ -24724,21 +24772,21 @@ From_table_name_clauseContext.prototype.accept = function(visitor) { -HiveSqlParser.From_table_name_clauseContext = From_table_name_clauseContext; +HiveSql.From_table_name_clauseContext = From_table_name_clauseContext; -HiveSqlParser.prototype.from_table_name_clause = function() { +HiveSql.prototype.from_table_name_clause = function() { var localctx = new From_table_name_clauseContext(this, this._ctx, this.state); - this.enterRule(localctx, 314, HiveSqlParser.RULE_from_table_name_clause); + this.enterRule(localctx, 314, HiveSql.RULE_from_table_name_clause); try { this.enterOuterAlt(localctx, 1); - this.state = 2358; + this.state = 2355; this.table_name(); - this.state = 2360; + this.state = 2357; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,287,this._ctx); if(la_===1) { - this.state = 2359; + this.state = 2356; this.from_alias_clause(); } @@ -24766,7 +24814,7 @@ function From_subselect_clauseContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_from_subselect_clause; + this.ruleIndex = HiveSql.RULE_from_subselect_clause; return this; } @@ -24774,7 +24822,7 @@ From_subselect_clauseContext.prototype = Object.create(antlr4.ParserRuleContext. From_subselect_clauseContext.prototype.constructor = From_subselect_clauseContext; From_subselect_clauseContext.prototype.T_OPEN_P = function() { - return this.getToken(HiveSqlParser.T_OPEN_P, 0); + return this.getToken(HiveSql.T_OPEN_P, 0); }; From_subselect_clauseContext.prototype.select_stmt = function() { @@ -24782,7 +24830,7 @@ From_subselect_clauseContext.prototype.select_stmt = function() { }; From_subselect_clauseContext.prototype.T_CLOSE_P = function() { - return this.getToken(HiveSqlParser.T_CLOSE_P, 0); + return this.getToken(HiveSql.T_CLOSE_P, 0); }; From_subselect_clauseContext.prototype.from_alias_clause = function() { @@ -24812,25 +24860,25 @@ From_subselect_clauseContext.prototype.accept = function(visitor) { -HiveSqlParser.From_subselect_clauseContext = From_subselect_clauseContext; +HiveSql.From_subselect_clauseContext = From_subselect_clauseContext; -HiveSqlParser.prototype.from_subselect_clause = function() { +HiveSql.prototype.from_subselect_clause = function() { var localctx = new From_subselect_clauseContext(this, this._ctx, this.state); - this.enterRule(localctx, 316, HiveSqlParser.RULE_from_subselect_clause); + this.enterRule(localctx, 316, HiveSql.RULE_from_subselect_clause); try { this.enterOuterAlt(localctx, 1); - this.state = 2362; - this.match(HiveSqlParser.T_OPEN_P); - this.state = 2363; + this.state = 2359; + this.match(HiveSql.T_OPEN_P); + this.state = 2360; this.select_stmt(); - this.state = 2364; - this.match(HiveSqlParser.T_CLOSE_P); - this.state = 2366; + this.state = 2361; + this.match(HiveSql.T_CLOSE_P); + this.state = 2363; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,288,this._ctx); if(la_===1) { - this.state = 2365; + this.state = 2362; this.from_alias_clause(); } @@ -24858,7 +24906,7 @@ function From_join_clauseContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_from_join_clause; + this.ruleIndex = HiveSql.RULE_from_join_clause; return this; } @@ -24866,7 +24914,7 @@ From_join_clauseContext.prototype = Object.create(antlr4.ParserRuleContext.proto From_join_clauseContext.prototype.constructor = From_join_clauseContext; From_join_clauseContext.prototype.T_COMMA = function() { - return this.getToken(HiveSqlParser.T_COMMA, 0); + return this.getToken(HiveSql.T_COMMA, 0); }; From_join_clauseContext.prototype.from_table_clause = function() { @@ -24878,7 +24926,7 @@ From_join_clauseContext.prototype.from_join_type_clause = function() { }; From_join_clauseContext.prototype.T_ON = function() { - return this.getToken(HiveSqlParser.T_ON, 0); + return this.getToken(HiveSql.T_ON, 0); }; From_join_clauseContext.prototype.bool_expr = function() { @@ -24908,36 +24956,36 @@ From_join_clauseContext.prototype.accept = function(visitor) { -HiveSqlParser.From_join_clauseContext = From_join_clauseContext; +HiveSql.From_join_clauseContext = From_join_clauseContext; -HiveSqlParser.prototype.from_join_clause = function() { +HiveSql.prototype.from_join_clause = function() { var localctx = new From_join_clauseContext(this, this._ctx, this.state); - this.enterRule(localctx, 318, HiveSqlParser.RULE_from_join_clause); + this.enterRule(localctx, 318, HiveSql.RULE_from_join_clause); try { - this.state = 2375; + this.state = 2372; this._errHandler.sync(this); switch(this._input.LA(1)) { - case HiveSqlParser.T_COMMA: + case HiveSql.T_COMMA: this.enterOuterAlt(localctx, 1); - this.state = 2368; - this.match(HiveSqlParser.T_COMMA); - this.state = 2369; + this.state = 2365; + this.match(HiveSql.T_COMMA); + this.state = 2366; this.from_table_clause(); break; - case HiveSqlParser.T_INNER: - case HiveSqlParser.T_JOIN: - case HiveSqlParser.T_LEFT: - case HiveSqlParser.T_RIGHT: - case HiveSqlParser.T_FULL: + case HiveSql.T_FULL: + case HiveSql.T_INNER: + case HiveSql.T_JOIN: + case HiveSql.T_LEFT: + case HiveSql.T_RIGHT: this.enterOuterAlt(localctx, 2); - this.state = 2370; + this.state = 2367; this.from_join_type_clause(); - this.state = 2371; + this.state = 2368; this.from_table_clause(); - this.state = 2372; - this.match(HiveSqlParser.T_ON); - this.state = 2373; + this.state = 2369; + this.match(HiveSql.T_ON); + this.state = 2370; this.bool_expr(0); break; default: @@ -24967,7 +25015,7 @@ function From_join_type_clauseContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_from_join_type_clause; + this.ruleIndex = HiveSql.RULE_from_join_type_clause; return this; } @@ -24975,27 +25023,27 @@ From_join_type_clauseContext.prototype = Object.create(antlr4.ParserRuleContext. From_join_type_clauseContext.prototype.constructor = From_join_type_clauseContext; From_join_type_clauseContext.prototype.T_JOIN = function() { - return this.getToken(HiveSqlParser.T_JOIN, 0); + return this.getToken(HiveSql.T_JOIN, 0); }; From_join_type_clauseContext.prototype.T_INNER = function() { - return this.getToken(HiveSqlParser.T_INNER, 0); + return this.getToken(HiveSql.T_INNER, 0); }; From_join_type_clauseContext.prototype.T_LEFT = function() { - return this.getToken(HiveSqlParser.T_LEFT, 0); + return this.getToken(HiveSql.T_LEFT, 0); }; From_join_type_clauseContext.prototype.T_RIGHT = function() { - return this.getToken(HiveSqlParser.T_RIGHT, 0); + return this.getToken(HiveSql.T_RIGHT, 0); }; From_join_type_clauseContext.prototype.T_FULL = function() { - return this.getToken(HiveSqlParser.T_FULL, 0); + return this.getToken(HiveSql.T_FULL, 0); }; From_join_type_clauseContext.prototype.T_OUTER = function() { - return this.getToken(HiveSqlParser.T_OUTER, 0); + return this.getToken(HiveSql.T_OUTER, 0); }; From_join_type_clauseContext.prototype.enterRule = function(listener) { @@ -25021,54 +25069,54 @@ From_join_type_clauseContext.prototype.accept = function(visitor) { -HiveSqlParser.From_join_type_clauseContext = From_join_type_clauseContext; +HiveSql.From_join_type_clauseContext = From_join_type_clauseContext; -HiveSqlParser.prototype.from_join_type_clause = function() { +HiveSql.prototype.from_join_type_clause = function() { var localctx = new From_join_type_clauseContext(this, this._ctx, this.state); - this.enterRule(localctx, 320, HiveSqlParser.RULE_from_join_type_clause); + this.enterRule(localctx, 320, HiveSql.RULE_from_join_type_clause); var _la = 0; // Token type try { - this.state = 2386; + this.state = 2383; this._errHandler.sync(this); switch(this._input.LA(1)) { - case HiveSqlParser.T_INNER: - case HiveSqlParser.T_JOIN: + case HiveSql.T_INNER: + case HiveSql.T_JOIN: this.enterOuterAlt(localctx, 1); - this.state = 2378; + this.state = 2375; this._errHandler.sync(this); _la = this._input.LA(1); - if(_la===HiveSqlParser.T_INNER) { - this.state = 2377; - this.match(HiveSqlParser.T_INNER); + if(_la===HiveSql.T_INNER) { + this.state = 2374; + this.match(HiveSql.T_INNER); } - this.state = 2380; - this.match(HiveSqlParser.T_JOIN); + this.state = 2377; + this.match(HiveSql.T_JOIN); break; - case HiveSqlParser.T_LEFT: - case HiveSqlParser.T_RIGHT: - case HiveSqlParser.T_FULL: + case HiveSql.T_FULL: + case HiveSql.T_LEFT: + case HiveSql.T_RIGHT: this.enterOuterAlt(localctx, 2); - this.state = 2381; + this.state = 2378; _la = this._input.LA(1); - if(!(((((_la - 283)) & ~0x1f) == 0 && ((1 << (_la - 283)) & ((1 << (HiveSqlParser.T_LEFT - 283)) | (1 << (HiveSqlParser.T_RIGHT - 283)) | (1 << (HiveSqlParser.T_FULL - 283)))) !== 0))) { + if(!(_la===HiveSql.T_FULL || _la===HiveSql.T_LEFT || _la===HiveSql.T_RIGHT)) { this._errHandler.recoverInline(this); } else { this._errHandler.reportMatch(this); this.consume(); } - this.state = 2383; + this.state = 2380; this._errHandler.sync(this); _la = this._input.LA(1); - if(_la===HiveSqlParser.T_OUTER) { - this.state = 2382; - this.match(HiveSqlParser.T_OUTER); + if(_la===HiveSql.T_OUTER) { + this.state = 2379; + this.match(HiveSql.T_OUTER); } - this.state = 2385; - this.match(HiveSqlParser.T_JOIN); + this.state = 2382; + this.match(HiveSql.T_JOIN); break; default: throw new antlr4.error.NoViableAltException(this); @@ -25097,7 +25145,7 @@ function From_table_values_clauseContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_from_table_values_clause; + this.ruleIndex = HiveSql.RULE_from_table_values_clause; return this; } @@ -25105,15 +25153,15 @@ From_table_values_clauseContext.prototype = Object.create(antlr4.ParserRuleConte From_table_values_clauseContext.prototype.constructor = From_table_values_clauseContext; From_table_values_clauseContext.prototype.T_TABLE = function() { - return this.getToken(HiveSqlParser.T_TABLE, 0); + return this.getToken(HiveSql.T_TABLE, 0); }; From_table_values_clauseContext.prototype.T_OPEN_P = function() { - return this.getToken(HiveSqlParser.T_OPEN_P, 0); + return this.getToken(HiveSql.T_OPEN_P, 0); }; From_table_values_clauseContext.prototype.T_VALUES = function() { - return this.getToken(HiveSqlParser.T_VALUES, 0); + return this.getToken(HiveSql.T_VALUES, 0); }; From_table_values_clauseContext.prototype.from_table_values_row = function(i) { @@ -25128,7 +25176,7 @@ From_table_values_clauseContext.prototype.from_table_values_row = function(i) { }; From_table_values_clauseContext.prototype.T_CLOSE_P = function() { - return this.getToken(HiveSqlParser.T_CLOSE_P, 0); + return this.getToken(HiveSql.T_CLOSE_P, 0); }; From_table_values_clauseContext.prototype.T_COMMA = function(i) { @@ -25136,9 +25184,9 @@ From_table_values_clauseContext.prototype.T_COMMA = function(i) { i = null; } if(i===null) { - return this.getTokens(HiveSqlParser.T_COMMA); + return this.getTokens(HiveSql.T_COMMA); } else { - return this.getToken(HiveSqlParser.T_COMMA, i); + return this.getToken(HiveSql.T_COMMA, i); } }; @@ -25170,42 +25218,42 @@ From_table_values_clauseContext.prototype.accept = function(visitor) { -HiveSqlParser.From_table_values_clauseContext = From_table_values_clauseContext; +HiveSql.From_table_values_clauseContext = From_table_values_clauseContext; -HiveSqlParser.prototype.from_table_values_clause = function() { +HiveSql.prototype.from_table_values_clause = function() { var localctx = new From_table_values_clauseContext(this, this._ctx, this.state); - this.enterRule(localctx, 322, HiveSqlParser.RULE_from_table_values_clause); + this.enterRule(localctx, 322, HiveSql.RULE_from_table_values_clause); var _la = 0; // Token type try { this.enterOuterAlt(localctx, 1); + this.state = 2385; + this.match(HiveSql.T_TABLE); + this.state = 2386; + this.match(HiveSql.T_OPEN_P); + this.state = 2387; + this.match(HiveSql.T_VALUES); this.state = 2388; - this.match(HiveSqlParser.T_TABLE); - this.state = 2389; - this.match(HiveSqlParser.T_OPEN_P); - this.state = 2390; - this.match(HiveSqlParser.T_VALUES); - this.state = 2391; this.from_table_values_row(); - this.state = 2396; + this.state = 2393; this._errHandler.sync(this); _la = this._input.LA(1); - while(_la===HiveSqlParser.T_COMMA) { - this.state = 2392; - this.match(HiveSqlParser.T_COMMA); - this.state = 2393; + while(_la===HiveSql.T_COMMA) { + this.state = 2389; + this.match(HiveSql.T_COMMA); + this.state = 2390; this.from_table_values_row(); - this.state = 2398; + this.state = 2395; this._errHandler.sync(this); _la = this._input.LA(1); } - this.state = 2399; - this.match(HiveSqlParser.T_CLOSE_P); - this.state = 2401; + this.state = 2396; + this.match(HiveSql.T_CLOSE_P); + this.state = 2398; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,294,this._ctx); if(la_===1) { - this.state = 2400; + this.state = 2397; this.from_alias_clause(); } @@ -25233,7 +25281,7 @@ function From_table_values_rowContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_from_table_values_row; + this.ruleIndex = HiveSql.RULE_from_table_values_row; return this; } @@ -25252,11 +25300,11 @@ From_table_values_rowContext.prototype.expr = function(i) { }; From_table_values_rowContext.prototype.T_OPEN_P = function() { - return this.getToken(HiveSqlParser.T_OPEN_P, 0); + return this.getToken(HiveSql.T_OPEN_P, 0); }; From_table_values_rowContext.prototype.T_CLOSE_P = function() { - return this.getToken(HiveSqlParser.T_CLOSE_P, 0); + return this.getToken(HiveSql.T_CLOSE_P, 0); }; From_table_values_rowContext.prototype.T_COMMA = function(i) { @@ -25264,9 +25312,9 @@ From_table_values_rowContext.prototype.T_COMMA = function(i) { i = null; } if(i===null) { - return this.getTokens(HiveSqlParser.T_COMMA); + return this.getTokens(HiveSql.T_COMMA); } else { - return this.getToken(HiveSqlParser.T_COMMA, i); + return this.getToken(HiveSql.T_COMMA, i); } }; @@ -25294,44 +25342,44 @@ From_table_values_rowContext.prototype.accept = function(visitor) { -HiveSqlParser.From_table_values_rowContext = From_table_values_rowContext; +HiveSql.From_table_values_rowContext = From_table_values_rowContext; -HiveSqlParser.prototype.from_table_values_row = function() { +HiveSql.prototype.from_table_values_row = function() { var localctx = new From_table_values_rowContext(this, this._ctx, this.state); - this.enterRule(localctx, 324, HiveSqlParser.RULE_from_table_values_row); + this.enterRule(localctx, 324, HiveSql.RULE_from_table_values_row); var _la = 0; // Token type try { - this.state = 2415; + this.state = 2412; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,296,this._ctx); switch(la_) { case 1: this.enterOuterAlt(localctx, 1); - this.state = 2403; + this.state = 2400; this.expr(0); break; case 2: this.enterOuterAlt(localctx, 2); - this.state = 2404; - this.match(HiveSqlParser.T_OPEN_P); - this.state = 2405; + this.state = 2401; + this.match(HiveSql.T_OPEN_P); + this.state = 2402; this.expr(0); - this.state = 2410; + this.state = 2407; this._errHandler.sync(this); _la = this._input.LA(1); - while(_la===HiveSqlParser.T_COMMA) { - this.state = 2406; - this.match(HiveSqlParser.T_COMMA); - this.state = 2407; + while(_la===HiveSql.T_COMMA) { + this.state = 2403; + this.match(HiveSql.T_COMMA); + this.state = 2404; this.expr(0); - this.state = 2412; + this.state = 2409; this._errHandler.sync(this); _la = this._input.LA(1); } - this.state = 2413; - this.match(HiveSqlParser.T_CLOSE_P); + this.state = 2410; + this.match(HiveSql.T_CLOSE_P); break; } @@ -25359,7 +25407,7 @@ function From_alias_clauseContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_from_alias_clause; + this.ruleIndex = HiveSql.RULE_from_alias_clause; return this; } @@ -25371,11 +25419,11 @@ From_alias_clauseContext.prototype.ident = function() { }; From_alias_clauseContext.prototype.T_AS = function() { - return this.getToken(HiveSqlParser.T_AS, 0); + return this.getToken(HiveSql.T_AS, 0); }; From_alias_clauseContext.prototype.T_OPEN_P = function() { - return this.getToken(HiveSqlParser.T_OPEN_P, 0); + return this.getToken(HiveSql.T_OPEN_P, 0); }; From_alias_clauseContext.prototype.L_ID = function(i) { @@ -25383,15 +25431,15 @@ From_alias_clauseContext.prototype.L_ID = function(i) { i = null; } if(i===null) { - return this.getTokens(HiveSqlParser.L_ID); + return this.getTokens(HiveSql.L_ID); } else { - return this.getToken(HiveSqlParser.L_ID, i); + return this.getToken(HiveSql.L_ID, i); } }; From_alias_clauseContext.prototype.T_CLOSE_P = function() { - return this.getToken(HiveSqlParser.T_CLOSE_P, 0); + return this.getToken(HiveSql.T_CLOSE_P, 0); }; From_alias_clauseContext.prototype.T_COMMA = function(i) { @@ -25399,9 +25447,9 @@ From_alias_clauseContext.prototype.T_COMMA = function(i) { i = null; } if(i===null) { - return this.getTokens(HiveSqlParser.T_COMMA); + return this.getTokens(HiveSql.T_COMMA); } else { - return this.getToken(HiveSqlParser.T_COMMA, i); + return this.getToken(HiveSql.T_COMMA, i); } }; @@ -25429,58 +25477,59 @@ From_alias_clauseContext.prototype.accept = function(visitor) { -HiveSqlParser.From_alias_clauseContext = From_alias_clauseContext; +HiveSql.From_alias_clauseContext = From_alias_clauseContext; -HiveSqlParser.prototype.from_alias_clause = function() { +HiveSql.prototype.from_alias_clause = function() { var localctx = new From_alias_clauseContext(this, this._ctx, this.state); - this.enterRule(localctx, 326, HiveSqlParser.RULE_from_alias_clause); + this.enterRule(localctx, 326, HiveSql.RULE_from_alias_clause); var _la = 0; // Token type try { this.enterOuterAlt(localctx, 1); - this.state = 2417; - if (!( !this._input.LT(1).getText().equalsIgnoreCase("EXEC") && - !this._input.LT(1).getText().equalsIgnoreCase("EXECUTE") && - !this._input.LT(1).getText().equalsIgnoreCase("INNER") && - !this._input.LT(1).getText().equalsIgnoreCase("LEFT") && - !this._input.LT(1).getText().equalsIgnoreCase("GROUP") && - !this._input.LT(1).getText().equalsIgnoreCase("ORDER") && - !this._input.LT(1).getText().equalsIgnoreCase("LIMIT") && - !this._input.LT(1).getText().equalsIgnoreCase("WITH"))) { - throw new antlr4.error.FailedPredicateException(this, "!this._input.LT(1).getText().equalsIgnoreCase(\"EXEC\") &&\n !this._input.LT(1).getText().equalsIgnoreCase(\"EXECUTE\") && \n !this._input.LT(1).getText().equalsIgnoreCase(\"INNER\") &&\n !this._input.LT(1).getText().equalsIgnoreCase(\"LEFT\") &&\n !this._input.LT(1).getText().equalsIgnoreCase(\"GROUP\") &&\n !this._input.LT(1).getText().equalsIgnoreCase(\"ORDER\") &&\n !this._input.LT(1).getText().equalsIgnoreCase(\"LIMIT\") &&\n !this._input.LT(1).getText().equalsIgnoreCase(\"WITH\")"); + this.state = 2414; + if (!( this._input.LT(1).text.toUpperCase() !== "EXEC" && + this._input.LT(1).text.toUpperCase() !== "EXECUTE" && + this._input.LT(1).text.toUpperCase() !== "INNER" && + this._input.LT(1).text.toUpperCase() !== "LEFT" && + this._input.LT(1).text.toUpperCase() !== "GROUP" && + this._input.LT(1).text.toUpperCase() !== "ORDER" && + this._input.LT(1).text.toUpperCase() !== "LIMIT" && + this._input.LT(1).text.toUpperCase() !== "WITH" && + this._input.LT(1).text.toUpperCase() !== "JOIN")) { + throw new antlr4.error.FailedPredicateException(this, "this._input.LT(1).text.toUpperCase() !== \"EXEC\" &&\n this._input.LT(1).text.toUpperCase() !== \"EXECUTE\" &&\n this._input.LT(1).text.toUpperCase() !== \"INNER\" &&\n this._input.LT(1).text.toUpperCase() !== \"LEFT\" &&\n this._input.LT(1).text.toUpperCase() !== \"GROUP\" &&\n this._input.LT(1).text.toUpperCase() !== \"ORDER\" &&\n this._input.LT(1).text.toUpperCase() !== \"LIMIT\" &&\n this._input.LT(1).text.toUpperCase() !== \"WITH\" &&\n this._input.LT(1).text.toUpperCase() !== \"JOIN\""); } - this.state = 2419; + this.state = 2416; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,297,this._ctx); if(la_===1) { - this.state = 2418; - this.match(HiveSqlParser.T_AS); + this.state = 2415; + this.match(HiveSql.T_AS); } - this.state = 2421; + this.state = 2418; this.ident(); - this.state = 2432; + this.state = 2429; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,299,this._ctx); if(la_===1) { - this.state = 2422; - this.match(HiveSqlParser.T_OPEN_P); - this.state = 2423; - this.match(HiveSqlParser.L_ID); - this.state = 2428; + this.state = 2419; + this.match(HiveSql.T_OPEN_P); + this.state = 2420; + this.match(HiveSql.L_ID); + this.state = 2425; this._errHandler.sync(this); _la = this._input.LA(1); - while(_la===HiveSqlParser.T_COMMA) { - this.state = 2424; - this.match(HiveSqlParser.T_COMMA); - this.state = 2425; - this.match(HiveSqlParser.L_ID); - this.state = 2430; + while(_la===HiveSql.T_COMMA) { + this.state = 2421; + this.match(HiveSql.T_COMMA); + this.state = 2422; + this.match(HiveSql.L_ID); + this.state = 2427; this._errHandler.sync(this); _la = this._input.LA(1); } - this.state = 2431; - this.match(HiveSqlParser.T_CLOSE_P); + this.state = 2428; + this.match(HiveSql.T_CLOSE_P); } } catch (re) { @@ -25507,7 +25556,7 @@ function Table_nameContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_table_name; + this.ruleIndex = HiveSql.RULE_table_name; return this; } @@ -25541,15 +25590,15 @@ Table_nameContext.prototype.accept = function(visitor) { -HiveSqlParser.Table_nameContext = Table_nameContext; +HiveSql.Table_nameContext = Table_nameContext; -HiveSqlParser.prototype.table_name = function() { +HiveSql.prototype.table_name = function() { var localctx = new Table_nameContext(this, this._ctx, this.state); - this.enterRule(localctx, 328, HiveSqlParser.RULE_table_name); + this.enterRule(localctx, 328, HiveSql.RULE_table_name); try { this.enterOuterAlt(localctx, 1); - this.state = 2434; + this.state = 2431; this.ident(); } catch (re) { if(re instanceof antlr4.error.RecognitionException) { @@ -25575,7 +25624,7 @@ function Where_clauseContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_where_clause; + this.ruleIndex = HiveSql.RULE_where_clause; return this; } @@ -25583,7 +25632,7 @@ Where_clauseContext.prototype = Object.create(antlr4.ParserRuleContext.prototype Where_clauseContext.prototype.constructor = Where_clauseContext; Where_clauseContext.prototype.T_WHERE = function() { - return this.getToken(HiveSqlParser.T_WHERE, 0); + return this.getToken(HiveSql.T_WHERE, 0); }; Where_clauseContext.prototype.bool_expr = function() { @@ -25613,17 +25662,17 @@ Where_clauseContext.prototype.accept = function(visitor) { -HiveSqlParser.Where_clauseContext = Where_clauseContext; +HiveSql.Where_clauseContext = Where_clauseContext; -HiveSqlParser.prototype.where_clause = function() { +HiveSql.prototype.where_clause = function() { var localctx = new Where_clauseContext(this, this._ctx, this.state); - this.enterRule(localctx, 330, HiveSqlParser.RULE_where_clause); + this.enterRule(localctx, 330, HiveSql.RULE_where_clause); try { this.enterOuterAlt(localctx, 1); - this.state = 2436; - this.match(HiveSqlParser.T_WHERE); - this.state = 2437; + this.state = 2433; + this.match(HiveSql.T_WHERE); + this.state = 2434; this.bool_expr(0); } catch (re) { if(re instanceof antlr4.error.RecognitionException) { @@ -25649,7 +25698,7 @@ function Group_by_clauseContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_group_by_clause; + this.ruleIndex = HiveSql.RULE_group_by_clause; return this; } @@ -25657,11 +25706,11 @@ Group_by_clauseContext.prototype = Object.create(antlr4.ParserRuleContext.protot Group_by_clauseContext.prototype.constructor = Group_by_clauseContext; Group_by_clauseContext.prototype.T_GROUP = function() { - return this.getToken(HiveSqlParser.T_GROUP, 0); + return this.getToken(HiveSql.T_GROUP, 0); }; Group_by_clauseContext.prototype.T_BY = function() { - return this.getToken(HiveSqlParser.T_BY, 0); + return this.getToken(HiveSql.T_BY, 0); }; Group_by_clauseContext.prototype.expr = function(i) { @@ -25680,9 +25729,9 @@ Group_by_clauseContext.prototype.T_COMMA = function(i) { i = null; } if(i===null) { - return this.getTokens(HiveSqlParser.T_COMMA); + return this.getTokens(HiveSql.T_COMMA); } else { - return this.getToken(HiveSqlParser.T_COMMA, i); + return this.getToken(HiveSql.T_COMMA, i); } }; @@ -25710,31 +25759,31 @@ Group_by_clauseContext.prototype.accept = function(visitor) { -HiveSqlParser.Group_by_clauseContext = Group_by_clauseContext; +HiveSql.Group_by_clauseContext = Group_by_clauseContext; -HiveSqlParser.prototype.group_by_clause = function() { +HiveSql.prototype.group_by_clause = function() { var localctx = new Group_by_clauseContext(this, this._ctx, this.state); - this.enterRule(localctx, 332, HiveSqlParser.RULE_group_by_clause); + this.enterRule(localctx, 332, HiveSql.RULE_group_by_clause); try { this.enterOuterAlt(localctx, 1); - this.state = 2439; - this.match(HiveSqlParser.T_GROUP); - this.state = 2440; - this.match(HiveSqlParser.T_BY); - this.state = 2441; + this.state = 2436; + this.match(HiveSql.T_GROUP); + this.state = 2437; + this.match(HiveSql.T_BY); + this.state = 2438; this.expr(0); - this.state = 2446; + this.state = 2443; this._errHandler.sync(this); var _alt = this._interp.adaptivePredict(this._input,300,this._ctx) while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { if(_alt===1) { - this.state = 2442; - this.match(HiveSqlParser.T_COMMA); - this.state = 2443; + this.state = 2439; + this.match(HiveSql.T_COMMA); + this.state = 2440; this.expr(0); } - this.state = 2448; + this.state = 2445; this._errHandler.sync(this); _alt = this._interp.adaptivePredict(this._input,300,this._ctx); } @@ -25763,7 +25812,7 @@ function Having_clauseContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_having_clause; + this.ruleIndex = HiveSql.RULE_having_clause; return this; } @@ -25771,7 +25820,7 @@ Having_clauseContext.prototype = Object.create(antlr4.ParserRuleContext.prototyp Having_clauseContext.prototype.constructor = Having_clauseContext; Having_clauseContext.prototype.T_HAVING = function() { - return this.getToken(HiveSqlParser.T_HAVING, 0); + return this.getToken(HiveSql.T_HAVING, 0); }; Having_clauseContext.prototype.bool_expr = function() { @@ -25801,17 +25850,17 @@ Having_clauseContext.prototype.accept = function(visitor) { -HiveSqlParser.Having_clauseContext = Having_clauseContext; +HiveSql.Having_clauseContext = Having_clauseContext; -HiveSqlParser.prototype.having_clause = function() { +HiveSql.prototype.having_clause = function() { var localctx = new Having_clauseContext(this, this._ctx, this.state); - this.enterRule(localctx, 334, HiveSqlParser.RULE_having_clause); + this.enterRule(localctx, 334, HiveSql.RULE_having_clause); try { this.enterOuterAlt(localctx, 1); - this.state = 2449; - this.match(HiveSqlParser.T_HAVING); - this.state = 2450; + this.state = 2446; + this.match(HiveSql.T_HAVING); + this.state = 2447; this.bool_expr(0); } catch (re) { if(re instanceof antlr4.error.RecognitionException) { @@ -25837,7 +25886,7 @@ function Qualify_clauseContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_qualify_clause; + this.ruleIndex = HiveSql.RULE_qualify_clause; return this; } @@ -25845,7 +25894,7 @@ Qualify_clauseContext.prototype = Object.create(antlr4.ParserRuleContext.prototy Qualify_clauseContext.prototype.constructor = Qualify_clauseContext; Qualify_clauseContext.prototype.T_QUALIFY = function() { - return this.getToken(HiveSqlParser.T_QUALIFY, 0); + return this.getToken(HiveSql.T_QUALIFY, 0); }; Qualify_clauseContext.prototype.bool_expr = function() { @@ -25875,17 +25924,17 @@ Qualify_clauseContext.prototype.accept = function(visitor) { -HiveSqlParser.Qualify_clauseContext = Qualify_clauseContext; +HiveSql.Qualify_clauseContext = Qualify_clauseContext; -HiveSqlParser.prototype.qualify_clause = function() { +HiveSql.prototype.qualify_clause = function() { var localctx = new Qualify_clauseContext(this, this._ctx, this.state); - this.enterRule(localctx, 336, HiveSqlParser.RULE_qualify_clause); + this.enterRule(localctx, 336, HiveSql.RULE_qualify_clause); try { this.enterOuterAlt(localctx, 1); - this.state = 2452; - this.match(HiveSqlParser.T_QUALIFY); - this.state = 2453; + this.state = 2449; + this.match(HiveSql.T_QUALIFY); + this.state = 2450; this.bool_expr(0); } catch (re) { if(re instanceof antlr4.error.RecognitionException) { @@ -25911,7 +25960,7 @@ function Order_by_clauseContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_order_by_clause; + this.ruleIndex = HiveSql.RULE_order_by_clause; return this; } @@ -25919,11 +25968,11 @@ Order_by_clauseContext.prototype = Object.create(antlr4.ParserRuleContext.protot Order_by_clauseContext.prototype.constructor = Order_by_clauseContext; Order_by_clauseContext.prototype.T_ORDER = function() { - return this.getToken(HiveSqlParser.T_ORDER, 0); + return this.getToken(HiveSql.T_ORDER, 0); }; Order_by_clauseContext.prototype.T_BY = function() { - return this.getToken(HiveSqlParser.T_BY, 0); + return this.getToken(HiveSql.T_BY, 0); }; Order_by_clauseContext.prototype.expr = function(i) { @@ -25942,9 +25991,9 @@ Order_by_clauseContext.prototype.T_COMMA = function(i) { i = null; } if(i===null) { - return this.getTokens(HiveSqlParser.T_COMMA); + return this.getTokens(HiveSql.T_COMMA); } else { - return this.getToken(HiveSqlParser.T_COMMA, i); + return this.getToken(HiveSql.T_COMMA, i); } }; @@ -25954,9 +26003,9 @@ Order_by_clauseContext.prototype.T_ASC = function(i) { i = null; } if(i===null) { - return this.getTokens(HiveSqlParser.T_ASC); + return this.getTokens(HiveSql.T_ASC); } else { - return this.getToken(HiveSqlParser.T_ASC, i); + return this.getToken(HiveSql.T_ASC, i); } }; @@ -25966,9 +26015,9 @@ Order_by_clauseContext.prototype.T_DESC = function(i) { i = null; } if(i===null) { - return this.getTokens(HiveSqlParser.T_DESC); + return this.getTokens(HiveSql.T_DESC); } else { - return this.getToken(HiveSqlParser.T_DESC, i); + return this.getToken(HiveSql.T_DESC, i); } }; @@ -25996,28 +26045,28 @@ Order_by_clauseContext.prototype.accept = function(visitor) { -HiveSqlParser.Order_by_clauseContext = Order_by_clauseContext; +HiveSql.Order_by_clauseContext = Order_by_clauseContext; -HiveSqlParser.prototype.order_by_clause = function() { +HiveSql.prototype.order_by_clause = function() { var localctx = new Order_by_clauseContext(this, this._ctx, this.state); - this.enterRule(localctx, 338, HiveSqlParser.RULE_order_by_clause); + this.enterRule(localctx, 338, HiveSql.RULE_order_by_clause); var _la = 0; // Token type try { this.enterOuterAlt(localctx, 1); - this.state = 2455; - this.match(HiveSqlParser.T_ORDER); - this.state = 2456; - this.match(HiveSqlParser.T_BY); - this.state = 2457; + this.state = 2452; + this.match(HiveSql.T_ORDER); + this.state = 2453; + this.match(HiveSql.T_BY); + this.state = 2454; this.expr(0); - this.state = 2459; + this.state = 2456; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,301,this._ctx); if(la_===1) { - this.state = 2458; + this.state = 2455; _la = this._input.LA(1); - if(!(_la===HiveSqlParser.T_ASC || _la===HiveSqlParser.T_DESC)) { + if(!(_la===HiveSql.T_ASC || _la===HiveSql.T_DESC)) { this._errHandler.recoverInline(this); } else { @@ -26026,22 +26075,22 @@ HiveSqlParser.prototype.order_by_clause = function() { } } - this.state = 2468; + this.state = 2465; this._errHandler.sync(this); var _alt = this._interp.adaptivePredict(this._input,303,this._ctx) while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { if(_alt===1) { - this.state = 2461; - this.match(HiveSqlParser.T_COMMA); - this.state = 2462; + this.state = 2458; + this.match(HiveSql.T_COMMA); + this.state = 2459; this.expr(0); - this.state = 2464; + this.state = 2461; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,302,this._ctx); if(la_===1) { - this.state = 2463; + this.state = 2460; _la = this._input.LA(1); - if(!(_la===HiveSqlParser.T_ASC || _la===HiveSqlParser.T_DESC)) { + if(!(_la===HiveSql.T_ASC || _la===HiveSql.T_DESC)) { this._errHandler.recoverInline(this); } else { @@ -26051,7 +26100,7 @@ HiveSqlParser.prototype.order_by_clause = function() { } } - this.state = 2470; + this.state = 2467; this._errHandler.sync(this); _alt = this._interp.adaptivePredict(this._input,303,this._ctx); } @@ -26080,7 +26129,7 @@ function Select_optionsContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_select_options; + this.ruleIndex = HiveSql.RULE_select_options; return this; } @@ -26121,27 +26170,27 @@ Select_optionsContext.prototype.accept = function(visitor) { -HiveSqlParser.Select_optionsContext = Select_optionsContext; +HiveSql.Select_optionsContext = Select_optionsContext; -HiveSqlParser.prototype.select_options = function() { +HiveSql.prototype.select_options = function() { var localctx = new Select_optionsContext(this, this._ctx, this.state); - this.enterRule(localctx, 340, HiveSqlParser.RULE_select_options); + this.enterRule(localctx, 340, HiveSql.RULE_select_options); try { this.enterOuterAlt(localctx, 1); - this.state = 2472; + this.state = 2469; this._errHandler.sync(this); var _alt = 1; do { switch (_alt) { case 1: - this.state = 2471; + this.state = 2468; this.select_options_item(); break; default: throw new antlr4.error.NoViableAltException(this); } - this.state = 2474; + this.state = 2471; this._errHandler.sync(this); _alt = this._interp.adaptivePredict(this._input,304, this._ctx); } while ( _alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER ); @@ -26169,7 +26218,7 @@ function Select_options_itemContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_select_options_item; + this.ruleIndex = HiveSql.RULE_select_options_item; return this; } @@ -26177,7 +26226,7 @@ Select_options_itemContext.prototype = Object.create(antlr4.ParserRuleContext.pr Select_options_itemContext.prototype.constructor = Select_options_itemContext; Select_options_itemContext.prototype.T_LIMIT = function() { - return this.getToken(HiveSqlParser.T_LIMIT, 0); + return this.getToken(HiveSql.T_LIMIT, 0); }; Select_options_itemContext.prototype.expr = function() { @@ -26185,51 +26234,51 @@ Select_options_itemContext.prototype.expr = function() { }; Select_options_itemContext.prototype.T_WITH = function() { - return this.getToken(HiveSqlParser.T_WITH, 0); + return this.getToken(HiveSql.T_WITH, 0); }; Select_options_itemContext.prototype.T_RR = function() { - return this.getToken(HiveSqlParser.T_RR, 0); + return this.getToken(HiveSql.T_RR, 0); }; Select_options_itemContext.prototype.T_RS = function() { - return this.getToken(HiveSqlParser.T_RS, 0); + return this.getToken(HiveSql.T_RS, 0); }; Select_options_itemContext.prototype.T_CS = function() { - return this.getToken(HiveSqlParser.T_CS, 0); + return this.getToken(HiveSql.T_CS, 0); }; Select_options_itemContext.prototype.T_UR = function() { - return this.getToken(HiveSqlParser.T_UR, 0); + return this.getToken(HiveSql.T_UR, 0); }; Select_options_itemContext.prototype.T_USE = function() { - return this.getToken(HiveSqlParser.T_USE, 0); + return this.getToken(HiveSql.T_USE, 0); }; Select_options_itemContext.prototype.T_AND = function() { - return this.getToken(HiveSqlParser.T_AND, 0); + return this.getToken(HiveSql.T_AND, 0); }; Select_options_itemContext.prototype.T_KEEP = function() { - return this.getToken(HiveSqlParser.T_KEEP, 0); + return this.getToken(HiveSql.T_KEEP, 0); }; Select_options_itemContext.prototype.T_LOCKS = function() { - return this.getToken(HiveSqlParser.T_LOCKS, 0); + return this.getToken(HiveSql.T_LOCKS, 0); }; Select_options_itemContext.prototype.T_EXCLUSIVE = function() { - return this.getToken(HiveSqlParser.T_EXCLUSIVE, 0); + return this.getToken(HiveSql.T_EXCLUSIVE, 0); }; Select_options_itemContext.prototype.T_UPDATE = function() { - return this.getToken(HiveSqlParser.T_UPDATE, 0); + return this.getToken(HiveSql.T_UPDATE, 0); }; Select_options_itemContext.prototype.T_SHARE = function() { - return this.getToken(HiveSqlParser.T_SHARE, 0); + return this.getToken(HiveSql.T_SHARE, 0); }; Select_options_itemContext.prototype.enterRule = function(listener) { @@ -26255,58 +26304,58 @@ Select_options_itemContext.prototype.accept = function(visitor) { -HiveSqlParser.Select_options_itemContext = Select_options_itemContext; +HiveSql.Select_options_itemContext = Select_options_itemContext; -HiveSqlParser.prototype.select_options_item = function() { +HiveSql.prototype.select_options_item = function() { var localctx = new Select_options_itemContext(this, this._ctx, this.state); - this.enterRule(localctx, 342, HiveSqlParser.RULE_select_options_item); + this.enterRule(localctx, 342, HiveSql.RULE_select_options_item); var _la = 0; // Token type try { - this.state = 2487; + this.state = 2484; this._errHandler.sync(this); switch(this._input.LA(1)) { - case HiveSqlParser.T_LIMIT: + case HiveSql.T_LIMIT: this.enterOuterAlt(localctx, 1); - this.state = 2476; - this.match(HiveSqlParser.T_LIMIT); - this.state = 2477; + this.state = 2473; + this.match(HiveSql.T_LIMIT); + this.state = 2474; this.expr(0); break; - case HiveSqlParser.T_WITH: + case HiveSql.T_WITH: this.enterOuterAlt(localctx, 2); - this.state = 2478; - this.match(HiveSqlParser.T_WITH); - this.state = 2479; + this.state = 2475; + this.match(HiveSql.T_WITH); + this.state = 2476; _la = this._input.LA(1); - if(!(_la===HiveSqlParser.T_CS || ((((_la - 292)) & ~0x1f) == 0 && ((1 << (_la - 292)) & ((1 << (HiveSqlParser.T_RR - 292)) | (1 << (HiveSqlParser.T_RS - 292)) | (1 << (HiveSqlParser.T_UR - 292)))) !== 0))) { + if(!(_la===HiveSql.T_CS || _la===HiveSql.T_RR || _la===HiveSql.T_RS || _la===HiveSql.T_UR)) { this._errHandler.recoverInline(this); } else { this._errHandler.reportMatch(this); this.consume(); } - this.state = 2485; + this.state = 2482; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,305,this._ctx); if(la_===1) { + this.state = 2477; + this.match(HiveSql.T_USE); + this.state = 2478; + this.match(HiveSql.T_AND); + this.state = 2479; + this.match(HiveSql.T_KEEP); this.state = 2480; - this.match(HiveSqlParser.T_USE); - this.state = 2481; - this.match(HiveSqlParser.T_AND); - this.state = 2482; - this.match(HiveSqlParser.T_KEEP); - this.state = 2483; _la = this._input.LA(1); - if(!(_la===HiveSqlParser.T_UPDATE || _la===HiveSqlParser.T_EXCLUSIVE || _la===HiveSqlParser.T_SHARE)) { + if(!(_la===HiveSql.T_EXCLUSIVE || _la===HiveSql.T_SHARE || _la===HiveSql.T_UPDATE)) { this._errHandler.recoverInline(this); } else { this._errHandler.reportMatch(this); this.consume(); } - this.state = 2484; - this.match(HiveSqlParser.T_LOCKS); + this.state = 2481; + this.match(HiveSql.T_LOCKS); } break; @@ -26337,7 +26386,7 @@ function Update_stmtContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_update_stmt; + this.ruleIndex = HiveSql.RULE_update_stmt; return this; } @@ -26345,7 +26394,7 @@ Update_stmtContext.prototype = Object.create(antlr4.ParserRuleContext.prototype) Update_stmtContext.prototype.constructor = Update_stmtContext; Update_stmtContext.prototype.T_UPDATE = function() { - return this.getToken(HiveSqlParser.T_UPDATE, 0); + return this.getToken(HiveSql.T_UPDATE, 0); }; Update_stmtContext.prototype.update_table = function() { @@ -26353,7 +26402,7 @@ Update_stmtContext.prototype.update_table = function() { }; Update_stmtContext.prototype.T_SET = function() { - return this.getToken(HiveSqlParser.T_SET, 0); + return this.getToken(HiveSql.T_SET, 0); }; Update_stmtContext.prototype.update_assignment = function() { @@ -26391,35 +26440,35 @@ Update_stmtContext.prototype.accept = function(visitor) { -HiveSqlParser.Update_stmtContext = Update_stmtContext; +HiveSql.Update_stmtContext = Update_stmtContext; -HiveSqlParser.prototype.update_stmt = function() { +HiveSql.prototype.update_stmt = function() { var localctx = new Update_stmtContext(this, this._ctx, this.state); - this.enterRule(localctx, 344, HiveSqlParser.RULE_update_stmt); + this.enterRule(localctx, 344, HiveSql.RULE_update_stmt); try { this.enterOuterAlt(localctx, 1); - this.state = 2489; - this.match(HiveSqlParser.T_UPDATE); - this.state = 2490; + this.state = 2486; + this.match(HiveSql.T_UPDATE); + this.state = 2487; this.update_table(); - this.state = 2491; - this.match(HiveSqlParser.T_SET); - this.state = 2492; + this.state = 2488; + this.match(HiveSql.T_SET); + this.state = 2489; this.update_assignment(); - this.state = 2494; + this.state = 2491; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,307,this._ctx); if(la_===1) { - this.state = 2493; + this.state = 2490; this.where_clause(); } - this.state = 2497; + this.state = 2494; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,308,this._ctx); if(la_===1) { - this.state = 2496; + this.state = 2493; this.update_upsert(); } @@ -26447,7 +26496,7 @@ function Update_assignmentContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_update_assignment; + this.ruleIndex = HiveSql.RULE_update_assignment; return this; } @@ -26470,9 +26519,9 @@ Update_assignmentContext.prototype.T_COMMA = function(i) { i = null; } if(i===null) { - return this.getTokens(HiveSqlParser.T_COMMA); + return this.getTokens(HiveSql.T_COMMA); } else { - return this.getToken(HiveSqlParser.T_COMMA, i); + return this.getToken(HiveSql.T_COMMA, i); } }; @@ -26500,27 +26549,27 @@ Update_assignmentContext.prototype.accept = function(visitor) { -HiveSqlParser.Update_assignmentContext = Update_assignmentContext; +HiveSql.Update_assignmentContext = Update_assignmentContext; -HiveSqlParser.prototype.update_assignment = function() { +HiveSql.prototype.update_assignment = function() { var localctx = new Update_assignmentContext(this, this._ctx, this.state); - this.enterRule(localctx, 346, HiveSqlParser.RULE_update_assignment); + this.enterRule(localctx, 346, HiveSql.RULE_update_assignment); try { this.enterOuterAlt(localctx, 1); - this.state = 2499; + this.state = 2496; this.assignment_stmt_item(); - this.state = 2504; + this.state = 2501; this._errHandler.sync(this); var _alt = this._interp.adaptivePredict(this._input,309,this._ctx) while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { if(_alt===1) { - this.state = 2500; - this.match(HiveSqlParser.T_COMMA); - this.state = 2501; + this.state = 2497; + this.match(HiveSql.T_COMMA); + this.state = 2498; this.assignment_stmt_item(); } - this.state = 2506; + this.state = 2503; this._errHandler.sync(this); _alt = this._interp.adaptivePredict(this._input,309,this._ctx); } @@ -26549,7 +26598,7 @@ function Update_tableContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_update_table; + this.ruleIndex = HiveSql.RULE_update_table; return this; } @@ -26561,7 +26610,7 @@ Update_tableContext.prototype.table_name = function() { }; Update_tableContext.prototype.T_OPEN_P = function() { - return this.getToken(HiveSqlParser.T_OPEN_P, 0); + return this.getToken(HiveSql.T_OPEN_P, 0); }; Update_tableContext.prototype.select_stmt = function() { @@ -26569,7 +26618,7 @@ Update_tableContext.prototype.select_stmt = function() { }; Update_tableContext.prototype.T_CLOSE_P = function() { - return this.getToken(HiveSqlParser.T_CLOSE_P, 0); + return this.getToken(HiveSql.T_CLOSE_P, 0); }; Update_tableContext.prototype.ident = function() { @@ -26581,7 +26630,7 @@ Update_tableContext.prototype.from_clause = function() { }; Update_tableContext.prototype.T_AS = function() { - return this.getToken(HiveSqlParser.T_AS, 0); + return this.getToken(HiveSql.T_AS, 0); }; Update_tableContext.prototype.enterRule = function(listener) { @@ -26607,372 +26656,371 @@ Update_tableContext.prototype.accept = function(visitor) { -HiveSqlParser.Update_tableContext = Update_tableContext; +HiveSql.Update_tableContext = Update_tableContext; -HiveSqlParser.prototype.update_table = function() { +HiveSql.prototype.update_table = function() { var localctx = new Update_tableContext(this, this._ctx, this.state); - this.enterRule(localctx, 348, HiveSqlParser.RULE_update_table); + this.enterRule(localctx, 348, HiveSql.RULE_update_table); try { this.enterOuterAlt(localctx, 1); - this.state = 2515; + this.state = 2512; this._errHandler.sync(this); switch(this._input.LA(1)) { - case HiveSqlParser.T__8: - case HiveSqlParser.T_GO: - case HiveSqlParser.T_BEGIN: - case HiveSqlParser.T_EXCEPTION: - case HiveSqlParser.L_ID: - case HiveSqlParser.T_THEN: - case HiveSqlParser.T_SET: - case HiveSqlParser.T_ALLOCATE: - case HiveSqlParser.T_CURSOR: - case HiveSqlParser.T_FOR: - case HiveSqlParser.T_RESULT: - case HiveSqlParser.T_PROCEDURE: - case HiveSqlParser.T_ASSOCIATE: - case HiveSqlParser.T_LOCATOR: - case HiveSqlParser.T_LOCATORS: - case HiveSqlParser.T_WITH: - case HiveSqlParser.T_TRANSACTION: - case HiveSqlParser.T_BREAK: - case HiveSqlParser.T_CALL: - case HiveSqlParser.T_DECLARE: - case HiveSqlParser.T_AS: - case HiveSqlParser.T_CONSTANT: - case HiveSqlParser.T_CONDITION: - case HiveSqlParser.T_IS: - case HiveSqlParser.T_RETURN: - case HiveSqlParser.T_ONLY: - case HiveSqlParser.T_TO: - case HiveSqlParser.T_CALLER: - case HiveSqlParser.T_CLIENT: - case HiveSqlParser.T_WITHOUT: - case HiveSqlParser.T_CONTINUE: - case HiveSqlParser.T_EXIT: - case HiveSqlParser.T_HANDLER: - case HiveSqlParser.T_SQLEXCEPTION: - case HiveSqlParser.T_SQLWARNING: - case HiveSqlParser.T_NOT: - case HiveSqlParser.T_FOUND: - case HiveSqlParser.T_GLOBAL: - case HiveSqlParser.T_TEMPORARY: - case HiveSqlParser.T_TABLE: - case HiveSqlParser.T_CREATE: - case HiveSqlParser.T_IF: - case HiveSqlParser.T_EXISTS: - case HiveSqlParser.T_LOCAL: - case HiveSqlParser.T_MULTISET: - case HiveSqlParser.T_VOLATILE: - case HiveSqlParser.T_LIKE: - case HiveSqlParser.T_CONSTRAINT: - case HiveSqlParser.T_PRIMARY: - case HiveSqlParser.T_KEY: - case HiveSqlParser.T_UNIQUE: - case HiveSqlParser.T_REFERENCES: - case HiveSqlParser.T_IDENTITY: - case HiveSqlParser.T_AUTO_INCREMENT: - case HiveSqlParser.T_ENABLE: - case HiveSqlParser.T_CLUSTERED: - case HiveSqlParser.T_ASC: - case HiveSqlParser.T_DESC: - case HiveSqlParser.T_FOREIGN: - case HiveSqlParser.T_ON: - case HiveSqlParser.T_UPDATE: - case HiveSqlParser.T_DELETE: - case HiveSqlParser.T_NO: - case HiveSqlParser.T_ACTION: - case HiveSqlParser.T_RESTRICT: - case HiveSqlParser.T_DEFAULT: - case HiveSqlParser.T_CASCADE: - case HiveSqlParser.T_LOG: - case HiveSqlParser.T_FALLBACK: - case HiveSqlParser.T_COMMIT: - case HiveSqlParser.T_PRESERVE: - case HiveSqlParser.T_ROWS: - case HiveSqlParser.T_SEGMENT: - case HiveSqlParser.T_CREATION: - case HiveSqlParser.T_IMMEDIATE: - case HiveSqlParser.T_DEFERRED: - case HiveSqlParser.T_PCTFREE: - case HiveSqlParser.T_PCTUSED: - case HiveSqlParser.T_INITRANS: - case HiveSqlParser.T_MAXTRANS: - case HiveSqlParser.T_NOCOMPRESS: - case HiveSqlParser.T_LOGGING: - case HiveSqlParser.T_NOLOGGING: - case HiveSqlParser.T_STORAGE: - case HiveSqlParser.T_TABLESPACE: - case HiveSqlParser.T_INDEX: - case HiveSqlParser.T_IN: - case HiveSqlParser.T_REPLACE: - case HiveSqlParser.T_DISTRIBUTE: - case HiveSqlParser.T_BY: - case HiveSqlParser.T_HASH: - case HiveSqlParser.T_LOGGED: - case HiveSqlParser.T_COMPRESS: - case HiveSqlParser.T_YES: - case HiveSqlParser.T_DEFINITION: - case HiveSqlParser.T_DROP: - case HiveSqlParser.T_DATA: - case HiveSqlParser.T_STORED: - case HiveSqlParser.T_ROW: - case HiveSqlParser.T_FORMAT: - case HiveSqlParser.T_DELIMITED: - case HiveSqlParser.T_FIELDS: - case HiveSqlParser.T_TERMINATED: - case HiveSqlParser.T_ESCAPED: - case HiveSqlParser.T_COLLECTION: - case HiveSqlParser.T_ITEMS: - case HiveSqlParser.T_MAP: - case HiveSqlParser.T_KEYS: - case HiveSqlParser.T_LINES: - case HiveSqlParser.T_DEFINED: - case HiveSqlParser.T_TEXTIMAGE_ON: - case HiveSqlParser.T_COMMENT: - case HiveSqlParser.T_CHARACTER: - case HiveSqlParser.T_CHARSET: - case HiveSqlParser.T_ENGINE: - case HiveSqlParser.T_ALTER: - case HiveSqlParser.T_ADD2: - case HiveSqlParser.T_CHAR: - case HiveSqlParser.T_BIGINT: - case HiveSqlParser.T_BINARY_DOUBLE: - case HiveSqlParser.T_BINARY_FLOAT: - case HiveSqlParser.T_BIT: - case HiveSqlParser.T_DATE: - case HiveSqlParser.T_DATETIME: - case HiveSqlParser.T_DEC: - case HiveSqlParser.T_DECIMAL: - case HiveSqlParser.T_DOUBLE: - case HiveSqlParser.T_PRECISION: - case HiveSqlParser.T_FLOAT: - case HiveSqlParser.T_INT: - case HiveSqlParser.T_INT2: - case HiveSqlParser.T_INT4: - case HiveSqlParser.T_INT8: - case HiveSqlParser.T_INTEGER: - case HiveSqlParser.T_NCHAR: - case HiveSqlParser.T_NVARCHAR: - case HiveSqlParser.T_NUMBER: - case HiveSqlParser.T_NUMERIC: - case HiveSqlParser.T_REAL: - case HiveSqlParser.T_RESULT_SET_LOCATOR: - case HiveSqlParser.T_VARYING: - case HiveSqlParser.T_SIMPLE_FLOAT: - case HiveSqlParser.T_SIMPLE_DOUBLE: - case HiveSqlParser.T_SMALLINT: - case HiveSqlParser.T_SMALLDATETIME: - case HiveSqlParser.T_STRING: - case HiveSqlParser.T_SYS_REFCURSOR: - case HiveSqlParser.T_TIMESTAMP: - case HiveSqlParser.T_VARCHAR: - case HiveSqlParser.T_VARCHAR2: - case HiveSqlParser.T_XML: - case HiveSqlParser.T_MAX: - case HiveSqlParser.T_BYTE: - case HiveSqlParser.T_CASESPECIFIC: - case HiveSqlParser.T_CS: - case HiveSqlParser.T_DATABASE: - case HiveSqlParser.T_SCHEMA: - case HiveSqlParser.T_LOCATION: - case HiveSqlParser.T_OR: - case HiveSqlParser.T_FUNCTION: - case HiveSqlParser.T_RETURNS: - case HiveSqlParser.T_PACKAGE: - case HiveSqlParser.T_PROC: - case HiveSqlParser.T_BODY: - case HiveSqlParser.T_OUT: - case HiveSqlParser.T_INOUT: - case HiveSqlParser.T_LANGUAGE: - case HiveSqlParser.T_SQL: - case HiveSqlParser.T_SECURITY: - case HiveSqlParser.T_CREATOR: - case HiveSqlParser.T_DEFINER: - case HiveSqlParser.T_INVOKER: - case HiveSqlParser.T_OWNER: - case HiveSqlParser.T_DYNAMIC: - case HiveSqlParser.T_SETS: - case HiveSqlParser.T_EXEC: - case HiveSqlParser.T_EXECUTE: - case HiveSqlParser.T_INTO: - case HiveSqlParser.T_INCLUDE: - case HiveSqlParser.T_INSERT: - case HiveSqlParser.T_OVERWRITE: - case HiveSqlParser.T_VALUES: - case HiveSqlParser.T_DIRECTORY: - case HiveSqlParser.T_GET: - case HiveSqlParser.T_DIAGNOSTICS: - case HiveSqlParser.T_MESSAGE_TEXT: - case HiveSqlParser.T_ROW_COUNT: - case HiveSqlParser.T_GRANT: - case HiveSqlParser.T_ROLE: - case HiveSqlParser.T_LEAVE: - case HiveSqlParser.T_OBJECT: - case HiveSqlParser.T_AT: - case HiveSqlParser.T_OPEN: - case HiveSqlParser.T_FETCH: - case HiveSqlParser.T_FROM: - case HiveSqlParser.T_COLLECT: - case HiveSqlParser.T_STATISTICS: - case HiveSqlParser.T_STATS: - case HiveSqlParser.T_COLUMN: - case HiveSqlParser.T_CLOSE: - case HiveSqlParser.T_CMP: - case HiveSqlParser.T_SUM: - case HiveSqlParser.T_COPY: - case HiveSqlParser.T_HDFS: - case HiveSqlParser.T_BATCHSIZE: - case HiveSqlParser.T_DELIMITER: - case HiveSqlParser.T_SQLINSERT: - case HiveSqlParser.T_IGNORE: - case HiveSqlParser.T_WORK: - case HiveSqlParser.T_PRINT: - case HiveSqlParser.T_QUIT: - case HiveSqlParser.T_RAISE: - case HiveSqlParser.T_RESIGNAL: - case HiveSqlParser.T_SQLSTATE: - case HiveSqlParser.T_VALUE: - case HiveSqlParser.T_ROLLBACK: - case HiveSqlParser.T_CURRENT: - case HiveSqlParser.T_CURRENT_SCHEMA: - case HiveSqlParser.T_ANSI_NULLS: - case HiveSqlParser.T_ANSI_PADDING: - case HiveSqlParser.T_NOCOUNT: - case HiveSqlParser.T_QUOTED_IDENTIFIER: - case HiveSqlParser.T_XACT_ABORT: - case HiveSqlParser.T_OFF: - case HiveSqlParser.T_QUERY_BAND: - case HiveSqlParser.T_NONE: - case HiveSqlParser.T_SESSION: - case HiveSqlParser.T_SIGNAL: - case HiveSqlParser.T_SUMMARY: - case HiveSqlParser.T_TOP: - case HiveSqlParser.T_LIMIT: - case HiveSqlParser.T_TRUNCATE: - case HiveSqlParser.T_USE: - case HiveSqlParser.T_WHILE: - case HiveSqlParser.T_DO: - case HiveSqlParser.T_LOOP: - case HiveSqlParser.T_REVERSE: - case HiveSqlParser.T_STEP: - case HiveSqlParser.T_USING: - case HiveSqlParser.T_ALL: - case HiveSqlParser.T_EXCEPT: - case HiveSqlParser.T_INTERSECT: - case HiveSqlParser.T_SELECT: - case HiveSqlParser.T_SEL: - case HiveSqlParser.T_DISTINCT: - case HiveSqlParser.T_TITLE: - case HiveSqlParser.T_INNER: - case HiveSqlParser.T_JOIN: - case HiveSqlParser.T_LEFT: - case HiveSqlParser.T_RIGHT: - case HiveSqlParser.T_FULL: - case HiveSqlParser.T_OUTER: - case HiveSqlParser.T_GROUP: - case HiveSqlParser.T_HAVING: - case HiveSqlParser.T_QUALIFY: - case HiveSqlParser.T_ORDER: - case HiveSqlParser.T_RR: - case HiveSqlParser.T_RS: - case HiveSqlParser.T_UR: - case HiveSqlParser.T_AND: - case HiveSqlParser.T_KEEP: - case HiveSqlParser.T_EXCLUSIVE: - case HiveSqlParser.T_SHARE: - case HiveSqlParser.T_LOCKS: - case HiveSqlParser.T_MERGE: - case HiveSqlParser.T_MATCHED: - case HiveSqlParser.T_DESCRIBE: - case HiveSqlParser.T_BETWEEN: - case HiveSqlParser.T_RLIKE: - case HiveSqlParser.T_REGEXP: - case HiveSqlParser.T_INTERVAL: - case HiveSqlParser.T_DAY: - case HiveSqlParser.T_DAYS: - case HiveSqlParser.T_MICROSECOND: - case HiveSqlParser.T_MICROSECONDS: - case HiveSqlParser.T_SECOND: - case HiveSqlParser.T_SECONDS: - case HiveSqlParser.T_CONCAT: - case HiveSqlParser.T_CASE: - case HiveSqlParser.T_ISOPEN: - case HiveSqlParser.T_NOTFOUND: - case HiveSqlParser.T_AVG: - case HiveSqlParser.T_COUNT: - case HiveSqlParser.T_COUNT_BIG: - case HiveSqlParser.T_CUME_DIST: - case HiveSqlParser.T_DENSE_RANK: - case HiveSqlParser.T_FIRST_VALUE: - case HiveSqlParser.T_LAG: - case HiveSqlParser.T_LAST_VALUE: - case HiveSqlParser.T_LEAD: - case HiveSqlParser.T_MIN: - case HiveSqlParser.T_RANK: - case HiveSqlParser.T_ROW_NUMBER: - case HiveSqlParser.T_STDEV: - case HiveSqlParser.T_VAR: - case HiveSqlParser.T_VARIANCE: - case HiveSqlParser.T_OVER: - case HiveSqlParser.T_PARTITION: - case HiveSqlParser.T_ACTIVITY_COUNT: - case HiveSqlParser.T_CAST: - case HiveSqlParser.T_CURRENT_DATE: - case HiveSqlParser.T_CURRENT_TIMESTAMP: - case HiveSqlParser.T_CURRENT_USER: - case HiveSqlParser.T_USER: - case HiveSqlParser.T_PART_COUNT: - case HiveSqlParser.T_PART_LOC: - case HiveSqlParser.T_TRIM: - case HiveSqlParser.T_SUBSTRING: - case HiveSqlParser.T_SYSDATE: - case HiveSqlParser.T_HIVE: - case HiveSqlParser.T_HOST: - case HiveSqlParser.T_TRUE: - case HiveSqlParser.T_FALSE: - case HiveSqlParser.T_DIR: - case HiveSqlParser.T_FILE: - case HiveSqlParser.T_FILES: - case HiveSqlParser.T_NEW: - case HiveSqlParser.T_PWD: - case HiveSqlParser.T_SESSIONS: - case HiveSqlParser.T_SUBDIR: - this.state = 2507; + case HiveSql.T_ACTION: + case HiveSql.T_ADD2: + case HiveSql.T_ALL: + case HiveSql.T_ALLOCATE: + case HiveSql.T_ALTER: + case HiveSql.T_AND: + case HiveSql.T_ANSI_NULLS: + case HiveSql.T_ANSI_PADDING: + case HiveSql.T_AS: + case HiveSql.T_ASC: + case HiveSql.T_ASSOCIATE: + case HiveSql.T_AT: + case HiveSql.T_AUTO_INCREMENT: + case HiveSql.T_AVG: + case HiveSql.T_BATCHSIZE: + case HiveSql.T_BEGIN: + case HiveSql.T_BETWEEN: + case HiveSql.T_BIGINT: + case HiveSql.T_BINARY_DOUBLE: + case HiveSql.T_BINARY_FLOAT: + case HiveSql.T_BIT: + case HiveSql.T_BODY: + case HiveSql.T_BREAK: + case HiveSql.T_BY: + case HiveSql.T_BYTE: + case HiveSql.T_CALL: + case HiveSql.T_CALLER: + case HiveSql.T_CASCADE: + case HiveSql.T_CASE: + case HiveSql.T_CASESPECIFIC: + case HiveSql.T_CAST: + case HiveSql.T_CHAR: + case HiveSql.T_CHARACTER: + case HiveSql.T_CHARSET: + case HiveSql.T_CLIENT: + case HiveSql.T_CLOSE: + case HiveSql.T_CLUSTERED: + case HiveSql.T_CMP: + case HiveSql.T_COLLECT: + case HiveSql.T_COLLECTION: + case HiveSql.T_COLUMN: + case HiveSql.T_COMMENT: + case HiveSql.T_CONSTANT: + case HiveSql.T_COMMIT: + case HiveSql.T_COMPRESS: + case HiveSql.T_CONCAT: + case HiveSql.T_CONDITION: + case HiveSql.T_CONSTRAINT: + case HiveSql.T_CONTINUE: + case HiveSql.T_COPY: + case HiveSql.T_COUNT: + case HiveSql.T_COUNT_BIG: + case HiveSql.T_CREATE: + case HiveSql.T_CREATION: + case HiveSql.T_CREATOR: + case HiveSql.T_CS: + case HiveSql.T_CURRENT: + case HiveSql.T_CURRENT_SCHEMA: + case HiveSql.T_CURSOR: + case HiveSql.T_DATABASE: + case HiveSql.T_DATA: + case HiveSql.T_DATE: + case HiveSql.T_DATETIME: + case HiveSql.T_DAY: + case HiveSql.T_DAYS: + case HiveSql.T_DEC: + case HiveSql.T_DECIMAL: + case HiveSql.T_DECLARE: + case HiveSql.T_DEFAULT: + case HiveSql.T_DEFERRED: + case HiveSql.T_DEFINED: + case HiveSql.T_DEFINER: + case HiveSql.T_DEFINITION: + case HiveSql.T_DELETE: + case HiveSql.T_DELIMITED: + case HiveSql.T_DELIMITER: + case HiveSql.T_DESC: + case HiveSql.T_DESCRIBE: + case HiveSql.T_DIAGNOSTICS: + case HiveSql.T_DIR: + case HiveSql.T_DIRECTORY: + case HiveSql.T_DISTINCT: + case HiveSql.T_DISTRIBUTE: + case HiveSql.T_DO: + case HiveSql.T_DOUBLE: + case HiveSql.T_DROP: + case HiveSql.T_DYNAMIC: + case HiveSql.T_ENABLE: + case HiveSql.T_ENGINE: + case HiveSql.T_ESCAPED: + case HiveSql.T_EXCEPT: + case HiveSql.T_EXEC: + case HiveSql.T_EXECUTE: + case HiveSql.T_EXCEPTION: + case HiveSql.T_EXCLUSIVE: + case HiveSql.T_EXISTS: + case HiveSql.T_EXIT: + case HiveSql.T_FALLBACK: + case HiveSql.T_FALSE: + case HiveSql.T_FETCH: + case HiveSql.T_FIELDS: + case HiveSql.T_FILE: + case HiveSql.T_FILES: + case HiveSql.T_FLOAT: + case HiveSql.T_FOR: + case HiveSql.T_FOREIGN: + case HiveSql.T_FORMAT: + case HiveSql.T_FOUND: + case HiveSql.T_FROM: + case HiveSql.T_FULL: + case HiveSql.T_FUNCTION: + case HiveSql.T_GET: + case HiveSql.T_GLOBAL: + case HiveSql.T_GO: + case HiveSql.T_GRANT: + case HiveSql.T_GROUP: + case HiveSql.T_HANDLER: + case HiveSql.T_HASH: + case HiveSql.T_HAVING: + case HiveSql.T_HDFS: + case HiveSql.T_HIVE: + case HiveSql.T_HOST: + case HiveSql.T_IDENTITY: + case HiveSql.T_IF: + case HiveSql.T_IGNORE: + case HiveSql.T_IMMEDIATE: + case HiveSql.T_IN: + case HiveSql.T_INCLUDE: + case HiveSql.T_INDEX: + case HiveSql.T_INITRANS: + case HiveSql.T_INNER: + case HiveSql.T_INOUT: + case HiveSql.T_INSERT: + case HiveSql.T_INT: + case HiveSql.T_INT2: + case HiveSql.T_INT4: + case HiveSql.T_INT8: + case HiveSql.T_INTEGER: + case HiveSql.T_INTERSECT: + case HiveSql.T_INTERVAL: + case HiveSql.T_INTO: + case HiveSql.T_INVOKER: + case HiveSql.T_IS: + case HiveSql.T_ISOPEN: + case HiveSql.T_ITEMS: + case HiveSql.T_JOIN: + case HiveSql.T_KEEP: + case HiveSql.T_KEY: + case HiveSql.T_KEYS: + case HiveSql.T_LANGUAGE: + case HiveSql.T_LEAVE: + case HiveSql.T_LEFT: + case HiveSql.T_LIKE: + case HiveSql.T_LIMIT: + case HiveSql.T_LINES: + case HiveSql.T_LOCAL: + case HiveSql.T_LOCATION: + case HiveSql.T_LOCATOR: + case HiveSql.T_LOCATORS: + case HiveSql.T_LOCKS: + case HiveSql.T_LOG: + case HiveSql.T_LOGGED: + case HiveSql.T_LOGGING: + case HiveSql.T_LOOP: + case HiveSql.T_MAP: + case HiveSql.T_MATCHED: + case HiveSql.T_MAX: + case HiveSql.T_MAXTRANS: + case HiveSql.T_MERGE: + case HiveSql.T_MESSAGE_TEXT: + case HiveSql.T_MICROSECOND: + case HiveSql.T_MICROSECONDS: + case HiveSql.T_MIN: + case HiveSql.T_MULTISET: + case HiveSql.T_NCHAR: + case HiveSql.T_NEW: + case HiveSql.T_NVARCHAR: + case HiveSql.T_NO: + case HiveSql.T_NOCOUNT: + case HiveSql.T_NOCOMPRESS: + case HiveSql.T_NOLOGGING: + case HiveSql.T_NONE: + case HiveSql.T_NOT: + case HiveSql.T_NOTFOUND: + case HiveSql.T_NUMERIC: + case HiveSql.T_NUMBER: + case HiveSql.T_OBJECT: + case HiveSql.T_OFF: + case HiveSql.T_ON: + case HiveSql.T_ONLY: + case HiveSql.T_OPEN: + case HiveSql.T_OR: + case HiveSql.T_ORDER: + case HiveSql.T_OUT: + case HiveSql.T_OUTER: + case HiveSql.T_OVER: + case HiveSql.T_OVERWRITE: + case HiveSql.T_OWNER: + case HiveSql.T_PACKAGE: + case HiveSql.T_PARTITION: + case HiveSql.T_PCTFREE: + case HiveSql.T_PCTUSED: + case HiveSql.T_PRECISION: + case HiveSql.T_PRESERVE: + case HiveSql.T_PRIMARY: + case HiveSql.T_PRINT: + case HiveSql.T_PROC: + case HiveSql.T_PROCEDURE: + case HiveSql.T_QUALIFY: + case HiveSql.T_QUERY_BAND: + case HiveSql.T_QUIT: + case HiveSql.T_QUOTED_IDENTIFIER: + case HiveSql.T_RAISE: + case HiveSql.T_REAL: + case HiveSql.T_REFERENCES: + case HiveSql.T_REGEXP: + case HiveSql.T_REPLACE: + case HiveSql.T_RESIGNAL: + case HiveSql.T_RESTRICT: + case HiveSql.T_RESULT: + case HiveSql.T_RESULT_SET_LOCATOR: + case HiveSql.T_RETURN: + case HiveSql.T_RETURNS: + case HiveSql.T_REVERSE: + case HiveSql.T_RIGHT: + case HiveSql.T_RLIKE: + case HiveSql.T_ROLE: + case HiveSql.T_ROLLBACK: + case HiveSql.T_ROW: + case HiveSql.T_ROWS: + case HiveSql.T_ROW_COUNT: + case HiveSql.T_RR: + case HiveSql.T_RS: + case HiveSql.T_PWD: + case HiveSql.T_TRIM: + case HiveSql.T_SCHEMA: + case HiveSql.T_SECOND: + case HiveSql.T_SECONDS: + case HiveSql.T_SECURITY: + case HiveSql.T_SEGMENT: + case HiveSql.T_SEL: + case HiveSql.T_SELECT: + case HiveSql.T_SET: + case HiveSql.T_SESSION: + case HiveSql.T_SESSIONS: + case HiveSql.T_SETS: + case HiveSql.T_SHARE: + case HiveSql.T_SIGNAL: + case HiveSql.T_SIMPLE_DOUBLE: + case HiveSql.T_SIMPLE_FLOAT: + case HiveSql.T_SMALLDATETIME: + case HiveSql.T_SMALLINT: + case HiveSql.T_SQL: + case HiveSql.T_SQLEXCEPTION: + case HiveSql.T_SQLINSERT: + case HiveSql.T_SQLSTATE: + case HiveSql.T_SQLWARNING: + case HiveSql.T_STATS: + case HiveSql.T_STATISTICS: + case HiveSql.T_STEP: + case HiveSql.T_STORAGE: + case HiveSql.T_STORED: + case HiveSql.T_STRING: + case HiveSql.T_SUBDIR: + case HiveSql.T_SUBSTRING: + case HiveSql.T_SUM: + case HiveSql.T_SUMMARY: + case HiveSql.T_SYS_REFCURSOR: + case HiveSql.T_TABLE: + case HiveSql.T_TABLESPACE: + case HiveSql.T_TEMPORARY: + case HiveSql.T_TERMINATED: + case HiveSql.T_TEXTIMAGE_ON: + case HiveSql.T_THEN: + case HiveSql.T_TIMESTAMP: + case HiveSql.T_TITLE: + case HiveSql.T_TO: + case HiveSql.T_TOP: + case HiveSql.T_TRANSACTION: + case HiveSql.T_TRUE: + case HiveSql.T_TRUNCATE: + case HiveSql.T_UNIQUE: + case HiveSql.T_UPDATE: + case HiveSql.T_UR: + case HiveSql.T_USE: + case HiveSql.T_USING: + case HiveSql.T_VALUE: + case HiveSql.T_VALUES: + case HiveSql.T_VAR: + case HiveSql.T_VARCHAR: + case HiveSql.T_VARCHAR2: + case HiveSql.T_VARYING: + case HiveSql.T_VOLATILE: + case HiveSql.T_WHILE: + case HiveSql.T_WITH: + case HiveSql.T_WITHOUT: + case HiveSql.T_WORK: + case HiveSql.T_XACT_ABORT: + case HiveSql.T_XML: + case HiveSql.T_YES: + case HiveSql.T_ACTIVITY_COUNT: + case HiveSql.T_CUME_DIST: + case HiveSql.T_CURRENT_DATE: + case HiveSql.T_CURRENT_TIMESTAMP: + case HiveSql.T_CURRENT_USER: + case HiveSql.T_DENSE_RANK: + case HiveSql.T_FIRST_VALUE: + case HiveSql.T_LAG: + case HiveSql.T_LAST_VALUE: + case HiveSql.T_LEAD: + case HiveSql.T_PART_COUNT: + case HiveSql.T_PART_LOC: + case HiveSql.T_RANK: + case HiveSql.T_ROW_NUMBER: + case HiveSql.T_STDEV: + case HiveSql.T_SYSDATE: + case HiveSql.T_VARIANCE: + case HiveSql.T_USER: + case HiveSql.L_ID: + this.state = 2504; this.table_name(); - this.state = 2509; + this.state = 2506; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,310,this._ctx); if(la_===1) { - this.state = 2508; + this.state = 2505; this.from_clause(); } break; - case HiveSqlParser.T_OPEN_P: - this.state = 2511; - this.match(HiveSqlParser.T_OPEN_P); - this.state = 2512; + case HiveSql.T_OPEN_P: + this.state = 2508; + this.match(HiveSql.T_OPEN_P); + this.state = 2509; this.select_stmt(); - this.state = 2513; - this.match(HiveSqlParser.T_CLOSE_P); + this.state = 2510; + this.match(HiveSql.T_CLOSE_P); break; default: throw new antlr4.error.NoViableAltException(this); } - this.state = 2521; + this.state = 2518; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,313,this._ctx); if(la_===1) { - this.state = 2518; + this.state = 2515; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,312,this._ctx); if(la_===1) { - this.state = 2517; - this.match(HiveSqlParser.T_AS); + this.state = 2514; + this.match(HiveSql.T_AS); } - this.state = 2520; + this.state = 2517; this.ident(); } @@ -27000,7 +27048,7 @@ function Update_upsertContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_update_upsert; + this.ruleIndex = HiveSql.RULE_update_upsert; return this; } @@ -27008,7 +27056,7 @@ Update_upsertContext.prototype = Object.create(antlr4.ParserRuleContext.prototyp Update_upsertContext.prototype.constructor = Update_upsertContext; Update_upsertContext.prototype.T_ELSE = function() { - return this.getToken(HiveSqlParser.T_ELSE, 0); + return this.getToken(HiveSql.T_ELSE, 0); }; Update_upsertContext.prototype.insert_stmt = function() { @@ -27038,17 +27086,17 @@ Update_upsertContext.prototype.accept = function(visitor) { -HiveSqlParser.Update_upsertContext = Update_upsertContext; +HiveSql.Update_upsertContext = Update_upsertContext; -HiveSqlParser.prototype.update_upsert = function() { +HiveSql.prototype.update_upsert = function() { var localctx = new Update_upsertContext(this, this._ctx, this.state); - this.enterRule(localctx, 350, HiveSqlParser.RULE_update_upsert); + this.enterRule(localctx, 350, HiveSql.RULE_update_upsert); try { this.enterOuterAlt(localctx, 1); - this.state = 2523; - this.match(HiveSqlParser.T_ELSE); - this.state = 2524; + this.state = 2520; + this.match(HiveSql.T_ELSE); + this.state = 2521; this.insert_stmt(); } catch (re) { if(re instanceof antlr4.error.RecognitionException) { @@ -27074,7 +27122,7 @@ function Merge_stmtContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_merge_stmt; + this.ruleIndex = HiveSql.RULE_merge_stmt; return this; } @@ -27082,11 +27130,11 @@ Merge_stmtContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); Merge_stmtContext.prototype.constructor = Merge_stmtContext; Merge_stmtContext.prototype.T_MERGE = function() { - return this.getToken(HiveSqlParser.T_MERGE, 0); + return this.getToken(HiveSql.T_MERGE, 0); }; Merge_stmtContext.prototype.T_INTO = function() { - return this.getToken(HiveSqlParser.T_INTO, 0); + return this.getToken(HiveSql.T_INTO, 0); }; Merge_stmtContext.prototype.merge_table = function(i) { @@ -27101,11 +27149,11 @@ Merge_stmtContext.prototype.merge_table = function(i) { }; Merge_stmtContext.prototype.T_USING = function() { - return this.getToken(HiveSqlParser.T_USING, 0); + return this.getToken(HiveSql.T_USING, 0); }; Merge_stmtContext.prototype.T_ON = function() { - return this.getToken(HiveSqlParser.T_ON, 0); + return this.getToken(HiveSql.T_ON, 0); }; Merge_stmtContext.prototype.bool_expr = function() { @@ -27146,41 +27194,41 @@ Merge_stmtContext.prototype.accept = function(visitor) { -HiveSqlParser.Merge_stmtContext = Merge_stmtContext; +HiveSql.Merge_stmtContext = Merge_stmtContext; -HiveSqlParser.prototype.merge_stmt = function() { +HiveSql.prototype.merge_stmt = function() { var localctx = new Merge_stmtContext(this, this._ctx, this.state); - this.enterRule(localctx, 352, HiveSqlParser.RULE_merge_stmt); + this.enterRule(localctx, 352, HiveSql.RULE_merge_stmt); try { this.enterOuterAlt(localctx, 1); + this.state = 2523; + this.match(HiveSql.T_MERGE); + this.state = 2524; + this.match(HiveSql.T_INTO); + this.state = 2525; + this.merge_table(); this.state = 2526; - this.match(HiveSqlParser.T_MERGE); + this.match(HiveSql.T_USING); this.state = 2527; - this.match(HiveSqlParser.T_INTO); + this.merge_table(); this.state = 2528; - this.merge_table(); + this.match(HiveSql.T_ON); this.state = 2529; - this.match(HiveSqlParser.T_USING); - this.state = 2530; - this.merge_table(); - this.state = 2531; - this.match(HiveSqlParser.T_ON); - this.state = 2532; this.bool_expr(0); - this.state = 2534; + this.state = 2531; this._errHandler.sync(this); var _alt = 1; do { switch (_alt) { case 1: - this.state = 2533; + this.state = 2530; this.merge_condition(); break; default: throw new antlr4.error.NoViableAltException(this); } - this.state = 2536; + this.state = 2533; this._errHandler.sync(this); _alt = this._interp.adaptivePredict(this._input,314, this._ctx); } while ( _alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER ); @@ -27208,7 +27256,7 @@ function Merge_tableContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_merge_table; + this.ruleIndex = HiveSql.RULE_merge_table; return this; } @@ -27224,7 +27272,7 @@ Merge_tableContext.prototype.ident = function() { }; Merge_tableContext.prototype.T_OPEN_P = function() { - return this.getToken(HiveSqlParser.T_OPEN_P, 0); + return this.getToken(HiveSql.T_OPEN_P, 0); }; Merge_tableContext.prototype.select_stmt = function() { @@ -27232,11 +27280,11 @@ Merge_tableContext.prototype.select_stmt = function() { }; Merge_tableContext.prototype.T_CLOSE_P = function() { - return this.getToken(HiveSqlParser.T_CLOSE_P, 0); + return this.getToken(HiveSql.T_CLOSE_P, 0); }; Merge_tableContext.prototype.T_AS = function() { - return this.getToken(HiveSqlParser.T_AS, 0); + return this.getToken(HiveSql.T_AS, 0); }; Merge_tableContext.prototype.enterRule = function(listener) { @@ -27262,364 +27310,363 @@ Merge_tableContext.prototype.accept = function(visitor) { -HiveSqlParser.Merge_tableContext = Merge_tableContext; +HiveSql.Merge_tableContext = Merge_tableContext; -HiveSqlParser.prototype.merge_table = function() { +HiveSql.prototype.merge_table = function() { var localctx = new Merge_tableContext(this, this._ctx, this.state); - this.enterRule(localctx, 354, HiveSqlParser.RULE_merge_table); + this.enterRule(localctx, 354, HiveSql.RULE_merge_table); try { this.enterOuterAlt(localctx, 1); - this.state = 2543; + this.state = 2540; this._errHandler.sync(this); switch(this._input.LA(1)) { - case HiveSqlParser.T__8: - case HiveSqlParser.T_GO: - case HiveSqlParser.T_BEGIN: - case HiveSqlParser.T_EXCEPTION: - case HiveSqlParser.L_ID: - case HiveSqlParser.T_THEN: - case HiveSqlParser.T_SET: - case HiveSqlParser.T_ALLOCATE: - case HiveSqlParser.T_CURSOR: - case HiveSqlParser.T_FOR: - case HiveSqlParser.T_RESULT: - case HiveSqlParser.T_PROCEDURE: - case HiveSqlParser.T_ASSOCIATE: - case HiveSqlParser.T_LOCATOR: - case HiveSqlParser.T_LOCATORS: - case HiveSqlParser.T_WITH: - case HiveSqlParser.T_TRANSACTION: - case HiveSqlParser.T_BREAK: - case HiveSqlParser.T_CALL: - case HiveSqlParser.T_DECLARE: - case HiveSqlParser.T_AS: - case HiveSqlParser.T_CONSTANT: - case HiveSqlParser.T_CONDITION: - case HiveSqlParser.T_IS: - case HiveSqlParser.T_RETURN: - case HiveSqlParser.T_ONLY: - case HiveSqlParser.T_TO: - case HiveSqlParser.T_CALLER: - case HiveSqlParser.T_CLIENT: - case HiveSqlParser.T_WITHOUT: - case HiveSqlParser.T_CONTINUE: - case HiveSqlParser.T_EXIT: - case HiveSqlParser.T_HANDLER: - case HiveSqlParser.T_SQLEXCEPTION: - case HiveSqlParser.T_SQLWARNING: - case HiveSqlParser.T_NOT: - case HiveSqlParser.T_FOUND: - case HiveSqlParser.T_GLOBAL: - case HiveSqlParser.T_TEMPORARY: - case HiveSqlParser.T_TABLE: - case HiveSqlParser.T_CREATE: - case HiveSqlParser.T_IF: - case HiveSqlParser.T_EXISTS: - case HiveSqlParser.T_LOCAL: - case HiveSqlParser.T_MULTISET: - case HiveSqlParser.T_VOLATILE: - case HiveSqlParser.T_LIKE: - case HiveSqlParser.T_CONSTRAINT: - case HiveSqlParser.T_PRIMARY: - case HiveSqlParser.T_KEY: - case HiveSqlParser.T_UNIQUE: - case HiveSqlParser.T_REFERENCES: - case HiveSqlParser.T_IDENTITY: - case HiveSqlParser.T_AUTO_INCREMENT: - case HiveSqlParser.T_ENABLE: - case HiveSqlParser.T_CLUSTERED: - case HiveSqlParser.T_ASC: - case HiveSqlParser.T_DESC: - case HiveSqlParser.T_FOREIGN: - case HiveSqlParser.T_ON: - case HiveSqlParser.T_UPDATE: - case HiveSqlParser.T_DELETE: - case HiveSqlParser.T_NO: - case HiveSqlParser.T_ACTION: - case HiveSqlParser.T_RESTRICT: - case HiveSqlParser.T_DEFAULT: - case HiveSqlParser.T_CASCADE: - case HiveSqlParser.T_LOG: - case HiveSqlParser.T_FALLBACK: - case HiveSqlParser.T_COMMIT: - case HiveSqlParser.T_PRESERVE: - case HiveSqlParser.T_ROWS: - case HiveSqlParser.T_SEGMENT: - case HiveSqlParser.T_CREATION: - case HiveSqlParser.T_IMMEDIATE: - case HiveSqlParser.T_DEFERRED: - case HiveSqlParser.T_PCTFREE: - case HiveSqlParser.T_PCTUSED: - case HiveSqlParser.T_INITRANS: - case HiveSqlParser.T_MAXTRANS: - case HiveSqlParser.T_NOCOMPRESS: - case HiveSqlParser.T_LOGGING: - case HiveSqlParser.T_NOLOGGING: - case HiveSqlParser.T_STORAGE: - case HiveSqlParser.T_TABLESPACE: - case HiveSqlParser.T_INDEX: - case HiveSqlParser.T_IN: - case HiveSqlParser.T_REPLACE: - case HiveSqlParser.T_DISTRIBUTE: - case HiveSqlParser.T_BY: - case HiveSqlParser.T_HASH: - case HiveSqlParser.T_LOGGED: - case HiveSqlParser.T_COMPRESS: - case HiveSqlParser.T_YES: - case HiveSqlParser.T_DEFINITION: - case HiveSqlParser.T_DROP: - case HiveSqlParser.T_DATA: - case HiveSqlParser.T_STORED: - case HiveSqlParser.T_ROW: - case HiveSqlParser.T_FORMAT: - case HiveSqlParser.T_DELIMITED: - case HiveSqlParser.T_FIELDS: - case HiveSqlParser.T_TERMINATED: - case HiveSqlParser.T_ESCAPED: - case HiveSqlParser.T_COLLECTION: - case HiveSqlParser.T_ITEMS: - case HiveSqlParser.T_MAP: - case HiveSqlParser.T_KEYS: - case HiveSqlParser.T_LINES: - case HiveSqlParser.T_DEFINED: - case HiveSqlParser.T_TEXTIMAGE_ON: - case HiveSqlParser.T_COMMENT: - case HiveSqlParser.T_CHARACTER: - case HiveSqlParser.T_CHARSET: - case HiveSqlParser.T_ENGINE: - case HiveSqlParser.T_ALTER: - case HiveSqlParser.T_ADD2: - case HiveSqlParser.T_CHAR: - case HiveSqlParser.T_BIGINT: - case HiveSqlParser.T_BINARY_DOUBLE: - case HiveSqlParser.T_BINARY_FLOAT: - case HiveSqlParser.T_BIT: - case HiveSqlParser.T_DATE: - case HiveSqlParser.T_DATETIME: - case HiveSqlParser.T_DEC: - case HiveSqlParser.T_DECIMAL: - case HiveSqlParser.T_DOUBLE: - case HiveSqlParser.T_PRECISION: - case HiveSqlParser.T_FLOAT: - case HiveSqlParser.T_INT: - case HiveSqlParser.T_INT2: - case HiveSqlParser.T_INT4: - case HiveSqlParser.T_INT8: - case HiveSqlParser.T_INTEGER: - case HiveSqlParser.T_NCHAR: - case HiveSqlParser.T_NVARCHAR: - case HiveSqlParser.T_NUMBER: - case HiveSqlParser.T_NUMERIC: - case HiveSqlParser.T_REAL: - case HiveSqlParser.T_RESULT_SET_LOCATOR: - case HiveSqlParser.T_VARYING: - case HiveSqlParser.T_SIMPLE_FLOAT: - case HiveSqlParser.T_SIMPLE_DOUBLE: - case HiveSqlParser.T_SMALLINT: - case HiveSqlParser.T_SMALLDATETIME: - case HiveSqlParser.T_STRING: - case HiveSqlParser.T_SYS_REFCURSOR: - case HiveSqlParser.T_TIMESTAMP: - case HiveSqlParser.T_VARCHAR: - case HiveSqlParser.T_VARCHAR2: - case HiveSqlParser.T_XML: - case HiveSqlParser.T_MAX: - case HiveSqlParser.T_BYTE: - case HiveSqlParser.T_CASESPECIFIC: - case HiveSqlParser.T_CS: - case HiveSqlParser.T_DATABASE: - case HiveSqlParser.T_SCHEMA: - case HiveSqlParser.T_LOCATION: - case HiveSqlParser.T_OR: - case HiveSqlParser.T_FUNCTION: - case HiveSqlParser.T_RETURNS: - case HiveSqlParser.T_PACKAGE: - case HiveSqlParser.T_PROC: - case HiveSqlParser.T_BODY: - case HiveSqlParser.T_OUT: - case HiveSqlParser.T_INOUT: - case HiveSqlParser.T_LANGUAGE: - case HiveSqlParser.T_SQL: - case HiveSqlParser.T_SECURITY: - case HiveSqlParser.T_CREATOR: - case HiveSqlParser.T_DEFINER: - case HiveSqlParser.T_INVOKER: - case HiveSqlParser.T_OWNER: - case HiveSqlParser.T_DYNAMIC: - case HiveSqlParser.T_SETS: - case HiveSqlParser.T_EXEC: - case HiveSqlParser.T_EXECUTE: - case HiveSqlParser.T_INTO: - case HiveSqlParser.T_INCLUDE: - case HiveSqlParser.T_INSERT: - case HiveSqlParser.T_OVERWRITE: - case HiveSqlParser.T_VALUES: - case HiveSqlParser.T_DIRECTORY: - case HiveSqlParser.T_GET: - case HiveSqlParser.T_DIAGNOSTICS: - case HiveSqlParser.T_MESSAGE_TEXT: - case HiveSqlParser.T_ROW_COUNT: - case HiveSqlParser.T_GRANT: - case HiveSqlParser.T_ROLE: - case HiveSqlParser.T_LEAVE: - case HiveSqlParser.T_OBJECT: - case HiveSqlParser.T_AT: - case HiveSqlParser.T_OPEN: - case HiveSqlParser.T_FETCH: - case HiveSqlParser.T_FROM: - case HiveSqlParser.T_COLLECT: - case HiveSqlParser.T_STATISTICS: - case HiveSqlParser.T_STATS: - case HiveSqlParser.T_COLUMN: - case HiveSqlParser.T_CLOSE: - case HiveSqlParser.T_CMP: - case HiveSqlParser.T_SUM: - case HiveSqlParser.T_COPY: - case HiveSqlParser.T_HDFS: - case HiveSqlParser.T_BATCHSIZE: - case HiveSqlParser.T_DELIMITER: - case HiveSqlParser.T_SQLINSERT: - case HiveSqlParser.T_IGNORE: - case HiveSqlParser.T_WORK: - case HiveSqlParser.T_PRINT: - case HiveSqlParser.T_QUIT: - case HiveSqlParser.T_RAISE: - case HiveSqlParser.T_RESIGNAL: - case HiveSqlParser.T_SQLSTATE: - case HiveSqlParser.T_VALUE: - case HiveSqlParser.T_ROLLBACK: - case HiveSqlParser.T_CURRENT: - case HiveSqlParser.T_CURRENT_SCHEMA: - case HiveSqlParser.T_ANSI_NULLS: - case HiveSqlParser.T_ANSI_PADDING: - case HiveSqlParser.T_NOCOUNT: - case HiveSqlParser.T_QUOTED_IDENTIFIER: - case HiveSqlParser.T_XACT_ABORT: - case HiveSqlParser.T_OFF: - case HiveSqlParser.T_QUERY_BAND: - case HiveSqlParser.T_NONE: - case HiveSqlParser.T_SESSION: - case HiveSqlParser.T_SIGNAL: - case HiveSqlParser.T_SUMMARY: - case HiveSqlParser.T_TOP: - case HiveSqlParser.T_LIMIT: - case HiveSqlParser.T_TRUNCATE: - case HiveSqlParser.T_USE: - case HiveSqlParser.T_WHILE: - case HiveSqlParser.T_DO: - case HiveSqlParser.T_LOOP: - case HiveSqlParser.T_REVERSE: - case HiveSqlParser.T_STEP: - case HiveSqlParser.T_USING: - case HiveSqlParser.T_ALL: - case HiveSqlParser.T_EXCEPT: - case HiveSqlParser.T_INTERSECT: - case HiveSqlParser.T_SELECT: - case HiveSqlParser.T_SEL: - case HiveSqlParser.T_DISTINCT: - case HiveSqlParser.T_TITLE: - case HiveSqlParser.T_INNER: - case HiveSqlParser.T_JOIN: - case HiveSqlParser.T_LEFT: - case HiveSqlParser.T_RIGHT: - case HiveSqlParser.T_FULL: - case HiveSqlParser.T_OUTER: - case HiveSqlParser.T_GROUP: - case HiveSqlParser.T_HAVING: - case HiveSqlParser.T_QUALIFY: - case HiveSqlParser.T_ORDER: - case HiveSqlParser.T_RR: - case HiveSqlParser.T_RS: - case HiveSqlParser.T_UR: - case HiveSqlParser.T_AND: - case HiveSqlParser.T_KEEP: - case HiveSqlParser.T_EXCLUSIVE: - case HiveSqlParser.T_SHARE: - case HiveSqlParser.T_LOCKS: - case HiveSqlParser.T_MERGE: - case HiveSqlParser.T_MATCHED: - case HiveSqlParser.T_DESCRIBE: - case HiveSqlParser.T_BETWEEN: - case HiveSqlParser.T_RLIKE: - case HiveSqlParser.T_REGEXP: - case HiveSqlParser.T_INTERVAL: - case HiveSqlParser.T_DAY: - case HiveSqlParser.T_DAYS: - case HiveSqlParser.T_MICROSECOND: - case HiveSqlParser.T_MICROSECONDS: - case HiveSqlParser.T_SECOND: - case HiveSqlParser.T_SECONDS: - case HiveSqlParser.T_CONCAT: - case HiveSqlParser.T_CASE: - case HiveSqlParser.T_ISOPEN: - case HiveSqlParser.T_NOTFOUND: - case HiveSqlParser.T_AVG: - case HiveSqlParser.T_COUNT: - case HiveSqlParser.T_COUNT_BIG: - case HiveSqlParser.T_CUME_DIST: - case HiveSqlParser.T_DENSE_RANK: - case HiveSqlParser.T_FIRST_VALUE: - case HiveSqlParser.T_LAG: - case HiveSqlParser.T_LAST_VALUE: - case HiveSqlParser.T_LEAD: - case HiveSqlParser.T_MIN: - case HiveSqlParser.T_RANK: - case HiveSqlParser.T_ROW_NUMBER: - case HiveSqlParser.T_STDEV: - case HiveSqlParser.T_VAR: - case HiveSqlParser.T_VARIANCE: - case HiveSqlParser.T_OVER: - case HiveSqlParser.T_PARTITION: - case HiveSqlParser.T_ACTIVITY_COUNT: - case HiveSqlParser.T_CAST: - case HiveSqlParser.T_CURRENT_DATE: - case HiveSqlParser.T_CURRENT_TIMESTAMP: - case HiveSqlParser.T_CURRENT_USER: - case HiveSqlParser.T_USER: - case HiveSqlParser.T_PART_COUNT: - case HiveSqlParser.T_PART_LOC: - case HiveSqlParser.T_TRIM: - case HiveSqlParser.T_SUBSTRING: - case HiveSqlParser.T_SYSDATE: - case HiveSqlParser.T_HIVE: - case HiveSqlParser.T_HOST: - case HiveSqlParser.T_TRUE: - case HiveSqlParser.T_FALSE: - case HiveSqlParser.T_DIR: - case HiveSqlParser.T_FILE: - case HiveSqlParser.T_FILES: - case HiveSqlParser.T_NEW: - case HiveSqlParser.T_PWD: - case HiveSqlParser.T_SESSIONS: - case HiveSqlParser.T_SUBDIR: - this.state = 2538; + case HiveSql.T_ACTION: + case HiveSql.T_ADD2: + case HiveSql.T_ALL: + case HiveSql.T_ALLOCATE: + case HiveSql.T_ALTER: + case HiveSql.T_AND: + case HiveSql.T_ANSI_NULLS: + case HiveSql.T_ANSI_PADDING: + case HiveSql.T_AS: + case HiveSql.T_ASC: + case HiveSql.T_ASSOCIATE: + case HiveSql.T_AT: + case HiveSql.T_AUTO_INCREMENT: + case HiveSql.T_AVG: + case HiveSql.T_BATCHSIZE: + case HiveSql.T_BEGIN: + case HiveSql.T_BETWEEN: + case HiveSql.T_BIGINT: + case HiveSql.T_BINARY_DOUBLE: + case HiveSql.T_BINARY_FLOAT: + case HiveSql.T_BIT: + case HiveSql.T_BODY: + case HiveSql.T_BREAK: + case HiveSql.T_BY: + case HiveSql.T_BYTE: + case HiveSql.T_CALL: + case HiveSql.T_CALLER: + case HiveSql.T_CASCADE: + case HiveSql.T_CASE: + case HiveSql.T_CASESPECIFIC: + case HiveSql.T_CAST: + case HiveSql.T_CHAR: + case HiveSql.T_CHARACTER: + case HiveSql.T_CHARSET: + case HiveSql.T_CLIENT: + case HiveSql.T_CLOSE: + case HiveSql.T_CLUSTERED: + case HiveSql.T_CMP: + case HiveSql.T_COLLECT: + case HiveSql.T_COLLECTION: + case HiveSql.T_COLUMN: + case HiveSql.T_COMMENT: + case HiveSql.T_CONSTANT: + case HiveSql.T_COMMIT: + case HiveSql.T_COMPRESS: + case HiveSql.T_CONCAT: + case HiveSql.T_CONDITION: + case HiveSql.T_CONSTRAINT: + case HiveSql.T_CONTINUE: + case HiveSql.T_COPY: + case HiveSql.T_COUNT: + case HiveSql.T_COUNT_BIG: + case HiveSql.T_CREATE: + case HiveSql.T_CREATION: + case HiveSql.T_CREATOR: + case HiveSql.T_CS: + case HiveSql.T_CURRENT: + case HiveSql.T_CURRENT_SCHEMA: + case HiveSql.T_CURSOR: + case HiveSql.T_DATABASE: + case HiveSql.T_DATA: + case HiveSql.T_DATE: + case HiveSql.T_DATETIME: + case HiveSql.T_DAY: + case HiveSql.T_DAYS: + case HiveSql.T_DEC: + case HiveSql.T_DECIMAL: + case HiveSql.T_DECLARE: + case HiveSql.T_DEFAULT: + case HiveSql.T_DEFERRED: + case HiveSql.T_DEFINED: + case HiveSql.T_DEFINER: + case HiveSql.T_DEFINITION: + case HiveSql.T_DELETE: + case HiveSql.T_DELIMITED: + case HiveSql.T_DELIMITER: + case HiveSql.T_DESC: + case HiveSql.T_DESCRIBE: + case HiveSql.T_DIAGNOSTICS: + case HiveSql.T_DIR: + case HiveSql.T_DIRECTORY: + case HiveSql.T_DISTINCT: + case HiveSql.T_DISTRIBUTE: + case HiveSql.T_DO: + case HiveSql.T_DOUBLE: + case HiveSql.T_DROP: + case HiveSql.T_DYNAMIC: + case HiveSql.T_ENABLE: + case HiveSql.T_ENGINE: + case HiveSql.T_ESCAPED: + case HiveSql.T_EXCEPT: + case HiveSql.T_EXEC: + case HiveSql.T_EXECUTE: + case HiveSql.T_EXCEPTION: + case HiveSql.T_EXCLUSIVE: + case HiveSql.T_EXISTS: + case HiveSql.T_EXIT: + case HiveSql.T_FALLBACK: + case HiveSql.T_FALSE: + case HiveSql.T_FETCH: + case HiveSql.T_FIELDS: + case HiveSql.T_FILE: + case HiveSql.T_FILES: + case HiveSql.T_FLOAT: + case HiveSql.T_FOR: + case HiveSql.T_FOREIGN: + case HiveSql.T_FORMAT: + case HiveSql.T_FOUND: + case HiveSql.T_FROM: + case HiveSql.T_FULL: + case HiveSql.T_FUNCTION: + case HiveSql.T_GET: + case HiveSql.T_GLOBAL: + case HiveSql.T_GO: + case HiveSql.T_GRANT: + case HiveSql.T_GROUP: + case HiveSql.T_HANDLER: + case HiveSql.T_HASH: + case HiveSql.T_HAVING: + case HiveSql.T_HDFS: + case HiveSql.T_HIVE: + case HiveSql.T_HOST: + case HiveSql.T_IDENTITY: + case HiveSql.T_IF: + case HiveSql.T_IGNORE: + case HiveSql.T_IMMEDIATE: + case HiveSql.T_IN: + case HiveSql.T_INCLUDE: + case HiveSql.T_INDEX: + case HiveSql.T_INITRANS: + case HiveSql.T_INNER: + case HiveSql.T_INOUT: + case HiveSql.T_INSERT: + case HiveSql.T_INT: + case HiveSql.T_INT2: + case HiveSql.T_INT4: + case HiveSql.T_INT8: + case HiveSql.T_INTEGER: + case HiveSql.T_INTERSECT: + case HiveSql.T_INTERVAL: + case HiveSql.T_INTO: + case HiveSql.T_INVOKER: + case HiveSql.T_IS: + case HiveSql.T_ISOPEN: + case HiveSql.T_ITEMS: + case HiveSql.T_JOIN: + case HiveSql.T_KEEP: + case HiveSql.T_KEY: + case HiveSql.T_KEYS: + case HiveSql.T_LANGUAGE: + case HiveSql.T_LEAVE: + case HiveSql.T_LEFT: + case HiveSql.T_LIKE: + case HiveSql.T_LIMIT: + case HiveSql.T_LINES: + case HiveSql.T_LOCAL: + case HiveSql.T_LOCATION: + case HiveSql.T_LOCATOR: + case HiveSql.T_LOCATORS: + case HiveSql.T_LOCKS: + case HiveSql.T_LOG: + case HiveSql.T_LOGGED: + case HiveSql.T_LOGGING: + case HiveSql.T_LOOP: + case HiveSql.T_MAP: + case HiveSql.T_MATCHED: + case HiveSql.T_MAX: + case HiveSql.T_MAXTRANS: + case HiveSql.T_MERGE: + case HiveSql.T_MESSAGE_TEXT: + case HiveSql.T_MICROSECOND: + case HiveSql.T_MICROSECONDS: + case HiveSql.T_MIN: + case HiveSql.T_MULTISET: + case HiveSql.T_NCHAR: + case HiveSql.T_NEW: + case HiveSql.T_NVARCHAR: + case HiveSql.T_NO: + case HiveSql.T_NOCOUNT: + case HiveSql.T_NOCOMPRESS: + case HiveSql.T_NOLOGGING: + case HiveSql.T_NONE: + case HiveSql.T_NOT: + case HiveSql.T_NOTFOUND: + case HiveSql.T_NUMERIC: + case HiveSql.T_NUMBER: + case HiveSql.T_OBJECT: + case HiveSql.T_OFF: + case HiveSql.T_ON: + case HiveSql.T_ONLY: + case HiveSql.T_OPEN: + case HiveSql.T_OR: + case HiveSql.T_ORDER: + case HiveSql.T_OUT: + case HiveSql.T_OUTER: + case HiveSql.T_OVER: + case HiveSql.T_OVERWRITE: + case HiveSql.T_OWNER: + case HiveSql.T_PACKAGE: + case HiveSql.T_PARTITION: + case HiveSql.T_PCTFREE: + case HiveSql.T_PCTUSED: + case HiveSql.T_PRECISION: + case HiveSql.T_PRESERVE: + case HiveSql.T_PRIMARY: + case HiveSql.T_PRINT: + case HiveSql.T_PROC: + case HiveSql.T_PROCEDURE: + case HiveSql.T_QUALIFY: + case HiveSql.T_QUERY_BAND: + case HiveSql.T_QUIT: + case HiveSql.T_QUOTED_IDENTIFIER: + case HiveSql.T_RAISE: + case HiveSql.T_REAL: + case HiveSql.T_REFERENCES: + case HiveSql.T_REGEXP: + case HiveSql.T_REPLACE: + case HiveSql.T_RESIGNAL: + case HiveSql.T_RESTRICT: + case HiveSql.T_RESULT: + case HiveSql.T_RESULT_SET_LOCATOR: + case HiveSql.T_RETURN: + case HiveSql.T_RETURNS: + case HiveSql.T_REVERSE: + case HiveSql.T_RIGHT: + case HiveSql.T_RLIKE: + case HiveSql.T_ROLE: + case HiveSql.T_ROLLBACK: + case HiveSql.T_ROW: + case HiveSql.T_ROWS: + case HiveSql.T_ROW_COUNT: + case HiveSql.T_RR: + case HiveSql.T_RS: + case HiveSql.T_PWD: + case HiveSql.T_TRIM: + case HiveSql.T_SCHEMA: + case HiveSql.T_SECOND: + case HiveSql.T_SECONDS: + case HiveSql.T_SECURITY: + case HiveSql.T_SEGMENT: + case HiveSql.T_SEL: + case HiveSql.T_SELECT: + case HiveSql.T_SET: + case HiveSql.T_SESSION: + case HiveSql.T_SESSIONS: + case HiveSql.T_SETS: + case HiveSql.T_SHARE: + case HiveSql.T_SIGNAL: + case HiveSql.T_SIMPLE_DOUBLE: + case HiveSql.T_SIMPLE_FLOAT: + case HiveSql.T_SMALLDATETIME: + case HiveSql.T_SMALLINT: + case HiveSql.T_SQL: + case HiveSql.T_SQLEXCEPTION: + case HiveSql.T_SQLINSERT: + case HiveSql.T_SQLSTATE: + case HiveSql.T_SQLWARNING: + case HiveSql.T_STATS: + case HiveSql.T_STATISTICS: + case HiveSql.T_STEP: + case HiveSql.T_STORAGE: + case HiveSql.T_STORED: + case HiveSql.T_STRING: + case HiveSql.T_SUBDIR: + case HiveSql.T_SUBSTRING: + case HiveSql.T_SUM: + case HiveSql.T_SUMMARY: + case HiveSql.T_SYS_REFCURSOR: + case HiveSql.T_TABLE: + case HiveSql.T_TABLESPACE: + case HiveSql.T_TEMPORARY: + case HiveSql.T_TERMINATED: + case HiveSql.T_TEXTIMAGE_ON: + case HiveSql.T_THEN: + case HiveSql.T_TIMESTAMP: + case HiveSql.T_TITLE: + case HiveSql.T_TO: + case HiveSql.T_TOP: + case HiveSql.T_TRANSACTION: + case HiveSql.T_TRUE: + case HiveSql.T_TRUNCATE: + case HiveSql.T_UNIQUE: + case HiveSql.T_UPDATE: + case HiveSql.T_UR: + case HiveSql.T_USE: + case HiveSql.T_USING: + case HiveSql.T_VALUE: + case HiveSql.T_VALUES: + case HiveSql.T_VAR: + case HiveSql.T_VARCHAR: + case HiveSql.T_VARCHAR2: + case HiveSql.T_VARYING: + case HiveSql.T_VOLATILE: + case HiveSql.T_WHILE: + case HiveSql.T_WITH: + case HiveSql.T_WITHOUT: + case HiveSql.T_WORK: + case HiveSql.T_XACT_ABORT: + case HiveSql.T_XML: + case HiveSql.T_YES: + case HiveSql.T_ACTIVITY_COUNT: + case HiveSql.T_CUME_DIST: + case HiveSql.T_CURRENT_DATE: + case HiveSql.T_CURRENT_TIMESTAMP: + case HiveSql.T_CURRENT_USER: + case HiveSql.T_DENSE_RANK: + case HiveSql.T_FIRST_VALUE: + case HiveSql.T_LAG: + case HiveSql.T_LAST_VALUE: + case HiveSql.T_LEAD: + case HiveSql.T_PART_COUNT: + case HiveSql.T_PART_LOC: + case HiveSql.T_RANK: + case HiveSql.T_ROW_NUMBER: + case HiveSql.T_STDEV: + case HiveSql.T_SYSDATE: + case HiveSql.T_VARIANCE: + case HiveSql.T_USER: + case HiveSql.L_ID: + this.state = 2535; this.table_name(); break; - case HiveSqlParser.T_OPEN_P: - this.state = 2539; - this.match(HiveSqlParser.T_OPEN_P); - this.state = 2540; + case HiveSql.T_OPEN_P: + this.state = 2536; + this.match(HiveSql.T_OPEN_P); + this.state = 2537; this.select_stmt(); - this.state = 2541; - this.match(HiveSqlParser.T_CLOSE_P); + this.state = 2538; + this.match(HiveSql.T_CLOSE_P); break; default: throw new antlr4.error.NoViableAltException(this); } - this.state = 2549; + this.state = 2546; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,317,this._ctx); if(la_===1) { - this.state = 2546; + this.state = 2543; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,316,this._ctx); if(la_===1) { - this.state = 2545; - this.match(HiveSqlParser.T_AS); + this.state = 2542; + this.match(HiveSql.T_AS); } - this.state = 2548; + this.state = 2545; this.ident(); } @@ -27647,7 +27694,7 @@ function Merge_conditionContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_merge_condition; + this.ruleIndex = HiveSql.RULE_merge_condition; return this; } @@ -27655,15 +27702,15 @@ Merge_conditionContext.prototype = Object.create(antlr4.ParserRuleContext.protot Merge_conditionContext.prototype.constructor = Merge_conditionContext; Merge_conditionContext.prototype.T_WHEN = function() { - return this.getToken(HiveSqlParser.T_WHEN, 0); + return this.getToken(HiveSql.T_WHEN, 0); }; Merge_conditionContext.prototype.T_MATCHED = function() { - return this.getToken(HiveSqlParser.T_MATCHED, 0); + return this.getToken(HiveSql.T_MATCHED, 0); }; Merge_conditionContext.prototype.T_THEN = function() { - return this.getToken(HiveSqlParser.T_THEN, 0); + return this.getToken(HiveSql.T_THEN, 0); }; Merge_conditionContext.prototype.merge_action = function() { @@ -27671,11 +27718,11 @@ Merge_conditionContext.prototype.merge_action = function() { }; Merge_conditionContext.prototype.T_NOT = function() { - return this.getToken(HiveSqlParser.T_NOT, 0); + return this.getToken(HiveSql.T_NOT, 0); }; Merge_conditionContext.prototype.T_AND = function() { - return this.getToken(HiveSqlParser.T_AND, 0); + return this.getToken(HiveSql.T_AND, 0); }; Merge_conditionContext.prototype.bool_expr = function() { @@ -27683,11 +27730,11 @@ Merge_conditionContext.prototype.bool_expr = function() { }; Merge_conditionContext.prototype.T_ELSE = function() { - return this.getToken(HiveSqlParser.T_ELSE, 0); + return this.getToken(HiveSql.T_ELSE, 0); }; Merge_conditionContext.prototype.T_IGNORE = function() { - return this.getToken(HiveSqlParser.T_IGNORE, 0); + return this.getToken(HiveSql.T_IGNORE, 0); }; Merge_conditionContext.prototype.enterRule = function(listener) { @@ -27713,52 +27760,52 @@ Merge_conditionContext.prototype.accept = function(visitor) { -HiveSqlParser.Merge_conditionContext = Merge_conditionContext; +HiveSql.Merge_conditionContext = Merge_conditionContext; -HiveSqlParser.prototype.merge_condition = function() { +HiveSql.prototype.merge_condition = function() { var localctx = new Merge_conditionContext(this, this._ctx, this.state); - this.enterRule(localctx, 356, HiveSqlParser.RULE_merge_condition); + this.enterRule(localctx, 356, HiveSql.RULE_merge_condition); var _la = 0; // Token type try { - this.state = 2564; + this.state = 2561; this._errHandler.sync(this); switch(this._input.LA(1)) { - case HiveSqlParser.T_WHEN: + case HiveSql.T_WHEN: this.enterOuterAlt(localctx, 1); - this.state = 2551; - this.match(HiveSqlParser.T_WHEN); - this.state = 2553; + this.state = 2548; + this.match(HiveSql.T_WHEN); + this.state = 2550; this._errHandler.sync(this); _la = this._input.LA(1); - if(_la===HiveSqlParser.T_NOT) { - this.state = 2552; - this.match(HiveSqlParser.T_NOT); + if(_la===HiveSql.T_NOT) { + this.state = 2549; + this.match(HiveSql.T_NOT); } + this.state = 2552; + this.match(HiveSql.T_MATCHED); this.state = 2555; - this.match(HiveSqlParser.T_MATCHED); - this.state = 2558; this._errHandler.sync(this); _la = this._input.LA(1); - if(_la===HiveSqlParser.T_AND) { - this.state = 2556; - this.match(HiveSqlParser.T_AND); - this.state = 2557; + if(_la===HiveSql.T_AND) { + this.state = 2553; + this.match(HiveSql.T_AND); + this.state = 2554; this.bool_expr(0); } - this.state = 2560; - this.match(HiveSqlParser.T_THEN); - this.state = 2561; + this.state = 2557; + this.match(HiveSql.T_THEN); + this.state = 2558; this.merge_action(); break; - case HiveSqlParser.T_ELSE: + case HiveSql.T_ELSE: this.enterOuterAlt(localctx, 2); - this.state = 2562; - this.match(HiveSqlParser.T_ELSE); - this.state = 2563; - this.match(HiveSqlParser.T_IGNORE); + this.state = 2559; + this.match(HiveSql.T_ELSE); + this.state = 2560; + this.match(HiveSql.T_IGNORE); break; default: throw new antlr4.error.NoViableAltException(this); @@ -27787,7 +27834,7 @@ function Merge_actionContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_merge_action; + this.ruleIndex = HiveSql.RULE_merge_action; return this; } @@ -27795,11 +27842,11 @@ Merge_actionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype Merge_actionContext.prototype.constructor = Merge_actionContext; Merge_actionContext.prototype.T_INSERT = function() { - return this.getToken(HiveSqlParser.T_INSERT, 0); + return this.getToken(HiveSql.T_INSERT, 0); }; Merge_actionContext.prototype.T_VALUES = function() { - return this.getToken(HiveSqlParser.T_VALUES, 0); + return this.getToken(HiveSql.T_VALUES, 0); }; Merge_actionContext.prototype.insert_stmt_row = function() { @@ -27811,11 +27858,11 @@ Merge_actionContext.prototype.insert_stmt_cols = function() { }; Merge_actionContext.prototype.T_UPDATE = function() { - return this.getToken(HiveSqlParser.T_UPDATE, 0); + return this.getToken(HiveSql.T_UPDATE, 0); }; Merge_actionContext.prototype.T_SET = function() { - return this.getToken(HiveSqlParser.T_SET, 0); + return this.getToken(HiveSql.T_SET, 0); }; Merge_actionContext.prototype.assignment_stmt_item = function(i) { @@ -27834,9 +27881,9 @@ Merge_actionContext.prototype.T_COMMA = function(i) { i = null; } if(i===null) { - return this.getTokens(HiveSqlParser.T_COMMA); + return this.getTokens(HiveSql.T_COMMA); } else { - return this.getToken(HiveSqlParser.T_COMMA, i); + return this.getToken(HiveSql.T_COMMA, i); } }; @@ -27846,7 +27893,7 @@ Merge_actionContext.prototype.where_clause = function() { }; Merge_actionContext.prototype.T_DELETE = function() { - return this.getToken(HiveSqlParser.T_DELETE, 0); + return this.getToken(HiveSql.T_DELETE, 0); }; Merge_actionContext.prototype.enterRule = function(listener) { @@ -27872,70 +27919,70 @@ Merge_actionContext.prototype.accept = function(visitor) { -HiveSqlParser.Merge_actionContext = Merge_actionContext; +HiveSql.Merge_actionContext = Merge_actionContext; -HiveSqlParser.prototype.merge_action = function() { +HiveSql.prototype.merge_action = function() { var localctx = new Merge_actionContext(this, this._ctx, this.state); - this.enterRule(localctx, 358, HiveSqlParser.RULE_merge_action); + this.enterRule(localctx, 358, HiveSql.RULE_merge_action); var _la = 0; // Token type try { - this.state = 2586; + this.state = 2583; this._errHandler.sync(this); switch(this._input.LA(1)) { - case HiveSqlParser.T_INSERT: + case HiveSql.T_INSERT: this.enterOuterAlt(localctx, 1); - this.state = 2566; - this.match(HiveSqlParser.T_INSERT); - this.state = 2568; + this.state = 2563; + this.match(HiveSql.T_INSERT); + this.state = 2565; this._errHandler.sync(this); _la = this._input.LA(1); - if(_la===HiveSqlParser.T_OPEN_P) { - this.state = 2567; + if(_la===HiveSql.T_OPEN_P) { + this.state = 2564; this.insert_stmt_cols(); } - this.state = 2570; - this.match(HiveSqlParser.T_VALUES); - this.state = 2571; + this.state = 2567; + this.match(HiveSql.T_VALUES); + this.state = 2568; this.insert_stmt_row(); break; - case HiveSqlParser.T_UPDATE: + case HiveSql.T_UPDATE: this.enterOuterAlt(localctx, 2); - this.state = 2572; - this.match(HiveSqlParser.T_UPDATE); - this.state = 2573; - this.match(HiveSqlParser.T_SET); - this.state = 2574; + this.state = 2569; + this.match(HiveSql.T_UPDATE); + this.state = 2570; + this.match(HiveSql.T_SET); + this.state = 2571; this.assignment_stmt_item(); - this.state = 2579; + this.state = 2576; this._errHandler.sync(this); var _alt = this._interp.adaptivePredict(this._input,322,this._ctx) while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { if(_alt===1) { - this.state = 2575; - this.match(HiveSqlParser.T_COMMA); - this.state = 2576; + this.state = 2572; + this.match(HiveSql.T_COMMA); + this.state = 2573; this.assignment_stmt_item(); } - this.state = 2581; + this.state = 2578; this._errHandler.sync(this); _alt = this._interp.adaptivePredict(this._input,322,this._ctx); } - this.state = 2583; + this.state = 2580; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,323,this._ctx); if(la_===1) { - this.state = 2582; + this.state = 2579; this.where_clause(); } break; - case HiveSqlParser.T_DELETE: + case HiveSql.T_DELETE: this.enterOuterAlt(localctx, 3); - this.state = 2585; - this.match(HiveSqlParser.T_DELETE); + this.state = 2582; + this.match(HiveSql.T_DELETE); break; default: throw new antlr4.error.NoViableAltException(this); @@ -27964,7 +28011,7 @@ function Delete_stmtContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_delete_stmt; + this.ruleIndex = HiveSql.RULE_delete_stmt; return this; } @@ -27972,7 +28019,7 @@ Delete_stmtContext.prototype = Object.create(antlr4.ParserRuleContext.prototype) Delete_stmtContext.prototype.constructor = Delete_stmtContext; Delete_stmtContext.prototype.T_DELETE = function() { - return this.getToken(HiveSqlParser.T_DELETE, 0); + return this.getToken(HiveSql.T_DELETE, 0); }; Delete_stmtContext.prototype.table_name = function() { @@ -27980,7 +28027,7 @@ Delete_stmtContext.prototype.table_name = function() { }; Delete_stmtContext.prototype.T_FROM = function() { - return this.getToken(HiveSqlParser.T_FROM, 0); + return this.getToken(HiveSql.T_FROM, 0); }; Delete_stmtContext.prototype.delete_alias = function() { @@ -27992,7 +28039,7 @@ Delete_stmtContext.prototype.where_clause = function() { }; Delete_stmtContext.prototype.T_ALL = function() { - return this.getToken(HiveSqlParser.T_ALL, 0); + return this.getToken(HiveSql.T_ALL, 0); }; Delete_stmtContext.prototype.enterRule = function(listener) { @@ -28018,44 +28065,44 @@ Delete_stmtContext.prototype.accept = function(visitor) { -HiveSqlParser.Delete_stmtContext = Delete_stmtContext; +HiveSql.Delete_stmtContext = Delete_stmtContext; -HiveSqlParser.prototype.delete_stmt = function() { +HiveSql.prototype.delete_stmt = function() { var localctx = new Delete_stmtContext(this, this._ctx, this.state); - this.enterRule(localctx, 360, HiveSqlParser.RULE_delete_stmt); + this.enterRule(localctx, 360, HiveSql.RULE_delete_stmt); try { this.enterOuterAlt(localctx, 1); - this.state = 2588; - this.match(HiveSqlParser.T_DELETE); - this.state = 2590; + this.state = 2585; + this.match(HiveSql.T_DELETE); + this.state = 2587; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,325,this._ctx); if(la_===1) { - this.state = 2589; - this.match(HiveSqlParser.T_FROM); + this.state = 2586; + this.match(HiveSql.T_FROM); } - this.state = 2592; + this.state = 2589; this.table_name(); - this.state = 2594; + this.state = 2591; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,326,this._ctx); if(la_===1) { - this.state = 2593; + this.state = 2590; this.delete_alias(); } - this.state = 2598; + this.state = 2595; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,327,this._ctx); if(la_===1) { - this.state = 2596; + this.state = 2593; this.where_clause(); } else if(la_===2) { - this.state = 2597; - this.match(HiveSqlParser.T_ALL); + this.state = 2594; + this.match(HiveSql.T_ALL); } } catch (re) { @@ -28082,7 +28129,7 @@ function Delete_aliasContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_delete_alias; + this.ruleIndex = HiveSql.RULE_delete_alias; return this; } @@ -28094,7 +28141,7 @@ Delete_aliasContext.prototype.ident = function() { }; Delete_aliasContext.prototype.T_AS = function() { - return this.getToken(HiveSqlParser.T_AS, 0); + return this.getToken(HiveSql.T_AS, 0); }; Delete_aliasContext.prototype.enterRule = function(listener) { @@ -28120,27 +28167,27 @@ Delete_aliasContext.prototype.accept = function(visitor) { -HiveSqlParser.Delete_aliasContext = Delete_aliasContext; +HiveSql.Delete_aliasContext = Delete_aliasContext; -HiveSqlParser.prototype.delete_alias = function() { +HiveSql.prototype.delete_alias = function() { var localctx = new Delete_aliasContext(this, this._ctx, this.state); - this.enterRule(localctx, 362, HiveSqlParser.RULE_delete_alias); + this.enterRule(localctx, 362, HiveSql.RULE_delete_alias); try { this.enterOuterAlt(localctx, 1); - this.state = 2600; - if (!( !this._input.LT(1).getText().equalsIgnoreCase("ALL"))) { - throw new antlr4.error.FailedPredicateException(this, "!this._input.LT(1).getText().equalsIgnoreCase(\"ALL\")"); + this.state = 2597; + if (!( this._input.LT(1).text.toUpperCase() !== "ALL")) { + throw new antlr4.error.FailedPredicateException(this, "this._input.LT(1).text.toUpperCase() !== \"ALL\""); } - this.state = 2602; + this.state = 2599; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,328,this._ctx); if(la_===1) { - this.state = 2601; - this.match(HiveSqlParser.T_AS); + this.state = 2598; + this.match(HiveSql.T_AS); } - this.state = 2604; + this.state = 2601; this.ident(); } catch (re) { if(re instanceof antlr4.error.RecognitionException) { @@ -28166,7 +28213,7 @@ function Describe_stmtContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_describe_stmt; + this.ruleIndex = HiveSql.RULE_describe_stmt; return this; } @@ -28178,15 +28225,15 @@ Describe_stmtContext.prototype.table_name = function() { }; Describe_stmtContext.prototype.T_DESCRIBE = function() { - return this.getToken(HiveSqlParser.T_DESCRIBE, 0); + return this.getToken(HiveSql.T_DESCRIBE, 0); }; Describe_stmtContext.prototype.T_DESC = function() { - return this.getToken(HiveSqlParser.T_DESC, 0); + return this.getToken(HiveSql.T_DESC, 0); }; Describe_stmtContext.prototype.T_TABLE = function() { - return this.getToken(HiveSqlParser.T_TABLE, 0); + return this.getToken(HiveSql.T_TABLE, 0); }; Describe_stmtContext.prototype.enterRule = function(listener) { @@ -28212,33 +28259,33 @@ Describe_stmtContext.prototype.accept = function(visitor) { -HiveSqlParser.Describe_stmtContext = Describe_stmtContext; +HiveSql.Describe_stmtContext = Describe_stmtContext; -HiveSqlParser.prototype.describe_stmt = function() { +HiveSql.prototype.describe_stmt = function() { var localctx = new Describe_stmtContext(this, this._ctx, this.state); - this.enterRule(localctx, 364, HiveSqlParser.RULE_describe_stmt); + this.enterRule(localctx, 364, HiveSql.RULE_describe_stmt); var _la = 0; // Token type try { this.enterOuterAlt(localctx, 1); - this.state = 2606; + this.state = 2603; _la = this._input.LA(1); - if(!(_la===HiveSqlParser.T_DESC || _la===HiveSqlParser.T_DESCRIBE)) { + if(!(_la===HiveSql.T_DESC || _la===HiveSql.T_DESCRIBE)) { this._errHandler.recoverInline(this); } else { this._errHandler.reportMatch(this); this.consume(); } - this.state = 2608; + this.state = 2605; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,329,this._ctx); if(la_===1) { - this.state = 2607; - this.match(HiveSqlParser.T_TABLE); + this.state = 2604; + this.match(HiveSql.T_TABLE); } - this.state = 2610; + this.state = 2607; this.table_name(); } catch (re) { if(re instanceof antlr4.error.RecognitionException) { @@ -28264,7 +28311,7 @@ function Bool_exprContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_bool_expr; + this.ruleIndex = HiveSql.RULE_bool_expr; return this; } @@ -28272,7 +28319,7 @@ Bool_exprContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); Bool_exprContext.prototype.constructor = Bool_exprContext; Bool_exprContext.prototype.T_OPEN_P = function() { - return this.getToken(HiveSqlParser.T_OPEN_P, 0); + return this.getToken(HiveSql.T_OPEN_P, 0); }; Bool_exprContext.prototype.bool_expr = function(i) { @@ -28287,11 +28334,11 @@ Bool_exprContext.prototype.bool_expr = function(i) { }; Bool_exprContext.prototype.T_CLOSE_P = function() { - return this.getToken(HiveSqlParser.T_CLOSE_P, 0); + return this.getToken(HiveSql.T_CLOSE_P, 0); }; Bool_exprContext.prototype.T_NOT = function() { - return this.getToken(HiveSqlParser.T_NOT, 0); + return this.getToken(HiveSql.T_NOT, 0); }; Bool_exprContext.prototype.bool_expr_atom = function() { @@ -28324,7 +28371,7 @@ Bool_exprContext.prototype.accept = function(visitor) { -HiveSqlParser.prototype.bool_expr = function(_p) { +HiveSql.prototype.bool_expr = function(_p) { if(_p===undefined) { _p = 0; } @@ -28333,39 +28380,39 @@ HiveSqlParser.prototype.bool_expr = function(_p) { var localctx = new Bool_exprContext(this, this._ctx, _parentState); var _prevctx = localctx; var _startState = 366; - this.enterRecursionRule(localctx, 366, HiveSqlParser.RULE_bool_expr, _p); + this.enterRecursionRule(localctx, 366, HiveSql.RULE_bool_expr, _p); var _la = 0; // Token type try { this.enterOuterAlt(localctx, 1); - this.state = 2621; + this.state = 2618; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,331,this._ctx); switch(la_) { case 1: - this.state = 2614; + this.state = 2611; this._errHandler.sync(this); _la = this._input.LA(1); - if(_la===HiveSqlParser.T_NOT) { - this.state = 2613; - this.match(HiveSqlParser.T_NOT); + if(_la===HiveSql.T_NOT) { + this.state = 2610; + this.match(HiveSql.T_NOT); } - this.state = 2616; - this.match(HiveSqlParser.T_OPEN_P); - this.state = 2617; + this.state = 2613; + this.match(HiveSql.T_OPEN_P); + this.state = 2614; this.bool_expr(0); - this.state = 2618; - this.match(HiveSqlParser.T_CLOSE_P); + this.state = 2615; + this.match(HiveSql.T_CLOSE_P); break; case 2: - this.state = 2620; + this.state = 2617; this.bool_expr_atom(); break; } this._ctx.stop = this._input.LT(-1); - this.state = 2629; + this.state = 2626; this._errHandler.sync(this); var _alt = this._interp.adaptivePredict(this._input,332,this._ctx) while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { @@ -28375,17 +28422,17 @@ HiveSqlParser.prototype.bool_expr = function(_p) { } _prevctx = localctx; localctx = new Bool_exprContext(this, _parentctx, _parentState); - this.pushNewRecursionContext(localctx, _startState, HiveSqlParser.RULE_bool_expr); - this.state = 2623; + this.pushNewRecursionContext(localctx, _startState, HiveSql.RULE_bool_expr); + this.state = 2620; if (!( this.precpred(this._ctx, 2))) { throw new antlr4.error.FailedPredicateException(this, "this.precpred(this._ctx, 2)"); } - this.state = 2624; + this.state = 2621; this.bool_expr_logical_operator(); - this.state = 2625; + this.state = 2622; this.bool_expr(3); } - this.state = 2631; + this.state = 2628; this._errHandler.sync(this); _alt = this._interp.adaptivePredict(this._input,332,this._ctx); } @@ -28414,7 +28461,7 @@ function Bool_expr_atomContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_bool_expr_atom; + this.ruleIndex = HiveSql.RULE_bool_expr_atom; return this; } @@ -28456,32 +28503,32 @@ Bool_expr_atomContext.prototype.accept = function(visitor) { -HiveSqlParser.Bool_expr_atomContext = Bool_expr_atomContext; +HiveSql.Bool_expr_atomContext = Bool_expr_atomContext; -HiveSqlParser.prototype.bool_expr_atom = function() { +HiveSql.prototype.bool_expr_atom = function() { var localctx = new Bool_expr_atomContext(this, this._ctx, this.state); - this.enterRule(localctx, 368, HiveSqlParser.RULE_bool_expr_atom); + this.enterRule(localctx, 368, HiveSql.RULE_bool_expr_atom); try { - this.state = 2635; + this.state = 2632; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,333,this._ctx); switch(la_) { case 1: this.enterOuterAlt(localctx, 1); - this.state = 2632; + this.state = 2629; this.bool_expr_unary(); break; case 2: this.enterOuterAlt(localctx, 2); - this.state = 2633; + this.state = 2630; this.bool_expr_binary(); break; case 3: this.enterOuterAlt(localctx, 3); - this.state = 2634; + this.state = 2631; this.expr(0); break; @@ -28510,7 +28557,7 @@ function Bool_expr_unaryContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_bool_expr_unary; + this.ruleIndex = HiveSql.RULE_bool_expr_unary; return this; } @@ -28529,31 +28576,31 @@ Bool_expr_unaryContext.prototype.expr = function(i) { }; Bool_expr_unaryContext.prototype.T_IS = function() { - return this.getToken(HiveSqlParser.T_IS, 0); + return this.getToken(HiveSql.T_IS, 0); }; Bool_expr_unaryContext.prototype.T_NULL = function() { - return this.getToken(HiveSqlParser.T_NULL, 0); + return this.getToken(HiveSql.T_NULL, 0); }; Bool_expr_unaryContext.prototype.T_NOT = function() { - return this.getToken(HiveSqlParser.T_NOT, 0); + return this.getToken(HiveSql.T_NOT, 0); }; Bool_expr_unaryContext.prototype.T_BETWEEN = function() { - return this.getToken(HiveSqlParser.T_BETWEEN, 0); + return this.getToken(HiveSql.T_BETWEEN, 0); }; Bool_expr_unaryContext.prototype.T_AND = function() { - return this.getToken(HiveSqlParser.T_AND, 0); + return this.getToken(HiveSql.T_AND, 0); }; Bool_expr_unaryContext.prototype.T_EXISTS = function() { - return this.getToken(HiveSqlParser.T_EXISTS, 0); + return this.getToken(HiveSql.T_EXISTS, 0); }; Bool_expr_unaryContext.prototype.T_OPEN_P = function() { - return this.getToken(HiveSqlParser.T_OPEN_P, 0); + return this.getToken(HiveSql.T_OPEN_P, 0); }; Bool_expr_unaryContext.prototype.select_stmt = function() { @@ -28561,7 +28608,7 @@ Bool_expr_unaryContext.prototype.select_stmt = function() { }; Bool_expr_unaryContext.prototype.T_CLOSE_P = function() { - return this.getToken(HiveSqlParser.T_CLOSE_P, 0); + return this.getToken(HiveSql.T_CLOSE_P, 0); }; Bool_expr_unaryContext.prototype.bool_expr_single_in = function() { @@ -28595,79 +28642,79 @@ Bool_expr_unaryContext.prototype.accept = function(visitor) { -HiveSqlParser.Bool_expr_unaryContext = Bool_expr_unaryContext; +HiveSql.Bool_expr_unaryContext = Bool_expr_unaryContext; -HiveSqlParser.prototype.bool_expr_unary = function() { +HiveSql.prototype.bool_expr_unary = function() { var localctx = new Bool_expr_unaryContext(this, this._ctx, this.state); - this.enterRule(localctx, 370, HiveSqlParser.RULE_bool_expr_unary); + this.enterRule(localctx, 370, HiveSql.RULE_bool_expr_unary); var _la = 0; // Token type try { - this.state = 2660; + this.state = 2657; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,336,this._ctx); switch(la_) { case 1: this.enterOuterAlt(localctx, 1); - this.state = 2637; + this.state = 2634; this.expr(0); - this.state = 2638; - this.match(HiveSqlParser.T_IS); - this.state = 2640; + this.state = 2635; + this.match(HiveSql.T_IS); + this.state = 2637; this._errHandler.sync(this); _la = this._input.LA(1); - if(_la===HiveSqlParser.T_NOT) { - this.state = 2639; - this.match(HiveSqlParser.T_NOT); + if(_la===HiveSql.T_NOT) { + this.state = 2636; + this.match(HiveSql.T_NOT); } - this.state = 2642; - this.match(HiveSqlParser.T_NULL); + this.state = 2639; + this.match(HiveSql.T_NULL); break; case 2: this.enterOuterAlt(localctx, 2); + this.state = 2641; + this.expr(0); + this.state = 2642; + this.match(HiveSql.T_BETWEEN); + this.state = 2643; + this.expr(0); this.state = 2644; - this.expr(0); + this.match(HiveSql.T_AND); this.state = 2645; - this.match(HiveSqlParser.T_BETWEEN); - this.state = 2646; - this.expr(0); - this.state = 2647; - this.match(HiveSqlParser.T_AND); - this.state = 2648; this.expr(0); break; case 3: this.enterOuterAlt(localctx, 3); - this.state = 2651; + this.state = 2648; this._errHandler.sync(this); _la = this._input.LA(1); - if(_la===HiveSqlParser.T_NOT) { - this.state = 2650; - this.match(HiveSqlParser.T_NOT); + if(_la===HiveSql.T_NOT) { + this.state = 2647; + this.match(HiveSql.T_NOT); } - this.state = 2653; - this.match(HiveSqlParser.T_EXISTS); - this.state = 2654; - this.match(HiveSqlParser.T_OPEN_P); - this.state = 2655; + this.state = 2650; + this.match(HiveSql.T_EXISTS); + this.state = 2651; + this.match(HiveSql.T_OPEN_P); + this.state = 2652; this.select_stmt(); - this.state = 2656; - this.match(HiveSqlParser.T_CLOSE_P); + this.state = 2653; + this.match(HiveSql.T_CLOSE_P); break; case 4: this.enterOuterAlt(localctx, 4); - this.state = 2658; + this.state = 2655; this.bool_expr_single_in(); break; case 5: this.enterOuterAlt(localctx, 5); - this.state = 2659; + this.state = 2656; this.bool_expr_multi_in(); break; @@ -28696,7 +28743,7 @@ function Bool_expr_single_inContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_bool_expr_single_in; + this.ruleIndex = HiveSql.RULE_bool_expr_single_in; return this; } @@ -28715,15 +28762,15 @@ Bool_expr_single_inContext.prototype.expr = function(i) { }; Bool_expr_single_inContext.prototype.T_IN = function() { - return this.getToken(HiveSqlParser.T_IN, 0); + return this.getToken(HiveSql.T_IN, 0); }; Bool_expr_single_inContext.prototype.T_OPEN_P = function() { - return this.getToken(HiveSqlParser.T_OPEN_P, 0); + return this.getToken(HiveSql.T_OPEN_P, 0); }; Bool_expr_single_inContext.prototype.T_CLOSE_P = function() { - return this.getToken(HiveSqlParser.T_CLOSE_P, 0); + return this.getToken(HiveSql.T_CLOSE_P, 0); }; Bool_expr_single_inContext.prototype.select_stmt = function() { @@ -28731,7 +28778,7 @@ Bool_expr_single_inContext.prototype.select_stmt = function() { }; Bool_expr_single_inContext.prototype.T_NOT = function() { - return this.getToken(HiveSqlParser.T_NOT, 0); + return this.getToken(HiveSql.T_NOT, 0); }; Bool_expr_single_inContext.prototype.T_COMMA = function(i) { @@ -28739,9 +28786,9 @@ Bool_expr_single_inContext.prototype.T_COMMA = function(i) { i = null; } if(i===null) { - return this.getTokens(HiveSqlParser.T_COMMA); + return this.getTokens(HiveSql.T_COMMA); } else { - return this.getToken(HiveSqlParser.T_COMMA, i); + return this.getToken(HiveSql.T_COMMA, i); } }; @@ -28769,58 +28816,58 @@ Bool_expr_single_inContext.prototype.accept = function(visitor) { -HiveSqlParser.Bool_expr_single_inContext = Bool_expr_single_inContext; +HiveSql.Bool_expr_single_inContext = Bool_expr_single_inContext; -HiveSqlParser.prototype.bool_expr_single_in = function() { +HiveSql.prototype.bool_expr_single_in = function() { var localctx = new Bool_expr_single_inContext(this, this._ctx, this.state); - this.enterRule(localctx, 372, HiveSqlParser.RULE_bool_expr_single_in); + this.enterRule(localctx, 372, HiveSql.RULE_bool_expr_single_in); var _la = 0; // Token type try { this.enterOuterAlt(localctx, 1); - this.state = 2662; + this.state = 2659; this.expr(0); - this.state = 2664; + this.state = 2661; this._errHandler.sync(this); _la = this._input.LA(1); - if(_la===HiveSqlParser.T_NOT) { - this.state = 2663; - this.match(HiveSqlParser.T_NOT); + if(_la===HiveSql.T_NOT) { + this.state = 2660; + this.match(HiveSql.T_NOT); } - this.state = 2666; - this.match(HiveSqlParser.T_IN); - this.state = 2667; - this.match(HiveSqlParser.T_OPEN_P); - this.state = 2677; + this.state = 2663; + this.match(HiveSql.T_IN); + this.state = 2664; + this.match(HiveSql.T_OPEN_P); + this.state = 2674; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,339,this._ctx); switch(la_) { case 1: - this.state = 2668; + this.state = 2665; this.expr(0); - this.state = 2673; + this.state = 2670; this._errHandler.sync(this); _la = this._input.LA(1); - while(_la===HiveSqlParser.T_COMMA) { - this.state = 2669; - this.match(HiveSqlParser.T_COMMA); - this.state = 2670; + while(_la===HiveSql.T_COMMA) { + this.state = 2666; + this.match(HiveSql.T_COMMA); + this.state = 2667; this.expr(0); - this.state = 2675; + this.state = 2672; this._errHandler.sync(this); _la = this._input.LA(1); } break; case 2: - this.state = 2676; + this.state = 2673; this.select_stmt(); break; } - this.state = 2679; - this.match(HiveSqlParser.T_CLOSE_P); + this.state = 2676; + this.match(HiveSql.T_CLOSE_P); } catch (re) { if(re instanceof antlr4.error.RecognitionException) { localctx.exception = re; @@ -28845,7 +28892,7 @@ function Bool_expr_multi_inContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_bool_expr_multi_in; + this.ruleIndex = HiveSql.RULE_bool_expr_multi_in; return this; } @@ -28857,9 +28904,9 @@ Bool_expr_multi_inContext.prototype.T_OPEN_P = function(i) { i = null; } if(i===null) { - return this.getTokens(HiveSqlParser.T_OPEN_P); + return this.getTokens(HiveSql.T_OPEN_P); } else { - return this.getToken(HiveSqlParser.T_OPEN_P, i); + return this.getToken(HiveSql.T_OPEN_P, i); } }; @@ -28880,15 +28927,15 @@ Bool_expr_multi_inContext.prototype.T_CLOSE_P = function(i) { i = null; } if(i===null) { - return this.getTokens(HiveSqlParser.T_CLOSE_P); + return this.getTokens(HiveSql.T_CLOSE_P); } else { - return this.getToken(HiveSqlParser.T_CLOSE_P, i); + return this.getToken(HiveSql.T_CLOSE_P, i); } }; Bool_expr_multi_inContext.prototype.T_IN = function() { - return this.getToken(HiveSqlParser.T_IN, 0); + return this.getToken(HiveSql.T_IN, 0); }; Bool_expr_multi_inContext.prototype.select_stmt = function() { @@ -28900,15 +28947,15 @@ Bool_expr_multi_inContext.prototype.T_COMMA = function(i) { i = null; } if(i===null) { - return this.getTokens(HiveSqlParser.T_COMMA); + return this.getTokens(HiveSql.T_COMMA); } else { - return this.getToken(HiveSqlParser.T_COMMA, i); + return this.getToken(HiveSql.T_COMMA, i); } }; Bool_expr_multi_inContext.prototype.T_NOT = function() { - return this.getToken(HiveSqlParser.T_NOT, 0); + return this.getToken(HiveSql.T_NOT, 0); }; Bool_expr_multi_inContext.prototype.enterRule = function(listener) { @@ -28934,49 +28981,49 @@ Bool_expr_multi_inContext.prototype.accept = function(visitor) { -HiveSqlParser.Bool_expr_multi_inContext = Bool_expr_multi_inContext; +HiveSql.Bool_expr_multi_inContext = Bool_expr_multi_inContext; -HiveSqlParser.prototype.bool_expr_multi_in = function() { +HiveSql.prototype.bool_expr_multi_in = function() { var localctx = new Bool_expr_multi_inContext(this, this._ctx, this.state); - this.enterRule(localctx, 374, HiveSqlParser.RULE_bool_expr_multi_in); + this.enterRule(localctx, 374, HiveSql.RULE_bool_expr_multi_in); var _la = 0; // Token type try { this.enterOuterAlt(localctx, 1); - this.state = 2681; - this.match(HiveSqlParser.T_OPEN_P); - this.state = 2682; + this.state = 2678; + this.match(HiveSql.T_OPEN_P); + this.state = 2679; this.expr(0); - this.state = 2687; + this.state = 2684; this._errHandler.sync(this); _la = this._input.LA(1); - while(_la===HiveSqlParser.T_COMMA) { - this.state = 2683; - this.match(HiveSqlParser.T_COMMA); - this.state = 2684; + while(_la===HiveSql.T_COMMA) { + this.state = 2680; + this.match(HiveSql.T_COMMA); + this.state = 2681; this.expr(0); - this.state = 2689; + this.state = 2686; this._errHandler.sync(this); _la = this._input.LA(1); } - this.state = 2690; - this.match(HiveSqlParser.T_CLOSE_P); - this.state = 2692; + this.state = 2687; + this.match(HiveSql.T_CLOSE_P); + this.state = 2689; this._errHandler.sync(this); _la = this._input.LA(1); - if(_la===HiveSqlParser.T_NOT) { - this.state = 2691; - this.match(HiveSqlParser.T_NOT); + if(_la===HiveSql.T_NOT) { + this.state = 2688; + this.match(HiveSql.T_NOT); } - this.state = 2694; - this.match(HiveSqlParser.T_IN); - this.state = 2695; - this.match(HiveSqlParser.T_OPEN_P); - this.state = 2696; + this.state = 2691; + this.match(HiveSql.T_IN); + this.state = 2692; + this.match(HiveSql.T_OPEN_P); + this.state = 2693; this.select_stmt(); - this.state = 2697; - this.match(HiveSqlParser.T_CLOSE_P); + this.state = 2694; + this.match(HiveSql.T_CLOSE_P); } catch (re) { if(re instanceof antlr4.error.RecognitionException) { localctx.exception = re; @@ -29001,7 +29048,7 @@ function Bool_expr_binaryContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_bool_expr_binary; + this.ruleIndex = HiveSql.RULE_bool_expr_binary; return this; } @@ -29046,19 +29093,19 @@ Bool_expr_binaryContext.prototype.accept = function(visitor) { -HiveSqlParser.Bool_expr_binaryContext = Bool_expr_binaryContext; +HiveSql.Bool_expr_binaryContext = Bool_expr_binaryContext; -HiveSqlParser.prototype.bool_expr_binary = function() { +HiveSql.prototype.bool_expr_binary = function() { var localctx = new Bool_expr_binaryContext(this, this._ctx, this.state); - this.enterRule(localctx, 376, HiveSqlParser.RULE_bool_expr_binary); + this.enterRule(localctx, 376, HiveSql.RULE_bool_expr_binary); try { this.enterOuterAlt(localctx, 1); - this.state = 2699; + this.state = 2696; this.expr(0); - this.state = 2700; + this.state = 2697; this.bool_expr_binary_operator(); - this.state = 2701; + this.state = 2698; this.expr(0); } catch (re) { if(re instanceof antlr4.error.RecognitionException) { @@ -29084,7 +29131,7 @@ function Bool_expr_logical_operatorContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_bool_expr_logical_operator; + this.ruleIndex = HiveSql.RULE_bool_expr_logical_operator; return this; } @@ -29092,11 +29139,11 @@ Bool_expr_logical_operatorContext.prototype = Object.create(antlr4.ParserRuleCon Bool_expr_logical_operatorContext.prototype.constructor = Bool_expr_logical_operatorContext; Bool_expr_logical_operatorContext.prototype.T_AND = function() { - return this.getToken(HiveSqlParser.T_AND, 0); + return this.getToken(HiveSql.T_AND, 0); }; Bool_expr_logical_operatorContext.prototype.T_OR = function() { - return this.getToken(HiveSqlParser.T_OR, 0); + return this.getToken(HiveSql.T_OR, 0); }; Bool_expr_logical_operatorContext.prototype.enterRule = function(listener) { @@ -29122,18 +29169,18 @@ Bool_expr_logical_operatorContext.prototype.accept = function(visitor) { -HiveSqlParser.Bool_expr_logical_operatorContext = Bool_expr_logical_operatorContext; +HiveSql.Bool_expr_logical_operatorContext = Bool_expr_logical_operatorContext; -HiveSqlParser.prototype.bool_expr_logical_operator = function() { +HiveSql.prototype.bool_expr_logical_operator = function() { var localctx = new Bool_expr_logical_operatorContext(this, this._ctx, this.state); - this.enterRule(localctx, 378, HiveSqlParser.RULE_bool_expr_logical_operator); + this.enterRule(localctx, 378, HiveSql.RULE_bool_expr_logical_operator); var _la = 0; // Token type try { this.enterOuterAlt(localctx, 1); - this.state = 2703; + this.state = 2700; _la = this._input.LA(1); - if(!(_la===HiveSqlParser.T_OR || _la===HiveSqlParser.T_AND)) { + if(!(_la===HiveSql.T_AND || _la===HiveSql.T_OR)) { this._errHandler.recoverInline(this); } else { @@ -29164,7 +29211,7 @@ function Bool_expr_binary_operatorContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_bool_expr_binary_operator; + this.ruleIndex = HiveSql.RULE_bool_expr_binary_operator; return this; } @@ -29172,51 +29219,51 @@ Bool_expr_binary_operatorContext.prototype = Object.create(antlr4.ParserRuleCont Bool_expr_binary_operatorContext.prototype.constructor = Bool_expr_binary_operatorContext; Bool_expr_binary_operatorContext.prototype.T_EQUAL = function() { - return this.getToken(HiveSqlParser.T_EQUAL, 0); + return this.getToken(HiveSql.T_EQUAL, 0); }; Bool_expr_binary_operatorContext.prototype.T_EQUAL2 = function() { - return this.getToken(HiveSqlParser.T_EQUAL2, 0); + return this.getToken(HiveSql.T_EQUAL2, 0); }; Bool_expr_binary_operatorContext.prototype.T_NOTEQUAL = function() { - return this.getToken(HiveSqlParser.T_NOTEQUAL, 0); + return this.getToken(HiveSql.T_NOTEQUAL, 0); }; Bool_expr_binary_operatorContext.prototype.T_NOTEQUAL2 = function() { - return this.getToken(HiveSqlParser.T_NOTEQUAL2, 0); + return this.getToken(HiveSql.T_NOTEQUAL2, 0); }; Bool_expr_binary_operatorContext.prototype.T_LESS = function() { - return this.getToken(HiveSqlParser.T_LESS, 0); + return this.getToken(HiveSql.T_LESS, 0); }; Bool_expr_binary_operatorContext.prototype.T_LESSEQUAL = function() { - return this.getToken(HiveSqlParser.T_LESSEQUAL, 0); + return this.getToken(HiveSql.T_LESSEQUAL, 0); }; Bool_expr_binary_operatorContext.prototype.T_GREATER = function() { - return this.getToken(HiveSqlParser.T_GREATER, 0); + return this.getToken(HiveSql.T_GREATER, 0); }; Bool_expr_binary_operatorContext.prototype.T_GREATEREQUAL = function() { - return this.getToken(HiveSqlParser.T_GREATEREQUAL, 0); + return this.getToken(HiveSql.T_GREATEREQUAL, 0); }; Bool_expr_binary_operatorContext.prototype.T_LIKE = function() { - return this.getToken(HiveSqlParser.T_LIKE, 0); + return this.getToken(HiveSql.T_LIKE, 0); }; Bool_expr_binary_operatorContext.prototype.T_RLIKE = function() { - return this.getToken(HiveSqlParser.T_RLIKE, 0); + return this.getToken(HiveSql.T_RLIKE, 0); }; Bool_expr_binary_operatorContext.prototype.T_REGEXP = function() { - return this.getToken(HiveSqlParser.T_REGEXP, 0); + return this.getToken(HiveSql.T_REGEXP, 0); }; Bool_expr_binary_operatorContext.prototype.T_NOT = function() { - return this.getToken(HiveSqlParser.T_NOT, 0); + return this.getToken(HiveSql.T_NOT, 0); }; Bool_expr_binary_operatorContext.prototype.enterRule = function(listener) { @@ -29242,73 +29289,73 @@ Bool_expr_binary_operatorContext.prototype.accept = function(visitor) { -HiveSqlParser.Bool_expr_binary_operatorContext = Bool_expr_binary_operatorContext; +HiveSql.Bool_expr_binary_operatorContext = Bool_expr_binary_operatorContext; -HiveSqlParser.prototype.bool_expr_binary_operator = function() { +HiveSql.prototype.bool_expr_binary_operator = function() { var localctx = new Bool_expr_binary_operatorContext(this, this._ctx, this.state); - this.enterRule(localctx, 380, HiveSqlParser.RULE_bool_expr_binary_operator); + this.enterRule(localctx, 380, HiveSql.RULE_bool_expr_binary_operator); var _la = 0; // Token type try { - this.state = 2717; + this.state = 2714; this._errHandler.sync(this); switch(this._input.LA(1)) { - case HiveSqlParser.T_EQUAL: + case HiveSql.T_EQUAL: this.enterOuterAlt(localctx, 1); - this.state = 2705; - this.match(HiveSqlParser.T_EQUAL); + this.state = 2702; + this.match(HiveSql.T_EQUAL); break; - case HiveSqlParser.T_EQUAL2: + case HiveSql.T_EQUAL2: this.enterOuterAlt(localctx, 2); - this.state = 2706; - this.match(HiveSqlParser.T_EQUAL2); + this.state = 2703; + this.match(HiveSql.T_EQUAL2); break; - case HiveSqlParser.T_NOTEQUAL: + case HiveSql.T_NOTEQUAL: this.enterOuterAlt(localctx, 3); - this.state = 2707; - this.match(HiveSqlParser.T_NOTEQUAL); + this.state = 2704; + this.match(HiveSql.T_NOTEQUAL); break; - case HiveSqlParser.T_NOTEQUAL2: + case HiveSql.T_NOTEQUAL2: this.enterOuterAlt(localctx, 4); - this.state = 2708; - this.match(HiveSqlParser.T_NOTEQUAL2); + this.state = 2705; + this.match(HiveSql.T_NOTEQUAL2); break; - case HiveSqlParser.T_LESS: + case HiveSql.T_LESS: this.enterOuterAlt(localctx, 5); - this.state = 2709; - this.match(HiveSqlParser.T_LESS); + this.state = 2706; + this.match(HiveSql.T_LESS); break; - case HiveSqlParser.T_LESSEQUAL: + case HiveSql.T_LESSEQUAL: this.enterOuterAlt(localctx, 6); - this.state = 2710; - this.match(HiveSqlParser.T_LESSEQUAL); + this.state = 2707; + this.match(HiveSql.T_LESSEQUAL); break; - case HiveSqlParser.T_GREATER: + case HiveSql.T_GREATER: this.enterOuterAlt(localctx, 7); - this.state = 2711; - this.match(HiveSqlParser.T_GREATER); + this.state = 2708; + this.match(HiveSql.T_GREATER); break; - case HiveSqlParser.T_GREATEREQUAL: + case HiveSql.T_GREATEREQUAL: this.enterOuterAlt(localctx, 8); - this.state = 2712; - this.match(HiveSqlParser.T_GREATEREQUAL); + this.state = 2709; + this.match(HiveSql.T_GREATEREQUAL); break; - case HiveSqlParser.T_NOT: - case HiveSqlParser.T_LIKE: - case HiveSqlParser.T_RLIKE: - case HiveSqlParser.T_REGEXP: + case HiveSql.T_LIKE: + case HiveSql.T_NOT: + case HiveSql.T_REGEXP: + case HiveSql.T_RLIKE: this.enterOuterAlt(localctx, 9); - this.state = 2714; + this.state = 2711; this._errHandler.sync(this); _la = this._input.LA(1); - if(_la===HiveSqlParser.T_NOT) { - this.state = 2713; - this.match(HiveSqlParser.T_NOT); + if(_la===HiveSql.T_NOT) { + this.state = 2710; + this.match(HiveSql.T_NOT); } - this.state = 2716; + this.state = 2713; _la = this._input.LA(1); - if(!(_la===HiveSqlParser.T_LIKE || _la===HiveSqlParser.T_RLIKE || _la===HiveSqlParser.T_REGEXP)) { + if(!(_la===HiveSql.T_LIKE || _la===HiveSql.T_REGEXP || _la===HiveSql.T_RLIKE)) { this._errHandler.recoverInline(this); } else { @@ -29343,7 +29390,7 @@ function ExprContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_expr; + this.ruleIndex = HiveSql.RULE_expr; return this; } @@ -29351,7 +29398,7 @@ ExprContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); ExprContext.prototype.constructor = ExprContext; ExprContext.prototype.T_OPEN_P = function() { - return this.getToken(HiveSqlParser.T_OPEN_P, 0); + return this.getToken(HiveSql.T_OPEN_P, 0); }; ExprContext.prototype.select_stmt = function() { @@ -29359,7 +29406,7 @@ ExprContext.prototype.select_stmt = function() { }; ExprContext.prototype.T_CLOSE_P = function() { - return this.getToken(HiveSqlParser.T_CLOSE_P, 0); + return this.getToken(HiveSql.T_CLOSE_P, 0); }; ExprContext.prototype.expr = function(i) { @@ -29406,19 +29453,19 @@ ExprContext.prototype.expr_atom = function() { }; ExprContext.prototype.T_MUL = function() { - return this.getToken(HiveSqlParser.T_MUL, 0); + return this.getToken(HiveSql.T_MUL, 0); }; ExprContext.prototype.T_DIV = function() { - return this.getToken(HiveSqlParser.T_DIV, 0); + return this.getToken(HiveSql.T_DIV, 0); }; ExprContext.prototype.T_ADD = function() { - return this.getToken(HiveSqlParser.T_ADD, 0); + return this.getToken(HiveSql.T_ADD, 0); }; ExprContext.prototype.T_SUB = function() { - return this.getToken(HiveSqlParser.T_SUB, 0); + return this.getToken(HiveSql.T_SUB, 0); }; ExprContext.prototype.interval_item = function() { @@ -29447,7 +29494,7 @@ ExprContext.prototype.accept = function(visitor) { -HiveSqlParser.prototype.expr = function(_p) { +HiveSql.prototype.expr = function(_p) { if(_p===undefined) { _p = 0; } @@ -29456,74 +29503,74 @@ HiveSqlParser.prototype.expr = function(_p) { var localctx = new ExprContext(this, this._ctx, _parentState); var _prevctx = localctx; var _startState = 382; - this.enterRecursionRule(localctx, 382, HiveSqlParser.RULE_expr, _p); + this.enterRecursionRule(localctx, 382, HiveSql.RULE_expr, _p); try { this.enterOuterAlt(localctx, 1); - this.state = 2736; + this.state = 2733; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,344,this._ctx); switch(la_) { case 1: - this.state = 2720; - this.match(HiveSqlParser.T_OPEN_P); - this.state = 2721; + this.state = 2717; + this.match(HiveSql.T_OPEN_P); + this.state = 2718; this.select_stmt(); - this.state = 2722; - this.match(HiveSqlParser.T_CLOSE_P); + this.state = 2719; + this.match(HiveSql.T_CLOSE_P); break; case 2: - this.state = 2724; - this.match(HiveSqlParser.T_OPEN_P); - this.state = 2725; + this.state = 2721; + this.match(HiveSql.T_OPEN_P); + this.state = 2722; this.expr(0); - this.state = 2726; - this.match(HiveSqlParser.T_CLOSE_P); + this.state = 2723; + this.match(HiveSql.T_CLOSE_P); break; case 3: - this.state = 2728; + this.state = 2725; this.expr_interval(); break; case 4: - this.state = 2729; + this.state = 2726; this.expr_concat(); break; case 5: - this.state = 2730; + this.state = 2727; this.expr_case(); break; case 6: - this.state = 2731; + this.state = 2728; this.expr_cursor_attribute(); break; case 7: - this.state = 2732; + this.state = 2729; this.expr_agg_window_func(); break; case 8: - this.state = 2733; + this.state = 2730; this.expr_spec_func(); break; case 9: - this.state = 2734; + this.state = 2731; this.expr_func(); break; case 10: - this.state = 2735; + this.state = 2732; this.expr_atom(); break; } this._ctx.stop = this._input.LT(-1); - this.state = 2754; + this.state = 2751; this._errHandler.sync(this); var _alt = this._interp.adaptivePredict(this._input,346,this._ctx) while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { @@ -29532,76 +29579,76 @@ HiveSqlParser.prototype.expr = function(_p) { this.triggerExitRuleEvent(); } _prevctx = localctx; - this.state = 2752; + this.state = 2749; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,345,this._ctx); switch(la_) { case 1: localctx = new ExprContext(this, _parentctx, _parentState); - this.pushNewRecursionContext(localctx, _startState, HiveSqlParser.RULE_expr); - this.state = 2738; + this.pushNewRecursionContext(localctx, _startState, HiveSql.RULE_expr); + this.state = 2735; if (!( this.precpred(this._ctx, 14))) { throw new antlr4.error.FailedPredicateException(this, "this.precpred(this._ctx, 14)"); } - this.state = 2739; - this.match(HiveSqlParser.T_MUL); - this.state = 2740; + this.state = 2736; + this.match(HiveSql.T_MUL); + this.state = 2737; this.expr(15); break; case 2: localctx = new ExprContext(this, _parentctx, _parentState); - this.pushNewRecursionContext(localctx, _startState, HiveSqlParser.RULE_expr); - this.state = 2741; + this.pushNewRecursionContext(localctx, _startState, HiveSql.RULE_expr); + this.state = 2738; if (!( this.precpred(this._ctx, 13))) { throw new antlr4.error.FailedPredicateException(this, "this.precpred(this._ctx, 13)"); } - this.state = 2742; - this.match(HiveSqlParser.T_DIV); - this.state = 2743; + this.state = 2739; + this.match(HiveSql.T_DIV); + this.state = 2740; this.expr(14); break; case 3: localctx = new ExprContext(this, _parentctx, _parentState); - this.pushNewRecursionContext(localctx, _startState, HiveSqlParser.RULE_expr); - this.state = 2744; + this.pushNewRecursionContext(localctx, _startState, HiveSql.RULE_expr); + this.state = 2741; if (!( this.precpred(this._ctx, 12))) { throw new antlr4.error.FailedPredicateException(this, "this.precpred(this._ctx, 12)"); } - this.state = 2745; - this.match(HiveSqlParser.T_ADD); - this.state = 2746; + this.state = 2742; + this.match(HiveSql.T_ADD); + this.state = 2743; this.expr(13); break; case 4: localctx = new ExprContext(this, _parentctx, _parentState); - this.pushNewRecursionContext(localctx, _startState, HiveSqlParser.RULE_expr); - this.state = 2747; + this.pushNewRecursionContext(localctx, _startState, HiveSql.RULE_expr); + this.state = 2744; if (!( this.precpred(this._ctx, 11))) { throw new antlr4.error.FailedPredicateException(this, "this.precpred(this._ctx, 11)"); } - this.state = 2748; - this.match(HiveSqlParser.T_SUB); - this.state = 2749; + this.state = 2745; + this.match(HiveSql.T_SUB); + this.state = 2746; this.expr(12); break; case 5: localctx = new ExprContext(this, _parentctx, _parentState); - this.pushNewRecursionContext(localctx, _startState, HiveSqlParser.RULE_expr); - this.state = 2750; + this.pushNewRecursionContext(localctx, _startState, HiveSql.RULE_expr); + this.state = 2747; if (!( this.precpred(this._ctx, 15))) { throw new antlr4.error.FailedPredicateException(this, "this.precpred(this._ctx, 15)"); } - this.state = 2751; + this.state = 2748; this.interval_item(); break; } } - this.state = 2756; + this.state = 2753; this._errHandler.sync(this); _alt = this._interp.adaptivePredict(this._input,346,this._ctx); } @@ -29630,7 +29677,7 @@ function Expr_atomContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_expr_atom; + this.ruleIndex = HiveSql.RULE_expr_atom; return this; } @@ -29692,62 +29739,62 @@ Expr_atomContext.prototype.accept = function(visitor) { -HiveSqlParser.Expr_atomContext = Expr_atomContext; +HiveSql.Expr_atomContext = Expr_atomContext; -HiveSqlParser.prototype.expr_atom = function() { +HiveSql.prototype.expr_atom = function() { var localctx = new Expr_atomContext(this, this._ctx, this.state); - this.enterRule(localctx, 384, HiveSqlParser.RULE_expr_atom); + this.enterRule(localctx, 384, HiveSql.RULE_expr_atom); try { - this.state = 2765; + this.state = 2762; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,347,this._ctx); switch(la_) { case 1: this.enterOuterAlt(localctx, 1); - this.state = 2757; + this.state = 2754; this.date_literal(); break; case 2: this.enterOuterAlt(localctx, 2); - this.state = 2758; + this.state = 2755; this.timestamp_literal(); break; case 3: this.enterOuterAlt(localctx, 3); - this.state = 2759; + this.state = 2756; this.bool_literal(); break; case 4: this.enterOuterAlt(localctx, 4); - this.state = 2760; + this.state = 2757; this.ident(); break; case 5: this.enterOuterAlt(localctx, 5); - this.state = 2761; + this.state = 2758; this.string(); break; case 6: this.enterOuterAlt(localctx, 6); - this.state = 2762; + this.state = 2759; this.dec_number(); break; case 7: this.enterOuterAlt(localctx, 7); - this.state = 2763; + this.state = 2760; this.int_number(); break; case 8: this.enterOuterAlt(localctx, 8); - this.state = 2764; + this.state = 2761; this.null_const(); break; @@ -29776,7 +29823,7 @@ function Expr_intervalContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_expr_interval; + this.ruleIndex = HiveSql.RULE_expr_interval; return this; } @@ -29784,7 +29831,7 @@ Expr_intervalContext.prototype = Object.create(antlr4.ParserRuleContext.prototyp Expr_intervalContext.prototype.constructor = Expr_intervalContext; Expr_intervalContext.prototype.T_INTERVAL = function() { - return this.getToken(HiveSqlParser.T_INTERVAL, 0); + return this.getToken(HiveSql.T_INTERVAL, 0); }; Expr_intervalContext.prototype.expr = function() { @@ -29818,19 +29865,19 @@ Expr_intervalContext.prototype.accept = function(visitor) { -HiveSqlParser.Expr_intervalContext = Expr_intervalContext; +HiveSql.Expr_intervalContext = Expr_intervalContext; -HiveSqlParser.prototype.expr_interval = function() { +HiveSql.prototype.expr_interval = function() { var localctx = new Expr_intervalContext(this, this._ctx, this.state); - this.enterRule(localctx, 386, HiveSqlParser.RULE_expr_interval); + this.enterRule(localctx, 386, HiveSql.RULE_expr_interval); try { this.enterOuterAlt(localctx, 1); - this.state = 2767; - this.match(HiveSqlParser.T_INTERVAL); - this.state = 2768; + this.state = 2764; + this.match(HiveSql.T_INTERVAL); + this.state = 2765; this.expr(0); - this.state = 2769; + this.state = 2766; this.interval_item(); } catch (re) { if(re instanceof antlr4.error.RecognitionException) { @@ -29856,7 +29903,7 @@ function Interval_itemContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_interval_item; + this.ruleIndex = HiveSql.RULE_interval_item; return this; } @@ -29864,27 +29911,27 @@ Interval_itemContext.prototype = Object.create(antlr4.ParserRuleContext.prototyp Interval_itemContext.prototype.constructor = Interval_itemContext; Interval_itemContext.prototype.T_DAY = function() { - return this.getToken(HiveSqlParser.T_DAY, 0); + return this.getToken(HiveSql.T_DAY, 0); }; Interval_itemContext.prototype.T_DAYS = function() { - return this.getToken(HiveSqlParser.T_DAYS, 0); + return this.getToken(HiveSql.T_DAYS, 0); }; Interval_itemContext.prototype.T_MICROSECOND = function() { - return this.getToken(HiveSqlParser.T_MICROSECOND, 0); + return this.getToken(HiveSql.T_MICROSECOND, 0); }; Interval_itemContext.prototype.T_MICROSECONDS = function() { - return this.getToken(HiveSqlParser.T_MICROSECONDS, 0); + return this.getToken(HiveSql.T_MICROSECONDS, 0); }; Interval_itemContext.prototype.T_SECOND = function() { - return this.getToken(HiveSqlParser.T_SECOND, 0); + return this.getToken(HiveSql.T_SECOND, 0); }; Interval_itemContext.prototype.T_SECONDS = function() { - return this.getToken(HiveSqlParser.T_SECONDS, 0); + return this.getToken(HiveSql.T_SECONDS, 0); }; Interval_itemContext.prototype.enterRule = function(listener) { @@ -29910,18 +29957,18 @@ Interval_itemContext.prototype.accept = function(visitor) { -HiveSqlParser.Interval_itemContext = Interval_itemContext; +HiveSql.Interval_itemContext = Interval_itemContext; -HiveSqlParser.prototype.interval_item = function() { +HiveSql.prototype.interval_item = function() { var localctx = new Interval_itemContext(this, this._ctx, this.state); - this.enterRule(localctx, 388, HiveSqlParser.RULE_interval_item); + this.enterRule(localctx, 388, HiveSql.RULE_interval_item); var _la = 0; // Token type try { this.enterOuterAlt(localctx, 1); - this.state = 2771; + this.state = 2768; _la = this._input.LA(1); - if(!(((((_la - 316)) & ~0x1f) == 0 && ((1 << (_la - 316)) & ((1 << (HiveSqlParser.T_DAY - 316)) | (1 << (HiveSqlParser.T_DAYS - 316)) | (1 << (HiveSqlParser.T_MICROSECOND - 316)) | (1 << (HiveSqlParser.T_MICROSECONDS - 316)) | (1 << (HiveSqlParser.T_SECOND - 316)) | (1 << (HiveSqlParser.T_SECONDS - 316)))) !== 0))) { + if(!(_la===HiveSql.T_DAY || _la===HiveSql.T_DAYS || _la===HiveSql.T_MICROSECOND || _la===HiveSql.T_MICROSECONDS || _la===HiveSql.T_SECOND || _la===HiveSql.T_SECONDS)) { this._errHandler.recoverInline(this); } else { @@ -29952,7 +29999,7 @@ function Expr_concatContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_expr_concat; + this.ruleIndex = HiveSql.RULE_expr_concat; return this; } @@ -29975,9 +30022,9 @@ Expr_concatContext.prototype.T_PIPE = function(i) { i = null; } if(i===null) { - return this.getTokens(HiveSqlParser.T_PIPE); + return this.getTokens(HiveSql.T_PIPE); } else { - return this.getToken(HiveSqlParser.T_PIPE, i); + return this.getToken(HiveSql.T_PIPE, i); } }; @@ -29987,9 +30034,9 @@ Expr_concatContext.prototype.T_CONCAT = function(i) { i = null; } if(i===null) { - return this.getTokens(HiveSqlParser.T_CONCAT); + return this.getTokens(HiveSql.T_CONCAT); } else { - return this.getToken(HiveSqlParser.T_CONCAT, i); + return this.getToken(HiveSql.T_CONCAT, i); } }; @@ -30017,46 +30064,46 @@ Expr_concatContext.prototype.accept = function(visitor) { -HiveSqlParser.Expr_concatContext = Expr_concatContext; +HiveSql.Expr_concatContext = Expr_concatContext; -HiveSqlParser.prototype.expr_concat = function() { +HiveSql.prototype.expr_concat = function() { var localctx = new Expr_concatContext(this, this._ctx, this.state); - this.enterRule(localctx, 390, HiveSqlParser.RULE_expr_concat); + this.enterRule(localctx, 390, HiveSql.RULE_expr_concat); var _la = 0; // Token type try { this.enterOuterAlt(localctx, 1); - this.state = 2773; + this.state = 2770; this.expr_concat_item(); - this.state = 2774; + this.state = 2771; _la = this._input.LA(1); - if(!(_la===HiveSqlParser.T_PIPE || _la===HiveSqlParser.T_CONCAT)) { + if(!(_la===HiveSql.T_CONCAT || _la===HiveSql.T_PIPE)) { this._errHandler.recoverInline(this); } else { this._errHandler.reportMatch(this); this.consume(); } - this.state = 2775; + this.state = 2772; this.expr_concat_item(); - this.state = 2780; + this.state = 2777; this._errHandler.sync(this); var _alt = this._interp.adaptivePredict(this._input,348,this._ctx) while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { if(_alt===1) { - this.state = 2776; + this.state = 2773; _la = this._input.LA(1); - if(!(_la===HiveSqlParser.T_PIPE || _la===HiveSqlParser.T_CONCAT)) { + if(!(_la===HiveSql.T_CONCAT || _la===HiveSql.T_PIPE)) { this._errHandler.recoverInline(this); } else { this._errHandler.reportMatch(this); this.consume(); } - this.state = 2777; + this.state = 2774; this.expr_concat_item(); } - this.state = 2782; + this.state = 2779; this._errHandler.sync(this); _alt = this._interp.adaptivePredict(this._input,348,this._ctx); } @@ -30085,7 +30132,7 @@ function Expr_concat_itemContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_expr_concat_item; + this.ruleIndex = HiveSql.RULE_expr_concat_item; return this; } @@ -30093,7 +30140,7 @@ Expr_concat_itemContext.prototype = Object.create(antlr4.ParserRuleContext.proto Expr_concat_itemContext.prototype.constructor = Expr_concat_itemContext; Expr_concat_itemContext.prototype.T_OPEN_P = function() { - return this.getToken(HiveSqlParser.T_OPEN_P, 0); + return this.getToken(HiveSql.T_OPEN_P, 0); }; Expr_concat_itemContext.prototype.expr = function() { @@ -30101,7 +30148,7 @@ Expr_concat_itemContext.prototype.expr = function() { }; Expr_concat_itemContext.prototype.T_CLOSE_P = function() { - return this.getToken(HiveSqlParser.T_CLOSE_P, 0); + return this.getToken(HiveSql.T_CLOSE_P, 0); }; Expr_concat_itemContext.prototype.expr_case = function() { @@ -30147,54 +30194,54 @@ Expr_concat_itemContext.prototype.accept = function(visitor) { -HiveSqlParser.Expr_concat_itemContext = Expr_concat_itemContext; +HiveSql.Expr_concat_itemContext = Expr_concat_itemContext; -HiveSqlParser.prototype.expr_concat_item = function() { +HiveSql.prototype.expr_concat_item = function() { var localctx = new Expr_concat_itemContext(this, this._ctx, this.state); - this.enterRule(localctx, 392, HiveSqlParser.RULE_expr_concat_item); + this.enterRule(localctx, 392, HiveSql.RULE_expr_concat_item); try { - this.state = 2792; + this.state = 2789; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,349,this._ctx); switch(la_) { case 1: this.enterOuterAlt(localctx, 1); - this.state = 2783; - this.match(HiveSqlParser.T_OPEN_P); - this.state = 2784; + this.state = 2780; + this.match(HiveSql.T_OPEN_P); + this.state = 2781; this.expr(0); - this.state = 2785; - this.match(HiveSqlParser.T_CLOSE_P); + this.state = 2782; + this.match(HiveSql.T_CLOSE_P); break; case 2: this.enterOuterAlt(localctx, 2); - this.state = 2787; + this.state = 2784; this.expr_case(); break; case 3: this.enterOuterAlt(localctx, 3); - this.state = 2788; + this.state = 2785; this.expr_agg_window_func(); break; case 4: this.enterOuterAlt(localctx, 4); - this.state = 2789; + this.state = 2786; this.expr_spec_func(); break; case 5: this.enterOuterAlt(localctx, 5); - this.state = 2790; + this.state = 2787; this.expr_func(); break; case 6: this.enterOuterAlt(localctx, 6); - this.state = 2791; + this.state = 2788; this.expr_atom(); break; @@ -30223,7 +30270,7 @@ function Expr_caseContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_expr_case; + this.ruleIndex = HiveSql.RULE_expr_case; return this; } @@ -30261,26 +30308,26 @@ Expr_caseContext.prototype.accept = function(visitor) { -HiveSqlParser.Expr_caseContext = Expr_caseContext; +HiveSql.Expr_caseContext = Expr_caseContext; -HiveSqlParser.prototype.expr_case = function() { +HiveSql.prototype.expr_case = function() { var localctx = new Expr_caseContext(this, this._ctx, this.state); - this.enterRule(localctx, 394, HiveSqlParser.RULE_expr_case); + this.enterRule(localctx, 394, HiveSql.RULE_expr_case); try { - this.state = 2796; + this.state = 2793; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,350,this._ctx); switch(la_) { case 1: this.enterOuterAlt(localctx, 1); - this.state = 2794; + this.state = 2791; this.expr_case_simple(); break; case 2: this.enterOuterAlt(localctx, 2); - this.state = 2795; + this.state = 2792; this.expr_case_searched(); break; @@ -30309,7 +30356,7 @@ function Expr_case_simpleContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_expr_case_simple; + this.ruleIndex = HiveSql.RULE_expr_case_simple; return this; } @@ -30317,7 +30364,7 @@ Expr_case_simpleContext.prototype = Object.create(antlr4.ParserRuleContext.proto Expr_case_simpleContext.prototype.constructor = Expr_case_simpleContext; Expr_case_simpleContext.prototype.T_CASE = function() { - return this.getToken(HiveSqlParser.T_CASE, 0); + return this.getToken(HiveSql.T_CASE, 0); }; Expr_case_simpleContext.prototype.expr = function(i) { @@ -30332,7 +30379,7 @@ Expr_case_simpleContext.prototype.expr = function(i) { }; Expr_case_simpleContext.prototype.T_END = function() { - return this.getToken(HiveSqlParser.T_END, 0); + return this.getToken(HiveSql.T_END, 0); }; Expr_case_simpleContext.prototype.T_WHEN = function(i) { @@ -30340,9 +30387,9 @@ Expr_case_simpleContext.prototype.T_WHEN = function(i) { i = null; } if(i===null) { - return this.getTokens(HiveSqlParser.T_WHEN); + return this.getTokens(HiveSql.T_WHEN); } else { - return this.getToken(HiveSqlParser.T_WHEN, i); + return this.getToken(HiveSql.T_WHEN, i); } }; @@ -30352,15 +30399,15 @@ Expr_case_simpleContext.prototype.T_THEN = function(i) { i = null; } if(i===null) { - return this.getTokens(HiveSqlParser.T_THEN); + return this.getTokens(HiveSql.T_THEN); } else { - return this.getToken(HiveSqlParser.T_THEN, i); + return this.getToken(HiveSql.T_THEN, i); } }; Expr_case_simpleContext.prototype.T_ELSE = function() { - return this.getToken(HiveSqlParser.T_ELSE, 0); + return this.getToken(HiveSql.T_ELSE, 0); }; Expr_case_simpleContext.prototype.enterRule = function(listener) { @@ -30386,47 +30433,47 @@ Expr_case_simpleContext.prototype.accept = function(visitor) { -HiveSqlParser.Expr_case_simpleContext = Expr_case_simpleContext; +HiveSql.Expr_case_simpleContext = Expr_case_simpleContext; -HiveSqlParser.prototype.expr_case_simple = function() { +HiveSql.prototype.expr_case_simple = function() { var localctx = new Expr_case_simpleContext(this, this._ctx, this.state); - this.enterRule(localctx, 396, HiveSqlParser.RULE_expr_case_simple); + this.enterRule(localctx, 396, HiveSql.RULE_expr_case_simple); var _la = 0; // Token type try { this.enterOuterAlt(localctx, 1); - this.state = 2798; - this.match(HiveSqlParser.T_CASE); - this.state = 2799; + this.state = 2795; + this.match(HiveSql.T_CASE); + this.state = 2796; this.expr(0); - this.state = 2805; + this.state = 2802; this._errHandler.sync(this); _la = this._input.LA(1); do { + this.state = 2797; + this.match(HiveSql.T_WHEN); + this.state = 2798; + this.expr(0); + this.state = 2799; + this.match(HiveSql.T_THEN); this.state = 2800; - this.match(HiveSqlParser.T_WHEN); - this.state = 2801; this.expr(0); - this.state = 2802; - this.match(HiveSqlParser.T_THEN); - this.state = 2803; - this.expr(0); - this.state = 2807; + this.state = 2804; this._errHandler.sync(this); _la = this._input.LA(1); - } while(_la===HiveSqlParser.T_WHEN); - this.state = 2811; + } while(_la===HiveSql.T_WHEN); + this.state = 2808; this._errHandler.sync(this); _la = this._input.LA(1); - if(_la===HiveSqlParser.T_ELSE) { - this.state = 2809; - this.match(HiveSqlParser.T_ELSE); - this.state = 2810; + if(_la===HiveSql.T_ELSE) { + this.state = 2806; + this.match(HiveSql.T_ELSE); + this.state = 2807; this.expr(0); } - this.state = 2813; - this.match(HiveSqlParser.T_END); + this.state = 2810; + this.match(HiveSql.T_END); } catch (re) { if(re instanceof antlr4.error.RecognitionException) { localctx.exception = re; @@ -30451,7 +30498,7 @@ function Expr_case_searchedContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_expr_case_searched; + this.ruleIndex = HiveSql.RULE_expr_case_searched; return this; } @@ -30459,11 +30506,11 @@ Expr_case_searchedContext.prototype = Object.create(antlr4.ParserRuleContext.pro Expr_case_searchedContext.prototype.constructor = Expr_case_searchedContext; Expr_case_searchedContext.prototype.T_CASE = function() { - return this.getToken(HiveSqlParser.T_CASE, 0); + return this.getToken(HiveSql.T_CASE, 0); }; Expr_case_searchedContext.prototype.T_END = function() { - return this.getToken(HiveSqlParser.T_END, 0); + return this.getToken(HiveSql.T_END, 0); }; Expr_case_searchedContext.prototype.T_WHEN = function(i) { @@ -30471,9 +30518,9 @@ Expr_case_searchedContext.prototype.T_WHEN = function(i) { i = null; } if(i===null) { - return this.getTokens(HiveSqlParser.T_WHEN); + return this.getTokens(HiveSql.T_WHEN); } else { - return this.getToken(HiveSqlParser.T_WHEN, i); + return this.getToken(HiveSql.T_WHEN, i); } }; @@ -30494,9 +30541,9 @@ Expr_case_searchedContext.prototype.T_THEN = function(i) { i = null; } if(i===null) { - return this.getTokens(HiveSqlParser.T_THEN); + return this.getTokens(HiveSql.T_THEN); } else { - return this.getToken(HiveSqlParser.T_THEN, i); + return this.getToken(HiveSql.T_THEN, i); } }; @@ -30513,7 +30560,7 @@ Expr_case_searchedContext.prototype.expr = function(i) { }; Expr_case_searchedContext.prototype.T_ELSE = function() { - return this.getToken(HiveSqlParser.T_ELSE, 0); + return this.getToken(HiveSql.T_ELSE, 0); }; Expr_case_searchedContext.prototype.enterRule = function(listener) { @@ -30539,45 +30586,45 @@ Expr_case_searchedContext.prototype.accept = function(visitor) { -HiveSqlParser.Expr_case_searchedContext = Expr_case_searchedContext; +HiveSql.Expr_case_searchedContext = Expr_case_searchedContext; -HiveSqlParser.prototype.expr_case_searched = function() { +HiveSql.prototype.expr_case_searched = function() { var localctx = new Expr_case_searchedContext(this, this._ctx, this.state); - this.enterRule(localctx, 398, HiveSqlParser.RULE_expr_case_searched); + this.enterRule(localctx, 398, HiveSql.RULE_expr_case_searched); var _la = 0; // Token type try { this.enterOuterAlt(localctx, 1); - this.state = 2815; - this.match(HiveSqlParser.T_CASE); - this.state = 2821; + this.state = 2812; + this.match(HiveSql.T_CASE); + this.state = 2818; this._errHandler.sync(this); _la = this._input.LA(1); do { - this.state = 2816; - this.match(HiveSqlParser.T_WHEN); - this.state = 2817; + this.state = 2813; + this.match(HiveSql.T_WHEN); + this.state = 2814; this.bool_expr(0); - this.state = 2818; - this.match(HiveSqlParser.T_THEN); - this.state = 2819; + this.state = 2815; + this.match(HiveSql.T_THEN); + this.state = 2816; this.expr(0); - this.state = 2823; + this.state = 2820; this._errHandler.sync(this); _la = this._input.LA(1); - } while(_la===HiveSqlParser.T_WHEN); - this.state = 2827; + } while(_la===HiveSql.T_WHEN); + this.state = 2824; this._errHandler.sync(this); _la = this._input.LA(1); - if(_la===HiveSqlParser.T_ELSE) { - this.state = 2825; - this.match(HiveSqlParser.T_ELSE); - this.state = 2826; + if(_la===HiveSql.T_ELSE) { + this.state = 2822; + this.match(HiveSql.T_ELSE); + this.state = 2823; this.expr(0); } - this.state = 2829; - this.match(HiveSqlParser.T_END); + this.state = 2826; + this.match(HiveSql.T_END); } catch (re) { if(re instanceof antlr4.error.RecognitionException) { localctx.exception = re; @@ -30602,7 +30649,7 @@ function Expr_cursor_attributeContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_expr_cursor_attribute; + this.ruleIndex = HiveSql.RULE_expr_cursor_attribute; return this; } @@ -30613,16 +30660,20 @@ Expr_cursor_attributeContext.prototype.ident = function() { return this.getTypedRuleContext(IdentContext,0); }; +Expr_cursor_attributeContext.prototype.T_PRECENT = function() { + return this.getToken(HiveSql.T_PRECENT, 0); +}; + Expr_cursor_attributeContext.prototype.T_ISOPEN = function() { - return this.getToken(HiveSqlParser.T_ISOPEN, 0); + return this.getToken(HiveSql.T_ISOPEN, 0); }; Expr_cursor_attributeContext.prototype.T_FOUND = function() { - return this.getToken(HiveSqlParser.T_FOUND, 0); + return this.getToken(HiveSql.T_FOUND, 0); }; Expr_cursor_attributeContext.prototype.T_NOTFOUND = function() { - return this.getToken(HiveSqlParser.T_NOTFOUND, 0); + return this.getToken(HiveSql.T_NOTFOUND, 0); }; Expr_cursor_attributeContext.prototype.enterRule = function(listener) { @@ -30648,22 +30699,22 @@ Expr_cursor_attributeContext.prototype.accept = function(visitor) { -HiveSqlParser.Expr_cursor_attributeContext = Expr_cursor_attributeContext; +HiveSql.Expr_cursor_attributeContext = Expr_cursor_attributeContext; -HiveSqlParser.prototype.expr_cursor_attribute = function() { +HiveSql.prototype.expr_cursor_attribute = function() { var localctx = new Expr_cursor_attributeContext(this, this._ctx, this.state); - this.enterRule(localctx, 400, HiveSqlParser.RULE_expr_cursor_attribute); + this.enterRule(localctx, 400, HiveSql.RULE_expr_cursor_attribute); var _la = 0; // Token type try { this.enterOuterAlt(localctx, 1); - this.state = 2831; + this.state = 2828; this.ident(); - this.state = 2832; - this.match(HiveSqlParser.T__3); - this.state = 2833; + this.state = 2829; + this.match(HiveSql.T_PRECENT); + this.state = 2830; _la = this._input.LA(1); - if(!(_la===HiveSqlParser.T_FOUND || _la===HiveSqlParser.T_ISOPEN || _la===HiveSqlParser.T_NOTFOUND)) { + if(!(_la===HiveSql.T_FOUND || _la===HiveSql.T_ISOPEN || _la===HiveSql.T_NOTFOUND)) { this._errHandler.recoverInline(this); } else { @@ -30694,7 +30745,7 @@ function Expr_agg_window_funcContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_expr_agg_window_func; + this.ruleIndex = HiveSql.RULE_expr_agg_window_func; return this; } @@ -30702,11 +30753,11 @@ Expr_agg_window_funcContext.prototype = Object.create(antlr4.ParserRuleContext.p Expr_agg_window_funcContext.prototype.constructor = Expr_agg_window_funcContext; Expr_agg_window_funcContext.prototype.T_AVG = function() { - return this.getToken(HiveSqlParser.T_AVG, 0); + return this.getToken(HiveSql.T_AVG, 0); }; Expr_agg_window_funcContext.prototype.T_OPEN_P = function() { - return this.getToken(HiveSqlParser.T_OPEN_P, 0); + return this.getToken(HiveSql.T_OPEN_P, 0); }; Expr_agg_window_funcContext.prototype.expr = function(i) { @@ -30721,7 +30772,7 @@ Expr_agg_window_funcContext.prototype.expr = function(i) { }; Expr_agg_window_funcContext.prototype.T_CLOSE_P = function() { - return this.getToken(HiveSqlParser.T_CLOSE_P, 0); + return this.getToken(HiveSql.T_CLOSE_P, 0); }; Expr_agg_window_funcContext.prototype.expr_func_all_distinct = function() { @@ -30733,27 +30784,31 @@ Expr_agg_window_funcContext.prototype.expr_func_over_clause = function() { }; Expr_agg_window_funcContext.prototype.T_COUNT = function() { - return this.getToken(HiveSqlParser.T_COUNT, 0); + return this.getToken(HiveSql.T_COUNT, 0); +}; + +Expr_agg_window_funcContext.prototype.T_MUL = function() { + return this.getToken(HiveSql.T_MUL, 0); }; Expr_agg_window_funcContext.prototype.T_COUNT_BIG = function() { - return this.getToken(HiveSqlParser.T_COUNT_BIG, 0); + return this.getToken(HiveSql.T_COUNT_BIG, 0); }; Expr_agg_window_funcContext.prototype.T_CUME_DIST = function() { - return this.getToken(HiveSqlParser.T_CUME_DIST, 0); + return this.getToken(HiveSql.T_CUME_DIST, 0); }; Expr_agg_window_funcContext.prototype.T_DENSE_RANK = function() { - return this.getToken(HiveSqlParser.T_DENSE_RANK, 0); + return this.getToken(HiveSql.T_DENSE_RANK, 0); }; Expr_agg_window_funcContext.prototype.T_FIRST_VALUE = function() { - return this.getToken(HiveSqlParser.T_FIRST_VALUE, 0); + return this.getToken(HiveSql.T_FIRST_VALUE, 0); }; Expr_agg_window_funcContext.prototype.T_LAG = function() { - return this.getToken(HiveSqlParser.T_LAG, 0); + return this.getToken(HiveSql.T_LAG, 0); }; Expr_agg_window_funcContext.prototype.T_COMMA = function(i) { @@ -30761,51 +30816,51 @@ Expr_agg_window_funcContext.prototype.T_COMMA = function(i) { i = null; } if(i===null) { - return this.getTokens(HiveSqlParser.T_COMMA); + return this.getTokens(HiveSql.T_COMMA); } else { - return this.getToken(HiveSqlParser.T_COMMA, i); + return this.getToken(HiveSql.T_COMMA, i); } }; Expr_agg_window_funcContext.prototype.T_LAST_VALUE = function() { - return this.getToken(HiveSqlParser.T_LAST_VALUE, 0); + return this.getToken(HiveSql.T_LAST_VALUE, 0); }; Expr_agg_window_funcContext.prototype.T_LEAD = function() { - return this.getToken(HiveSqlParser.T_LEAD, 0); + return this.getToken(HiveSql.T_LEAD, 0); }; Expr_agg_window_funcContext.prototype.T_MAX = function() { - return this.getToken(HiveSqlParser.T_MAX, 0); + return this.getToken(HiveSql.T_MAX, 0); }; Expr_agg_window_funcContext.prototype.T_MIN = function() { - return this.getToken(HiveSqlParser.T_MIN, 0); + return this.getToken(HiveSql.T_MIN, 0); }; Expr_agg_window_funcContext.prototype.T_RANK = function() { - return this.getToken(HiveSqlParser.T_RANK, 0); + return this.getToken(HiveSql.T_RANK, 0); }; Expr_agg_window_funcContext.prototype.T_ROW_NUMBER = function() { - return this.getToken(HiveSqlParser.T_ROW_NUMBER, 0); + return this.getToken(HiveSql.T_ROW_NUMBER, 0); }; Expr_agg_window_funcContext.prototype.T_STDEV = function() { - return this.getToken(HiveSqlParser.T_STDEV, 0); + return this.getToken(HiveSql.T_STDEV, 0); }; Expr_agg_window_funcContext.prototype.T_SUM = function() { - return this.getToken(HiveSqlParser.T_SUM, 0); + return this.getToken(HiveSql.T_SUM, 0); }; Expr_agg_window_funcContext.prototype.T_VAR = function() { - return this.getToken(HiveSqlParser.T_VAR, 0); + return this.getToken(HiveSql.T_VAR, 0); }; Expr_agg_window_funcContext.prototype.T_VARIANCE = function() { - return this.getToken(HiveSqlParser.T_VARIANCE, 0); + return this.getToken(HiveSql.T_VARIANCE, 0); }; Expr_agg_window_funcContext.prototype.enterRule = function(listener) { @@ -30831,1080 +30886,1080 @@ Expr_agg_window_funcContext.prototype.accept = function(visitor) { -HiveSqlParser.Expr_agg_window_funcContext = Expr_agg_window_funcContext; +HiveSql.Expr_agg_window_funcContext = Expr_agg_window_funcContext; -HiveSqlParser.prototype.expr_agg_window_func = function() { +HiveSql.prototype.expr_agg_window_func = function() { var localctx = new Expr_agg_window_funcContext(this, this._ctx, this.state); - this.enterRule(localctx, 402, HiveSqlParser.RULE_expr_agg_window_func); + this.enterRule(localctx, 402, HiveSql.RULE_expr_agg_window_func); var _la = 0; // Token type try { - this.state = 2987; + this.state = 2984; this._errHandler.sync(this); switch(this._input.LA(1)) { - case HiveSqlParser.T_AVG: + case HiveSql.T_AVG: this.enterOuterAlt(localctx, 1); + this.state = 2832; + this.match(HiveSql.T_AVG); + this.state = 2833; + this.match(HiveSql.T_OPEN_P); this.state = 2835; - this.match(HiveSqlParser.T_AVG); - this.state = 2836; - this.match(HiveSqlParser.T_OPEN_P); - this.state = 2838; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,355,this._ctx); if(la_===1) { - this.state = 2837; + this.state = 2834; this.expr_func_all_distinct(); } - this.state = 2840; + this.state = 2837; this.expr(0); - this.state = 2841; - this.match(HiveSqlParser.T_CLOSE_P); - this.state = 2843; + this.state = 2838; + this.match(HiveSql.T_CLOSE_P); + this.state = 2840; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,356,this._ctx); if(la_===1) { - this.state = 2842; + this.state = 2839; this.expr_func_over_clause(); } break; - case HiveSqlParser.T_COUNT: + case HiveSql.T_COUNT: this.enterOuterAlt(localctx, 2); - this.state = 2845; - this.match(HiveSqlParser.T_COUNT); - this.state = 2846; - this.match(HiveSqlParser.T_OPEN_P); - this.state = 2852; + this.state = 2842; + this.match(HiveSql.T_COUNT); + this.state = 2843; + this.match(HiveSql.T_OPEN_P); + this.state = 2849; this._errHandler.sync(this); switch(this._input.LA(1)) { - case HiveSqlParser.T__8: - case HiveSqlParser.T__9: - case HiveSqlParser.T_GO: - case HiveSqlParser.T_BEGIN: - case HiveSqlParser.T_EXCEPTION: - case HiveSqlParser.L_ID: - case HiveSqlParser.T_THEN: - case HiveSqlParser.T_NULL: - case HiveSqlParser.T_SET: - case HiveSqlParser.T_OPEN_P: - case HiveSqlParser.T_ALLOCATE: - case HiveSqlParser.T_CURSOR: - case HiveSqlParser.T_FOR: - case HiveSqlParser.T_RESULT: - case HiveSqlParser.T_PROCEDURE: - case HiveSqlParser.T_ASSOCIATE: - case HiveSqlParser.T_LOCATOR: - case HiveSqlParser.T_LOCATORS: - case HiveSqlParser.T_WITH: - case HiveSqlParser.T_TRANSACTION: - case HiveSqlParser.T_BREAK: - case HiveSqlParser.T_CALL: - case HiveSqlParser.T_DECLARE: - case HiveSqlParser.T_AS: - case HiveSqlParser.T_CONSTANT: - case HiveSqlParser.T_CONDITION: - case HiveSqlParser.T_IS: - case HiveSqlParser.T_RETURN: - case HiveSqlParser.T_ONLY: - case HiveSqlParser.T_TO: - case HiveSqlParser.T_CALLER: - case HiveSqlParser.T_CLIENT: - case HiveSqlParser.T_WITHOUT: - case HiveSqlParser.T_CONTINUE: - case HiveSqlParser.T_EXIT: - case HiveSqlParser.T_HANDLER: - case HiveSqlParser.T_SQLEXCEPTION: - case HiveSqlParser.T_SQLWARNING: - case HiveSqlParser.T_NOT: - case HiveSqlParser.T_FOUND: - case HiveSqlParser.T_GLOBAL: - case HiveSqlParser.T_TEMPORARY: - case HiveSqlParser.T_TABLE: - case HiveSqlParser.T_CREATE: - case HiveSqlParser.T_IF: - case HiveSqlParser.T_EXISTS: - case HiveSqlParser.T_LOCAL: - case HiveSqlParser.T_MULTISET: - case HiveSqlParser.T_VOLATILE: - case HiveSqlParser.T_LIKE: - case HiveSqlParser.T_CONSTRAINT: - case HiveSqlParser.T_PRIMARY: - case HiveSqlParser.T_KEY: - case HiveSqlParser.T_UNIQUE: - case HiveSqlParser.T_REFERENCES: - case HiveSqlParser.T_IDENTITY: - case HiveSqlParser.L_INT: - case HiveSqlParser.T_AUTO_INCREMENT: - case HiveSqlParser.T_ENABLE: - case HiveSqlParser.T_CLUSTERED: - case HiveSqlParser.T_ASC: - case HiveSqlParser.T_DESC: - case HiveSqlParser.T_FOREIGN: - case HiveSqlParser.T_ON: - case HiveSqlParser.T_UPDATE: - case HiveSqlParser.T_DELETE: - case HiveSqlParser.T_NO: - case HiveSqlParser.T_ACTION: - case HiveSqlParser.T_RESTRICT: - case HiveSqlParser.T_DEFAULT: - case HiveSqlParser.T_CASCADE: - case HiveSqlParser.T_LOG: - case HiveSqlParser.T_FALLBACK: - case HiveSqlParser.T_COMMIT: - case HiveSqlParser.T_PRESERVE: - case HiveSqlParser.T_ROWS: - case HiveSqlParser.T_SEGMENT: - case HiveSqlParser.T_CREATION: - case HiveSqlParser.T_IMMEDIATE: - case HiveSqlParser.T_DEFERRED: - case HiveSqlParser.T_PCTFREE: - case HiveSqlParser.T_PCTUSED: - case HiveSqlParser.T_INITRANS: - case HiveSqlParser.T_MAXTRANS: - case HiveSqlParser.T_NOCOMPRESS: - case HiveSqlParser.T_LOGGING: - case HiveSqlParser.T_NOLOGGING: - case HiveSqlParser.T_STORAGE: - case HiveSqlParser.T_TABLESPACE: - case HiveSqlParser.T_INDEX: - case HiveSqlParser.T_IN: - case HiveSqlParser.T_REPLACE: - case HiveSqlParser.T_DISTRIBUTE: - case HiveSqlParser.T_BY: - case HiveSqlParser.T_HASH: - case HiveSqlParser.T_LOGGED: - case HiveSqlParser.T_COMPRESS: - case HiveSqlParser.T_YES: - case HiveSqlParser.T_DEFINITION: - case HiveSqlParser.T_DROP: - case HiveSqlParser.T_DATA: - case HiveSqlParser.T_STORED: - case HiveSqlParser.T_ROW: - case HiveSqlParser.T_FORMAT: - case HiveSqlParser.T_DELIMITED: - case HiveSqlParser.T_FIELDS: - case HiveSqlParser.T_TERMINATED: - case HiveSqlParser.T_ESCAPED: - case HiveSqlParser.T_COLLECTION: - case HiveSqlParser.T_ITEMS: - case HiveSqlParser.T_MAP: - case HiveSqlParser.T_KEYS: - case HiveSqlParser.T_LINES: - case HiveSqlParser.T_DEFINED: - case HiveSqlParser.T_TEXTIMAGE_ON: - case HiveSqlParser.T_COMMENT: - case HiveSqlParser.T_CHARACTER: - case HiveSqlParser.T_CHARSET: - case HiveSqlParser.T_ENGINE: - case HiveSqlParser.T_ALTER: - case HiveSqlParser.T_ADD2: - case HiveSqlParser.T_CHAR: - case HiveSqlParser.T_BIGINT: - case HiveSqlParser.T_BINARY_DOUBLE: - case HiveSqlParser.T_BINARY_FLOAT: - case HiveSqlParser.T_BIT: - case HiveSqlParser.T_DATE: - case HiveSqlParser.T_DATETIME: - case HiveSqlParser.T_DEC: - case HiveSqlParser.T_DECIMAL: - case HiveSqlParser.T_DOUBLE: - case HiveSqlParser.T_PRECISION: - case HiveSqlParser.T_FLOAT: - case HiveSqlParser.T_INT: - case HiveSqlParser.T_INT2: - case HiveSqlParser.T_INT4: - case HiveSqlParser.T_INT8: - case HiveSqlParser.T_INTEGER: - case HiveSqlParser.T_NCHAR: - case HiveSqlParser.T_NVARCHAR: - case HiveSqlParser.T_NUMBER: - case HiveSqlParser.T_NUMERIC: - case HiveSqlParser.T_REAL: - case HiveSqlParser.T_RESULT_SET_LOCATOR: - case HiveSqlParser.T_VARYING: - case HiveSqlParser.T_SIMPLE_FLOAT: - case HiveSqlParser.T_SIMPLE_DOUBLE: - case HiveSqlParser.T_SMALLINT: - case HiveSqlParser.T_SMALLDATETIME: - case HiveSqlParser.T_STRING: - case HiveSqlParser.T_SYS_REFCURSOR: - case HiveSqlParser.T_TIMESTAMP: - case HiveSqlParser.T_VARCHAR: - case HiveSqlParser.T_VARCHAR2: - case HiveSqlParser.T_XML: - case HiveSqlParser.T_MAX: - case HiveSqlParser.T_BYTE: - case HiveSqlParser.T_CASESPECIFIC: - case HiveSqlParser.T_CS: - case HiveSqlParser.T_DATABASE: - case HiveSqlParser.T_SCHEMA: - case HiveSqlParser.T_LOCATION: - case HiveSqlParser.T_OR: - case HiveSqlParser.T_FUNCTION: - case HiveSqlParser.T_RETURNS: - case HiveSqlParser.T_PACKAGE: - case HiveSqlParser.T_PROC: - case HiveSqlParser.T_BODY: - case HiveSqlParser.T_OUT: - case HiveSqlParser.T_INOUT: - case HiveSqlParser.T_LANGUAGE: - case HiveSqlParser.T_SQL: - case HiveSqlParser.T_SECURITY: - case HiveSqlParser.T_CREATOR: - case HiveSqlParser.T_DEFINER: - case HiveSqlParser.T_INVOKER: - case HiveSqlParser.T_OWNER: - case HiveSqlParser.T_DYNAMIC: - case HiveSqlParser.T_SETS: - case HiveSqlParser.T_EXEC: - case HiveSqlParser.T_EXECUTE: - case HiveSqlParser.T_INTO: - case HiveSqlParser.T_INCLUDE: - case HiveSqlParser.T_INSERT: - case HiveSqlParser.T_OVERWRITE: - case HiveSqlParser.T_VALUES: - case HiveSqlParser.T_DIRECTORY: - case HiveSqlParser.T_GET: - case HiveSqlParser.T_DIAGNOSTICS: - case HiveSqlParser.T_MESSAGE_TEXT: - case HiveSqlParser.T_ROW_COUNT: - case HiveSqlParser.T_GRANT: - case HiveSqlParser.T_ROLE: - case HiveSqlParser.T_LEAVE: - case HiveSqlParser.T_OBJECT: - case HiveSqlParser.T_AT: - case HiveSqlParser.T_OPEN: - case HiveSqlParser.T_FETCH: - case HiveSqlParser.T_FROM: - case HiveSqlParser.T_COLLECT: - case HiveSqlParser.T_STATISTICS: - case HiveSqlParser.T_STATS: - case HiveSqlParser.T_COLUMN: - case HiveSqlParser.T_CLOSE: - case HiveSqlParser.T_CMP: - case HiveSqlParser.T_SUM: - case HiveSqlParser.T_COPY: - case HiveSqlParser.T_HDFS: - case HiveSqlParser.T_BATCHSIZE: - case HiveSqlParser.T_DELIMITER: - case HiveSqlParser.T_SQLINSERT: - case HiveSqlParser.T_IGNORE: - case HiveSqlParser.T_WORK: - case HiveSqlParser.T_PRINT: - case HiveSqlParser.T_QUIT: - case HiveSqlParser.T_RAISE: - case HiveSqlParser.T_RESIGNAL: - case HiveSqlParser.T_SQLSTATE: - case HiveSqlParser.T_VALUE: - case HiveSqlParser.T_ROLLBACK: - case HiveSqlParser.T_CURRENT: - case HiveSqlParser.T_CURRENT_SCHEMA: - case HiveSqlParser.T_ANSI_NULLS: - case HiveSqlParser.T_ANSI_PADDING: - case HiveSqlParser.T_NOCOUNT: - case HiveSqlParser.T_QUOTED_IDENTIFIER: - case HiveSqlParser.T_XACT_ABORT: - case HiveSqlParser.T_OFF: - case HiveSqlParser.T_QUERY_BAND: - case HiveSqlParser.T_NONE: - case HiveSqlParser.T_SESSION: - case HiveSqlParser.T_SIGNAL: - case HiveSqlParser.T_SUMMARY: - case HiveSqlParser.T_TOP: - case HiveSqlParser.T_LIMIT: - case HiveSqlParser.T_TRUNCATE: - case HiveSqlParser.T_USE: - case HiveSqlParser.T_WHILE: - case HiveSqlParser.T_DO: - case HiveSqlParser.T_LOOP: - case HiveSqlParser.T_REVERSE: - case HiveSqlParser.T_STEP: - case HiveSqlParser.T_USING: - case HiveSqlParser.T_ALL: - case HiveSqlParser.T_EXCEPT: - case HiveSqlParser.T_INTERSECT: - case HiveSqlParser.T_SELECT: - case HiveSqlParser.T_SEL: - case HiveSqlParser.T_DISTINCT: - case HiveSqlParser.T_TITLE: - case HiveSqlParser.L_S_STRING: - case HiveSqlParser.T_INNER: - case HiveSqlParser.T_JOIN: - case HiveSqlParser.T_LEFT: - case HiveSqlParser.T_RIGHT: - case HiveSqlParser.T_FULL: - case HiveSqlParser.T_OUTER: - case HiveSqlParser.T_GROUP: - case HiveSqlParser.T_HAVING: - case HiveSqlParser.T_QUALIFY: - case HiveSqlParser.T_ORDER: - case HiveSqlParser.T_RR: - case HiveSqlParser.T_RS: - case HiveSqlParser.T_UR: - case HiveSqlParser.T_AND: - case HiveSqlParser.T_KEEP: - case HiveSqlParser.T_EXCLUSIVE: - case HiveSqlParser.T_SHARE: - case HiveSqlParser.T_LOCKS: - case HiveSqlParser.T_MERGE: - case HiveSqlParser.T_MATCHED: - case HiveSqlParser.T_DESCRIBE: - case HiveSqlParser.T_BETWEEN: - case HiveSqlParser.T_RLIKE: - case HiveSqlParser.T_REGEXP: - case HiveSqlParser.T_INTERVAL: - case HiveSqlParser.T_DAY: - case HiveSqlParser.T_DAYS: - case HiveSqlParser.T_MICROSECOND: - case HiveSqlParser.T_MICROSECONDS: - case HiveSqlParser.T_SECOND: - case HiveSqlParser.T_SECONDS: - case HiveSqlParser.T_CONCAT: - case HiveSqlParser.T_CASE: - case HiveSqlParser.T_ISOPEN: - case HiveSqlParser.T_NOTFOUND: - case HiveSqlParser.T_AVG: - case HiveSqlParser.T_COUNT: - case HiveSqlParser.T_COUNT_BIG: - case HiveSqlParser.T_CUME_DIST: - case HiveSqlParser.T_DENSE_RANK: - case HiveSqlParser.T_FIRST_VALUE: - case HiveSqlParser.T_LAG: - case HiveSqlParser.T_LAST_VALUE: - case HiveSqlParser.T_LEAD: - case HiveSqlParser.T_MIN: - case HiveSqlParser.T_RANK: - case HiveSqlParser.T_ROW_NUMBER: - case HiveSqlParser.T_STDEV: - case HiveSqlParser.T_VAR: - case HiveSqlParser.T_VARIANCE: - case HiveSqlParser.T_OVER: - case HiveSqlParser.T_PARTITION: - case HiveSqlParser.T_ACTIVITY_COUNT: - case HiveSqlParser.T_CAST: - case HiveSqlParser.T_CURRENT_DATE: - case HiveSqlParser.T_CURRENT_TIMESTAMP: - case HiveSqlParser.T_CURRENT_USER: - case HiveSqlParser.T_USER: - case HiveSqlParser.T_MAX_PART_STRING: - case HiveSqlParser.T_MIN_PART_STRING: - case HiveSqlParser.T_MAX_PART_INT: - case HiveSqlParser.T_MIN_PART_INT: - case HiveSqlParser.T_MAX_PART_DATE: - case HiveSqlParser.T_MIN_PART_DATE: - case HiveSqlParser.T_PART_COUNT: - case HiveSqlParser.T_PART_LOC: - case HiveSqlParser.T_TRIM: - case HiveSqlParser.T_SUBSTRING: - case HiveSqlParser.T_SYSDATE: - case HiveSqlParser.T_HIVE: - case HiveSqlParser.T_HOST: - case HiveSqlParser.L_D_STRING: - case HiveSqlParser.L_DEC: - case HiveSqlParser.T_TRUE: - case HiveSqlParser.T_FALSE: - case HiveSqlParser.T_DIR: - case HiveSqlParser.T_FILE: - case HiveSqlParser.T_FILES: - case HiveSqlParser.T_NEW: - case HiveSqlParser.T_PWD: - case HiveSqlParser.T_SESSIONS: - case HiveSqlParser.T_SUBDIR: - this.state = 2848; + case HiveSql.T_ACTION: + case HiveSql.T_ADD2: + case HiveSql.T_ALL: + case HiveSql.T_ALLOCATE: + case HiveSql.T_ALTER: + case HiveSql.T_AND: + case HiveSql.T_ANSI_NULLS: + case HiveSql.T_ANSI_PADDING: + case HiveSql.T_AS: + case HiveSql.T_ASC: + case HiveSql.T_ASSOCIATE: + case HiveSql.T_AT: + case HiveSql.T_AUTO_INCREMENT: + case HiveSql.T_AVG: + case HiveSql.T_BATCHSIZE: + case HiveSql.T_BEGIN: + case HiveSql.T_BETWEEN: + case HiveSql.T_BIGINT: + case HiveSql.T_BINARY_DOUBLE: + case HiveSql.T_BINARY_FLOAT: + case HiveSql.T_BIT: + case HiveSql.T_BODY: + case HiveSql.T_BREAK: + case HiveSql.T_BY: + case HiveSql.T_BYTE: + case HiveSql.T_CALL: + case HiveSql.T_CALLER: + case HiveSql.T_CASCADE: + case HiveSql.T_CASE: + case HiveSql.T_CASESPECIFIC: + case HiveSql.T_CAST: + case HiveSql.T_CHAR: + case HiveSql.T_CHARACTER: + case HiveSql.T_CHARSET: + case HiveSql.T_CLIENT: + case HiveSql.T_CLOSE: + case HiveSql.T_CLUSTERED: + case HiveSql.T_CMP: + case HiveSql.T_COLLECT: + case HiveSql.T_COLLECTION: + case HiveSql.T_COLUMN: + case HiveSql.T_COMMENT: + case HiveSql.T_CONSTANT: + case HiveSql.T_COMMIT: + case HiveSql.T_COMPRESS: + case HiveSql.T_CONCAT: + case HiveSql.T_CONDITION: + case HiveSql.T_CONSTRAINT: + case HiveSql.T_CONTINUE: + case HiveSql.T_COPY: + case HiveSql.T_COUNT: + case HiveSql.T_COUNT_BIG: + case HiveSql.T_CREATE: + case HiveSql.T_CREATION: + case HiveSql.T_CREATOR: + case HiveSql.T_CS: + case HiveSql.T_CURRENT: + case HiveSql.T_CURRENT_SCHEMA: + case HiveSql.T_CURSOR: + case HiveSql.T_DATABASE: + case HiveSql.T_DATA: + case HiveSql.T_DATE: + case HiveSql.T_DATETIME: + case HiveSql.T_DAY: + case HiveSql.T_DAYS: + case HiveSql.T_DEC: + case HiveSql.T_DECIMAL: + case HiveSql.T_DECLARE: + case HiveSql.T_DEFAULT: + case HiveSql.T_DEFERRED: + case HiveSql.T_DEFINED: + case HiveSql.T_DEFINER: + case HiveSql.T_DEFINITION: + case HiveSql.T_DELETE: + case HiveSql.T_DELIMITED: + case HiveSql.T_DELIMITER: + case HiveSql.T_DESC: + case HiveSql.T_DESCRIBE: + case HiveSql.T_DIAGNOSTICS: + case HiveSql.T_DIR: + case HiveSql.T_DIRECTORY: + case HiveSql.T_DISTINCT: + case HiveSql.T_DISTRIBUTE: + case HiveSql.T_DO: + case HiveSql.T_DOUBLE: + case HiveSql.T_DROP: + case HiveSql.T_DYNAMIC: + case HiveSql.T_ENABLE: + case HiveSql.T_ENGINE: + case HiveSql.T_ESCAPED: + case HiveSql.T_EXCEPT: + case HiveSql.T_EXEC: + case HiveSql.T_EXECUTE: + case HiveSql.T_EXCEPTION: + case HiveSql.T_EXCLUSIVE: + case HiveSql.T_EXISTS: + case HiveSql.T_EXIT: + case HiveSql.T_FALLBACK: + case HiveSql.T_FALSE: + case HiveSql.T_FETCH: + case HiveSql.T_FIELDS: + case HiveSql.T_FILE: + case HiveSql.T_FILES: + case HiveSql.T_FLOAT: + case HiveSql.T_FOR: + case HiveSql.T_FOREIGN: + case HiveSql.T_FORMAT: + case HiveSql.T_FOUND: + case HiveSql.T_FROM: + case HiveSql.T_FULL: + case HiveSql.T_FUNCTION: + case HiveSql.T_GET: + case HiveSql.T_GLOBAL: + case HiveSql.T_GO: + case HiveSql.T_GRANT: + case HiveSql.T_GROUP: + case HiveSql.T_HANDLER: + case HiveSql.T_HASH: + case HiveSql.T_HAVING: + case HiveSql.T_HDFS: + case HiveSql.T_HIVE: + case HiveSql.T_HOST: + case HiveSql.T_IDENTITY: + case HiveSql.T_IF: + case HiveSql.T_IGNORE: + case HiveSql.T_IMMEDIATE: + case HiveSql.T_IN: + case HiveSql.T_INCLUDE: + case HiveSql.T_INDEX: + case HiveSql.T_INITRANS: + case HiveSql.T_INNER: + case HiveSql.T_INOUT: + case HiveSql.T_INSERT: + case HiveSql.T_INT: + case HiveSql.T_INT2: + case HiveSql.T_INT4: + case HiveSql.T_INT8: + case HiveSql.T_INTEGER: + case HiveSql.T_INTERSECT: + case HiveSql.T_INTERVAL: + case HiveSql.T_INTO: + case HiveSql.T_INVOKER: + case HiveSql.T_IS: + case HiveSql.T_ISOPEN: + case HiveSql.T_ITEMS: + case HiveSql.T_JOIN: + case HiveSql.T_KEEP: + case HiveSql.T_KEY: + case HiveSql.T_KEYS: + case HiveSql.T_LANGUAGE: + case HiveSql.T_LEAVE: + case HiveSql.T_LEFT: + case HiveSql.T_LIKE: + case HiveSql.T_LIMIT: + case HiveSql.T_LINES: + case HiveSql.T_LOCAL: + case HiveSql.T_LOCATION: + case HiveSql.T_LOCATOR: + case HiveSql.T_LOCATORS: + case HiveSql.T_LOCKS: + case HiveSql.T_LOG: + case HiveSql.T_LOGGED: + case HiveSql.T_LOGGING: + case HiveSql.T_LOOP: + case HiveSql.T_MAP: + case HiveSql.T_MATCHED: + case HiveSql.T_MAX: + case HiveSql.T_MAXTRANS: + case HiveSql.T_MERGE: + case HiveSql.T_MESSAGE_TEXT: + case HiveSql.T_MICROSECOND: + case HiveSql.T_MICROSECONDS: + case HiveSql.T_MIN: + case HiveSql.T_MULTISET: + case HiveSql.T_NCHAR: + case HiveSql.T_NEW: + case HiveSql.T_NVARCHAR: + case HiveSql.T_NO: + case HiveSql.T_NOCOUNT: + case HiveSql.T_NOCOMPRESS: + case HiveSql.T_NOLOGGING: + case HiveSql.T_NONE: + case HiveSql.T_NOT: + case HiveSql.T_NOTFOUND: + case HiveSql.T_NULL: + case HiveSql.T_NUMERIC: + case HiveSql.T_NUMBER: + case HiveSql.T_OBJECT: + case HiveSql.T_OFF: + case HiveSql.T_ON: + case HiveSql.T_ONLY: + case HiveSql.T_OPEN: + case HiveSql.T_OR: + case HiveSql.T_ORDER: + case HiveSql.T_OUT: + case HiveSql.T_OUTER: + case HiveSql.T_OVER: + case HiveSql.T_OVERWRITE: + case HiveSql.T_OWNER: + case HiveSql.T_PACKAGE: + case HiveSql.T_PARTITION: + case HiveSql.T_PCTFREE: + case HiveSql.T_PCTUSED: + case HiveSql.T_PRECISION: + case HiveSql.T_PRESERVE: + case HiveSql.T_PRIMARY: + case HiveSql.T_PRINT: + case HiveSql.T_PROC: + case HiveSql.T_PROCEDURE: + case HiveSql.T_QUALIFY: + case HiveSql.T_QUERY_BAND: + case HiveSql.T_QUIT: + case HiveSql.T_QUOTED_IDENTIFIER: + case HiveSql.T_RAISE: + case HiveSql.T_REAL: + case HiveSql.T_REFERENCES: + case HiveSql.T_REGEXP: + case HiveSql.T_REPLACE: + case HiveSql.T_RESIGNAL: + case HiveSql.T_RESTRICT: + case HiveSql.T_RESULT: + case HiveSql.T_RESULT_SET_LOCATOR: + case HiveSql.T_RETURN: + case HiveSql.T_RETURNS: + case HiveSql.T_REVERSE: + case HiveSql.T_RIGHT: + case HiveSql.T_RLIKE: + case HiveSql.T_ROLE: + case HiveSql.T_ROLLBACK: + case HiveSql.T_ROW: + case HiveSql.T_ROWS: + case HiveSql.T_ROW_COUNT: + case HiveSql.T_RR: + case HiveSql.T_RS: + case HiveSql.T_PWD: + case HiveSql.T_TRIM: + case HiveSql.T_SCHEMA: + case HiveSql.T_SECOND: + case HiveSql.T_SECONDS: + case HiveSql.T_SECURITY: + case HiveSql.T_SEGMENT: + case HiveSql.T_SEL: + case HiveSql.T_SELECT: + case HiveSql.T_SET: + case HiveSql.T_SESSION: + case HiveSql.T_SESSIONS: + case HiveSql.T_SETS: + case HiveSql.T_SHARE: + case HiveSql.T_SIGNAL: + case HiveSql.T_SIMPLE_DOUBLE: + case HiveSql.T_SIMPLE_FLOAT: + case HiveSql.T_SMALLDATETIME: + case HiveSql.T_SMALLINT: + case HiveSql.T_SQL: + case HiveSql.T_SQLEXCEPTION: + case HiveSql.T_SQLINSERT: + case HiveSql.T_SQLSTATE: + case HiveSql.T_SQLWARNING: + case HiveSql.T_STATS: + case HiveSql.T_STATISTICS: + case HiveSql.T_STEP: + case HiveSql.T_STORAGE: + case HiveSql.T_STORED: + case HiveSql.T_STRING: + case HiveSql.T_SUBDIR: + case HiveSql.T_SUBSTRING: + case HiveSql.T_SUM: + case HiveSql.T_SUMMARY: + case HiveSql.T_SYS_REFCURSOR: + case HiveSql.T_TABLE: + case HiveSql.T_TABLESPACE: + case HiveSql.T_TEMPORARY: + case HiveSql.T_TERMINATED: + case HiveSql.T_TEXTIMAGE_ON: + case HiveSql.T_THEN: + case HiveSql.T_TIMESTAMP: + case HiveSql.T_TITLE: + case HiveSql.T_TO: + case HiveSql.T_TOP: + case HiveSql.T_TRANSACTION: + case HiveSql.T_TRUE: + case HiveSql.T_TRUNCATE: + case HiveSql.T_UNIQUE: + case HiveSql.T_UPDATE: + case HiveSql.T_UR: + case HiveSql.T_USE: + case HiveSql.T_USING: + case HiveSql.T_VALUE: + case HiveSql.T_VALUES: + case HiveSql.T_VAR: + case HiveSql.T_VARCHAR: + case HiveSql.T_VARCHAR2: + case HiveSql.T_VARYING: + case HiveSql.T_VOLATILE: + case HiveSql.T_WHILE: + case HiveSql.T_WITH: + case HiveSql.T_WITHOUT: + case HiveSql.T_WORK: + case HiveSql.T_XACT_ABORT: + case HiveSql.T_XML: + case HiveSql.T_YES: + case HiveSql.T_ACTIVITY_COUNT: + case HiveSql.T_CUME_DIST: + case HiveSql.T_CURRENT_DATE: + case HiveSql.T_CURRENT_TIMESTAMP: + case HiveSql.T_CURRENT_USER: + case HiveSql.T_DENSE_RANK: + case HiveSql.T_FIRST_VALUE: + case HiveSql.T_LAG: + case HiveSql.T_LAST_VALUE: + case HiveSql.T_LEAD: + case HiveSql.T_MAX_PART_STRING: + case HiveSql.T_MIN_PART_STRING: + case HiveSql.T_MAX_PART_INT: + case HiveSql.T_MIN_PART_INT: + case HiveSql.T_MAX_PART_DATE: + case HiveSql.T_MIN_PART_DATE: + case HiveSql.T_PART_COUNT: + case HiveSql.T_PART_LOC: + case HiveSql.T_RANK: + case HiveSql.T_ROW_NUMBER: + case HiveSql.T_STDEV: + case HiveSql.T_SYSDATE: + case HiveSql.T_VARIANCE: + case HiveSql.T_USER: + case HiveSql.T_ADD: + case HiveSql.T_OPEN_P: + case HiveSql.T_SUB: + case HiveSql.L_ID: + case HiveSql.L_S_STRING: + case HiveSql.L_D_STRING: + case HiveSql.L_INT: + case HiveSql.L_DEC: + this.state = 2845; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,357,this._ctx); if(la_===1) { - this.state = 2847; + this.state = 2844; this.expr_func_all_distinct(); } - this.state = 2850; + this.state = 2847; this.expr(0); break; - case HiveSqlParser.T__5: - this.state = 2851; - this.match(HiveSqlParser.T__5); + case HiveSql.T_MUL: + this.state = 2848; + this.match(HiveSql.T_MUL); break; default: throw new antlr4.error.NoViableAltException(this); } - this.state = 2854; - this.match(HiveSqlParser.T_CLOSE_P); - this.state = 2856; + this.state = 2851; + this.match(HiveSql.T_CLOSE_P); + this.state = 2853; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,359,this._ctx); if(la_===1) { - this.state = 2855; + this.state = 2852; this.expr_func_over_clause(); } break; - case HiveSqlParser.T_COUNT_BIG: + case HiveSql.T_COUNT_BIG: this.enterOuterAlt(localctx, 3); - this.state = 2858; - this.match(HiveSqlParser.T_COUNT_BIG); - this.state = 2859; - this.match(HiveSqlParser.T_OPEN_P); - this.state = 2865; + this.state = 2855; + this.match(HiveSql.T_COUNT_BIG); + this.state = 2856; + this.match(HiveSql.T_OPEN_P); + this.state = 2862; this._errHandler.sync(this); switch(this._input.LA(1)) { - case HiveSqlParser.T__8: - case HiveSqlParser.T__9: - case HiveSqlParser.T_GO: - case HiveSqlParser.T_BEGIN: - case HiveSqlParser.T_EXCEPTION: - case HiveSqlParser.L_ID: - case HiveSqlParser.T_THEN: - case HiveSqlParser.T_NULL: - case HiveSqlParser.T_SET: - case HiveSqlParser.T_OPEN_P: - case HiveSqlParser.T_ALLOCATE: - case HiveSqlParser.T_CURSOR: - case HiveSqlParser.T_FOR: - case HiveSqlParser.T_RESULT: - case HiveSqlParser.T_PROCEDURE: - case HiveSqlParser.T_ASSOCIATE: - case HiveSqlParser.T_LOCATOR: - case HiveSqlParser.T_LOCATORS: - case HiveSqlParser.T_WITH: - case HiveSqlParser.T_TRANSACTION: - case HiveSqlParser.T_BREAK: - case HiveSqlParser.T_CALL: - case HiveSqlParser.T_DECLARE: - case HiveSqlParser.T_AS: - case HiveSqlParser.T_CONSTANT: - case HiveSqlParser.T_CONDITION: - case HiveSqlParser.T_IS: - case HiveSqlParser.T_RETURN: - case HiveSqlParser.T_ONLY: - case HiveSqlParser.T_TO: - case HiveSqlParser.T_CALLER: - case HiveSqlParser.T_CLIENT: - case HiveSqlParser.T_WITHOUT: - case HiveSqlParser.T_CONTINUE: - case HiveSqlParser.T_EXIT: - case HiveSqlParser.T_HANDLER: - case HiveSqlParser.T_SQLEXCEPTION: - case HiveSqlParser.T_SQLWARNING: - case HiveSqlParser.T_NOT: - case HiveSqlParser.T_FOUND: - case HiveSqlParser.T_GLOBAL: - case HiveSqlParser.T_TEMPORARY: - case HiveSqlParser.T_TABLE: - case HiveSqlParser.T_CREATE: - case HiveSqlParser.T_IF: - case HiveSqlParser.T_EXISTS: - case HiveSqlParser.T_LOCAL: - case HiveSqlParser.T_MULTISET: - case HiveSqlParser.T_VOLATILE: - case HiveSqlParser.T_LIKE: - case HiveSqlParser.T_CONSTRAINT: - case HiveSqlParser.T_PRIMARY: - case HiveSqlParser.T_KEY: - case HiveSqlParser.T_UNIQUE: - case HiveSqlParser.T_REFERENCES: - case HiveSqlParser.T_IDENTITY: - case HiveSqlParser.L_INT: - case HiveSqlParser.T_AUTO_INCREMENT: - case HiveSqlParser.T_ENABLE: - case HiveSqlParser.T_CLUSTERED: - case HiveSqlParser.T_ASC: - case HiveSqlParser.T_DESC: - case HiveSqlParser.T_FOREIGN: - case HiveSqlParser.T_ON: - case HiveSqlParser.T_UPDATE: - case HiveSqlParser.T_DELETE: - case HiveSqlParser.T_NO: - case HiveSqlParser.T_ACTION: - case HiveSqlParser.T_RESTRICT: - case HiveSqlParser.T_DEFAULT: - case HiveSqlParser.T_CASCADE: - case HiveSqlParser.T_LOG: - case HiveSqlParser.T_FALLBACK: - case HiveSqlParser.T_COMMIT: - case HiveSqlParser.T_PRESERVE: - case HiveSqlParser.T_ROWS: - case HiveSqlParser.T_SEGMENT: - case HiveSqlParser.T_CREATION: - case HiveSqlParser.T_IMMEDIATE: - case HiveSqlParser.T_DEFERRED: - case HiveSqlParser.T_PCTFREE: - case HiveSqlParser.T_PCTUSED: - case HiveSqlParser.T_INITRANS: - case HiveSqlParser.T_MAXTRANS: - case HiveSqlParser.T_NOCOMPRESS: - case HiveSqlParser.T_LOGGING: - case HiveSqlParser.T_NOLOGGING: - case HiveSqlParser.T_STORAGE: - case HiveSqlParser.T_TABLESPACE: - case HiveSqlParser.T_INDEX: - case HiveSqlParser.T_IN: - case HiveSqlParser.T_REPLACE: - case HiveSqlParser.T_DISTRIBUTE: - case HiveSqlParser.T_BY: - case HiveSqlParser.T_HASH: - case HiveSqlParser.T_LOGGED: - case HiveSqlParser.T_COMPRESS: - case HiveSqlParser.T_YES: - case HiveSqlParser.T_DEFINITION: - case HiveSqlParser.T_DROP: - case HiveSqlParser.T_DATA: - case HiveSqlParser.T_STORED: - case HiveSqlParser.T_ROW: - case HiveSqlParser.T_FORMAT: - case HiveSqlParser.T_DELIMITED: - case HiveSqlParser.T_FIELDS: - case HiveSqlParser.T_TERMINATED: - case HiveSqlParser.T_ESCAPED: - case HiveSqlParser.T_COLLECTION: - case HiveSqlParser.T_ITEMS: - case HiveSqlParser.T_MAP: - case HiveSqlParser.T_KEYS: - case HiveSqlParser.T_LINES: - case HiveSqlParser.T_DEFINED: - case HiveSqlParser.T_TEXTIMAGE_ON: - case HiveSqlParser.T_COMMENT: - case HiveSqlParser.T_CHARACTER: - case HiveSqlParser.T_CHARSET: - case HiveSqlParser.T_ENGINE: - case HiveSqlParser.T_ALTER: - case HiveSqlParser.T_ADD2: - case HiveSqlParser.T_CHAR: - case HiveSqlParser.T_BIGINT: - case HiveSqlParser.T_BINARY_DOUBLE: - case HiveSqlParser.T_BINARY_FLOAT: - case HiveSqlParser.T_BIT: - case HiveSqlParser.T_DATE: - case HiveSqlParser.T_DATETIME: - case HiveSqlParser.T_DEC: - case HiveSqlParser.T_DECIMAL: - case HiveSqlParser.T_DOUBLE: - case HiveSqlParser.T_PRECISION: - case HiveSqlParser.T_FLOAT: - case HiveSqlParser.T_INT: - case HiveSqlParser.T_INT2: - case HiveSqlParser.T_INT4: - case HiveSqlParser.T_INT8: - case HiveSqlParser.T_INTEGER: - case HiveSqlParser.T_NCHAR: - case HiveSqlParser.T_NVARCHAR: - case HiveSqlParser.T_NUMBER: - case HiveSqlParser.T_NUMERIC: - case HiveSqlParser.T_REAL: - case HiveSqlParser.T_RESULT_SET_LOCATOR: - case HiveSqlParser.T_VARYING: - case HiveSqlParser.T_SIMPLE_FLOAT: - case HiveSqlParser.T_SIMPLE_DOUBLE: - case HiveSqlParser.T_SMALLINT: - case HiveSqlParser.T_SMALLDATETIME: - case HiveSqlParser.T_STRING: - case HiveSqlParser.T_SYS_REFCURSOR: - case HiveSqlParser.T_TIMESTAMP: - case HiveSqlParser.T_VARCHAR: - case HiveSqlParser.T_VARCHAR2: - case HiveSqlParser.T_XML: - case HiveSqlParser.T_MAX: - case HiveSqlParser.T_BYTE: - case HiveSqlParser.T_CASESPECIFIC: - case HiveSqlParser.T_CS: - case HiveSqlParser.T_DATABASE: - case HiveSqlParser.T_SCHEMA: - case HiveSqlParser.T_LOCATION: - case HiveSqlParser.T_OR: - case HiveSqlParser.T_FUNCTION: - case HiveSqlParser.T_RETURNS: - case HiveSqlParser.T_PACKAGE: - case HiveSqlParser.T_PROC: - case HiveSqlParser.T_BODY: - case HiveSqlParser.T_OUT: - case HiveSqlParser.T_INOUT: - case HiveSqlParser.T_LANGUAGE: - case HiveSqlParser.T_SQL: - case HiveSqlParser.T_SECURITY: - case HiveSqlParser.T_CREATOR: - case HiveSqlParser.T_DEFINER: - case HiveSqlParser.T_INVOKER: - case HiveSqlParser.T_OWNER: - case HiveSqlParser.T_DYNAMIC: - case HiveSqlParser.T_SETS: - case HiveSqlParser.T_EXEC: - case HiveSqlParser.T_EXECUTE: - case HiveSqlParser.T_INTO: - case HiveSqlParser.T_INCLUDE: - case HiveSqlParser.T_INSERT: - case HiveSqlParser.T_OVERWRITE: - case HiveSqlParser.T_VALUES: - case HiveSqlParser.T_DIRECTORY: - case HiveSqlParser.T_GET: - case HiveSqlParser.T_DIAGNOSTICS: - case HiveSqlParser.T_MESSAGE_TEXT: - case HiveSqlParser.T_ROW_COUNT: - case HiveSqlParser.T_GRANT: - case HiveSqlParser.T_ROLE: - case HiveSqlParser.T_LEAVE: - case HiveSqlParser.T_OBJECT: - case HiveSqlParser.T_AT: - case HiveSqlParser.T_OPEN: - case HiveSqlParser.T_FETCH: - case HiveSqlParser.T_FROM: - case HiveSqlParser.T_COLLECT: - case HiveSqlParser.T_STATISTICS: - case HiveSqlParser.T_STATS: - case HiveSqlParser.T_COLUMN: - case HiveSqlParser.T_CLOSE: - case HiveSqlParser.T_CMP: - case HiveSqlParser.T_SUM: - case HiveSqlParser.T_COPY: - case HiveSqlParser.T_HDFS: - case HiveSqlParser.T_BATCHSIZE: - case HiveSqlParser.T_DELIMITER: - case HiveSqlParser.T_SQLINSERT: - case HiveSqlParser.T_IGNORE: - case HiveSqlParser.T_WORK: - case HiveSqlParser.T_PRINT: - case HiveSqlParser.T_QUIT: - case HiveSqlParser.T_RAISE: - case HiveSqlParser.T_RESIGNAL: - case HiveSqlParser.T_SQLSTATE: - case HiveSqlParser.T_VALUE: - case HiveSqlParser.T_ROLLBACK: - case HiveSqlParser.T_CURRENT: - case HiveSqlParser.T_CURRENT_SCHEMA: - case HiveSqlParser.T_ANSI_NULLS: - case HiveSqlParser.T_ANSI_PADDING: - case HiveSqlParser.T_NOCOUNT: - case HiveSqlParser.T_QUOTED_IDENTIFIER: - case HiveSqlParser.T_XACT_ABORT: - case HiveSqlParser.T_OFF: - case HiveSqlParser.T_QUERY_BAND: - case HiveSqlParser.T_NONE: - case HiveSqlParser.T_SESSION: - case HiveSqlParser.T_SIGNAL: - case HiveSqlParser.T_SUMMARY: - case HiveSqlParser.T_TOP: - case HiveSqlParser.T_LIMIT: - case HiveSqlParser.T_TRUNCATE: - case HiveSqlParser.T_USE: - case HiveSqlParser.T_WHILE: - case HiveSqlParser.T_DO: - case HiveSqlParser.T_LOOP: - case HiveSqlParser.T_REVERSE: - case HiveSqlParser.T_STEP: - case HiveSqlParser.T_USING: - case HiveSqlParser.T_ALL: - case HiveSqlParser.T_EXCEPT: - case HiveSqlParser.T_INTERSECT: - case HiveSqlParser.T_SELECT: - case HiveSqlParser.T_SEL: - case HiveSqlParser.T_DISTINCT: - case HiveSqlParser.T_TITLE: - case HiveSqlParser.L_S_STRING: - case HiveSqlParser.T_INNER: - case HiveSqlParser.T_JOIN: - case HiveSqlParser.T_LEFT: - case HiveSqlParser.T_RIGHT: - case HiveSqlParser.T_FULL: - case HiveSqlParser.T_OUTER: - case HiveSqlParser.T_GROUP: - case HiveSqlParser.T_HAVING: - case HiveSqlParser.T_QUALIFY: - case HiveSqlParser.T_ORDER: - case HiveSqlParser.T_RR: - case HiveSqlParser.T_RS: - case HiveSqlParser.T_UR: - case HiveSqlParser.T_AND: - case HiveSqlParser.T_KEEP: - case HiveSqlParser.T_EXCLUSIVE: - case HiveSqlParser.T_SHARE: - case HiveSqlParser.T_LOCKS: - case HiveSqlParser.T_MERGE: - case HiveSqlParser.T_MATCHED: - case HiveSqlParser.T_DESCRIBE: - case HiveSqlParser.T_BETWEEN: - case HiveSqlParser.T_RLIKE: - case HiveSqlParser.T_REGEXP: - case HiveSqlParser.T_INTERVAL: - case HiveSqlParser.T_DAY: - case HiveSqlParser.T_DAYS: - case HiveSqlParser.T_MICROSECOND: - case HiveSqlParser.T_MICROSECONDS: - case HiveSqlParser.T_SECOND: - case HiveSqlParser.T_SECONDS: - case HiveSqlParser.T_CONCAT: - case HiveSqlParser.T_CASE: - case HiveSqlParser.T_ISOPEN: - case HiveSqlParser.T_NOTFOUND: - case HiveSqlParser.T_AVG: - case HiveSqlParser.T_COUNT: - case HiveSqlParser.T_COUNT_BIG: - case HiveSqlParser.T_CUME_DIST: - case HiveSqlParser.T_DENSE_RANK: - case HiveSqlParser.T_FIRST_VALUE: - case HiveSqlParser.T_LAG: - case HiveSqlParser.T_LAST_VALUE: - case HiveSqlParser.T_LEAD: - case HiveSqlParser.T_MIN: - case HiveSqlParser.T_RANK: - case HiveSqlParser.T_ROW_NUMBER: - case HiveSqlParser.T_STDEV: - case HiveSqlParser.T_VAR: - case HiveSqlParser.T_VARIANCE: - case HiveSqlParser.T_OVER: - case HiveSqlParser.T_PARTITION: - case HiveSqlParser.T_ACTIVITY_COUNT: - case HiveSqlParser.T_CAST: - case HiveSqlParser.T_CURRENT_DATE: - case HiveSqlParser.T_CURRENT_TIMESTAMP: - case HiveSqlParser.T_CURRENT_USER: - case HiveSqlParser.T_USER: - case HiveSqlParser.T_MAX_PART_STRING: - case HiveSqlParser.T_MIN_PART_STRING: - case HiveSqlParser.T_MAX_PART_INT: - case HiveSqlParser.T_MIN_PART_INT: - case HiveSqlParser.T_MAX_PART_DATE: - case HiveSqlParser.T_MIN_PART_DATE: - case HiveSqlParser.T_PART_COUNT: - case HiveSqlParser.T_PART_LOC: - case HiveSqlParser.T_TRIM: - case HiveSqlParser.T_SUBSTRING: - case HiveSqlParser.T_SYSDATE: - case HiveSqlParser.T_HIVE: - case HiveSqlParser.T_HOST: - case HiveSqlParser.L_D_STRING: - case HiveSqlParser.L_DEC: - case HiveSqlParser.T_TRUE: - case HiveSqlParser.T_FALSE: - case HiveSqlParser.T_DIR: - case HiveSqlParser.T_FILE: - case HiveSqlParser.T_FILES: - case HiveSqlParser.T_NEW: - case HiveSqlParser.T_PWD: - case HiveSqlParser.T_SESSIONS: - case HiveSqlParser.T_SUBDIR: - this.state = 2861; + case HiveSql.T_ACTION: + case HiveSql.T_ADD2: + case HiveSql.T_ALL: + case HiveSql.T_ALLOCATE: + case HiveSql.T_ALTER: + case HiveSql.T_AND: + case HiveSql.T_ANSI_NULLS: + case HiveSql.T_ANSI_PADDING: + case HiveSql.T_AS: + case HiveSql.T_ASC: + case HiveSql.T_ASSOCIATE: + case HiveSql.T_AT: + case HiveSql.T_AUTO_INCREMENT: + case HiveSql.T_AVG: + case HiveSql.T_BATCHSIZE: + case HiveSql.T_BEGIN: + case HiveSql.T_BETWEEN: + case HiveSql.T_BIGINT: + case HiveSql.T_BINARY_DOUBLE: + case HiveSql.T_BINARY_FLOAT: + case HiveSql.T_BIT: + case HiveSql.T_BODY: + case HiveSql.T_BREAK: + case HiveSql.T_BY: + case HiveSql.T_BYTE: + case HiveSql.T_CALL: + case HiveSql.T_CALLER: + case HiveSql.T_CASCADE: + case HiveSql.T_CASE: + case HiveSql.T_CASESPECIFIC: + case HiveSql.T_CAST: + case HiveSql.T_CHAR: + case HiveSql.T_CHARACTER: + case HiveSql.T_CHARSET: + case HiveSql.T_CLIENT: + case HiveSql.T_CLOSE: + case HiveSql.T_CLUSTERED: + case HiveSql.T_CMP: + case HiveSql.T_COLLECT: + case HiveSql.T_COLLECTION: + case HiveSql.T_COLUMN: + case HiveSql.T_COMMENT: + case HiveSql.T_CONSTANT: + case HiveSql.T_COMMIT: + case HiveSql.T_COMPRESS: + case HiveSql.T_CONCAT: + case HiveSql.T_CONDITION: + case HiveSql.T_CONSTRAINT: + case HiveSql.T_CONTINUE: + case HiveSql.T_COPY: + case HiveSql.T_COUNT: + case HiveSql.T_COUNT_BIG: + case HiveSql.T_CREATE: + case HiveSql.T_CREATION: + case HiveSql.T_CREATOR: + case HiveSql.T_CS: + case HiveSql.T_CURRENT: + case HiveSql.T_CURRENT_SCHEMA: + case HiveSql.T_CURSOR: + case HiveSql.T_DATABASE: + case HiveSql.T_DATA: + case HiveSql.T_DATE: + case HiveSql.T_DATETIME: + case HiveSql.T_DAY: + case HiveSql.T_DAYS: + case HiveSql.T_DEC: + case HiveSql.T_DECIMAL: + case HiveSql.T_DECLARE: + case HiveSql.T_DEFAULT: + case HiveSql.T_DEFERRED: + case HiveSql.T_DEFINED: + case HiveSql.T_DEFINER: + case HiveSql.T_DEFINITION: + case HiveSql.T_DELETE: + case HiveSql.T_DELIMITED: + case HiveSql.T_DELIMITER: + case HiveSql.T_DESC: + case HiveSql.T_DESCRIBE: + case HiveSql.T_DIAGNOSTICS: + case HiveSql.T_DIR: + case HiveSql.T_DIRECTORY: + case HiveSql.T_DISTINCT: + case HiveSql.T_DISTRIBUTE: + case HiveSql.T_DO: + case HiveSql.T_DOUBLE: + case HiveSql.T_DROP: + case HiveSql.T_DYNAMIC: + case HiveSql.T_ENABLE: + case HiveSql.T_ENGINE: + case HiveSql.T_ESCAPED: + case HiveSql.T_EXCEPT: + case HiveSql.T_EXEC: + case HiveSql.T_EXECUTE: + case HiveSql.T_EXCEPTION: + case HiveSql.T_EXCLUSIVE: + case HiveSql.T_EXISTS: + case HiveSql.T_EXIT: + case HiveSql.T_FALLBACK: + case HiveSql.T_FALSE: + case HiveSql.T_FETCH: + case HiveSql.T_FIELDS: + case HiveSql.T_FILE: + case HiveSql.T_FILES: + case HiveSql.T_FLOAT: + case HiveSql.T_FOR: + case HiveSql.T_FOREIGN: + case HiveSql.T_FORMAT: + case HiveSql.T_FOUND: + case HiveSql.T_FROM: + case HiveSql.T_FULL: + case HiveSql.T_FUNCTION: + case HiveSql.T_GET: + case HiveSql.T_GLOBAL: + case HiveSql.T_GO: + case HiveSql.T_GRANT: + case HiveSql.T_GROUP: + case HiveSql.T_HANDLER: + case HiveSql.T_HASH: + case HiveSql.T_HAVING: + case HiveSql.T_HDFS: + case HiveSql.T_HIVE: + case HiveSql.T_HOST: + case HiveSql.T_IDENTITY: + case HiveSql.T_IF: + case HiveSql.T_IGNORE: + case HiveSql.T_IMMEDIATE: + case HiveSql.T_IN: + case HiveSql.T_INCLUDE: + case HiveSql.T_INDEX: + case HiveSql.T_INITRANS: + case HiveSql.T_INNER: + case HiveSql.T_INOUT: + case HiveSql.T_INSERT: + case HiveSql.T_INT: + case HiveSql.T_INT2: + case HiveSql.T_INT4: + case HiveSql.T_INT8: + case HiveSql.T_INTEGER: + case HiveSql.T_INTERSECT: + case HiveSql.T_INTERVAL: + case HiveSql.T_INTO: + case HiveSql.T_INVOKER: + case HiveSql.T_IS: + case HiveSql.T_ISOPEN: + case HiveSql.T_ITEMS: + case HiveSql.T_JOIN: + case HiveSql.T_KEEP: + case HiveSql.T_KEY: + case HiveSql.T_KEYS: + case HiveSql.T_LANGUAGE: + case HiveSql.T_LEAVE: + case HiveSql.T_LEFT: + case HiveSql.T_LIKE: + case HiveSql.T_LIMIT: + case HiveSql.T_LINES: + case HiveSql.T_LOCAL: + case HiveSql.T_LOCATION: + case HiveSql.T_LOCATOR: + case HiveSql.T_LOCATORS: + case HiveSql.T_LOCKS: + case HiveSql.T_LOG: + case HiveSql.T_LOGGED: + case HiveSql.T_LOGGING: + case HiveSql.T_LOOP: + case HiveSql.T_MAP: + case HiveSql.T_MATCHED: + case HiveSql.T_MAX: + case HiveSql.T_MAXTRANS: + case HiveSql.T_MERGE: + case HiveSql.T_MESSAGE_TEXT: + case HiveSql.T_MICROSECOND: + case HiveSql.T_MICROSECONDS: + case HiveSql.T_MIN: + case HiveSql.T_MULTISET: + case HiveSql.T_NCHAR: + case HiveSql.T_NEW: + case HiveSql.T_NVARCHAR: + case HiveSql.T_NO: + case HiveSql.T_NOCOUNT: + case HiveSql.T_NOCOMPRESS: + case HiveSql.T_NOLOGGING: + case HiveSql.T_NONE: + case HiveSql.T_NOT: + case HiveSql.T_NOTFOUND: + case HiveSql.T_NULL: + case HiveSql.T_NUMERIC: + case HiveSql.T_NUMBER: + case HiveSql.T_OBJECT: + case HiveSql.T_OFF: + case HiveSql.T_ON: + case HiveSql.T_ONLY: + case HiveSql.T_OPEN: + case HiveSql.T_OR: + case HiveSql.T_ORDER: + case HiveSql.T_OUT: + case HiveSql.T_OUTER: + case HiveSql.T_OVER: + case HiveSql.T_OVERWRITE: + case HiveSql.T_OWNER: + case HiveSql.T_PACKAGE: + case HiveSql.T_PARTITION: + case HiveSql.T_PCTFREE: + case HiveSql.T_PCTUSED: + case HiveSql.T_PRECISION: + case HiveSql.T_PRESERVE: + case HiveSql.T_PRIMARY: + case HiveSql.T_PRINT: + case HiveSql.T_PROC: + case HiveSql.T_PROCEDURE: + case HiveSql.T_QUALIFY: + case HiveSql.T_QUERY_BAND: + case HiveSql.T_QUIT: + case HiveSql.T_QUOTED_IDENTIFIER: + case HiveSql.T_RAISE: + case HiveSql.T_REAL: + case HiveSql.T_REFERENCES: + case HiveSql.T_REGEXP: + case HiveSql.T_REPLACE: + case HiveSql.T_RESIGNAL: + case HiveSql.T_RESTRICT: + case HiveSql.T_RESULT: + case HiveSql.T_RESULT_SET_LOCATOR: + case HiveSql.T_RETURN: + case HiveSql.T_RETURNS: + case HiveSql.T_REVERSE: + case HiveSql.T_RIGHT: + case HiveSql.T_RLIKE: + case HiveSql.T_ROLE: + case HiveSql.T_ROLLBACK: + case HiveSql.T_ROW: + case HiveSql.T_ROWS: + case HiveSql.T_ROW_COUNT: + case HiveSql.T_RR: + case HiveSql.T_RS: + case HiveSql.T_PWD: + case HiveSql.T_TRIM: + case HiveSql.T_SCHEMA: + case HiveSql.T_SECOND: + case HiveSql.T_SECONDS: + case HiveSql.T_SECURITY: + case HiveSql.T_SEGMENT: + case HiveSql.T_SEL: + case HiveSql.T_SELECT: + case HiveSql.T_SET: + case HiveSql.T_SESSION: + case HiveSql.T_SESSIONS: + case HiveSql.T_SETS: + case HiveSql.T_SHARE: + case HiveSql.T_SIGNAL: + case HiveSql.T_SIMPLE_DOUBLE: + case HiveSql.T_SIMPLE_FLOAT: + case HiveSql.T_SMALLDATETIME: + case HiveSql.T_SMALLINT: + case HiveSql.T_SQL: + case HiveSql.T_SQLEXCEPTION: + case HiveSql.T_SQLINSERT: + case HiveSql.T_SQLSTATE: + case HiveSql.T_SQLWARNING: + case HiveSql.T_STATS: + case HiveSql.T_STATISTICS: + case HiveSql.T_STEP: + case HiveSql.T_STORAGE: + case HiveSql.T_STORED: + case HiveSql.T_STRING: + case HiveSql.T_SUBDIR: + case HiveSql.T_SUBSTRING: + case HiveSql.T_SUM: + case HiveSql.T_SUMMARY: + case HiveSql.T_SYS_REFCURSOR: + case HiveSql.T_TABLE: + case HiveSql.T_TABLESPACE: + case HiveSql.T_TEMPORARY: + case HiveSql.T_TERMINATED: + case HiveSql.T_TEXTIMAGE_ON: + case HiveSql.T_THEN: + case HiveSql.T_TIMESTAMP: + case HiveSql.T_TITLE: + case HiveSql.T_TO: + case HiveSql.T_TOP: + case HiveSql.T_TRANSACTION: + case HiveSql.T_TRUE: + case HiveSql.T_TRUNCATE: + case HiveSql.T_UNIQUE: + case HiveSql.T_UPDATE: + case HiveSql.T_UR: + case HiveSql.T_USE: + case HiveSql.T_USING: + case HiveSql.T_VALUE: + case HiveSql.T_VALUES: + case HiveSql.T_VAR: + case HiveSql.T_VARCHAR: + case HiveSql.T_VARCHAR2: + case HiveSql.T_VARYING: + case HiveSql.T_VOLATILE: + case HiveSql.T_WHILE: + case HiveSql.T_WITH: + case HiveSql.T_WITHOUT: + case HiveSql.T_WORK: + case HiveSql.T_XACT_ABORT: + case HiveSql.T_XML: + case HiveSql.T_YES: + case HiveSql.T_ACTIVITY_COUNT: + case HiveSql.T_CUME_DIST: + case HiveSql.T_CURRENT_DATE: + case HiveSql.T_CURRENT_TIMESTAMP: + case HiveSql.T_CURRENT_USER: + case HiveSql.T_DENSE_RANK: + case HiveSql.T_FIRST_VALUE: + case HiveSql.T_LAG: + case HiveSql.T_LAST_VALUE: + case HiveSql.T_LEAD: + case HiveSql.T_MAX_PART_STRING: + case HiveSql.T_MIN_PART_STRING: + case HiveSql.T_MAX_PART_INT: + case HiveSql.T_MIN_PART_INT: + case HiveSql.T_MAX_PART_DATE: + case HiveSql.T_MIN_PART_DATE: + case HiveSql.T_PART_COUNT: + case HiveSql.T_PART_LOC: + case HiveSql.T_RANK: + case HiveSql.T_ROW_NUMBER: + case HiveSql.T_STDEV: + case HiveSql.T_SYSDATE: + case HiveSql.T_VARIANCE: + case HiveSql.T_USER: + case HiveSql.T_ADD: + case HiveSql.T_OPEN_P: + case HiveSql.T_SUB: + case HiveSql.L_ID: + case HiveSql.L_S_STRING: + case HiveSql.L_D_STRING: + case HiveSql.L_INT: + case HiveSql.L_DEC: + this.state = 2858; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,360,this._ctx); if(la_===1) { - this.state = 2860; + this.state = 2857; this.expr_func_all_distinct(); } - this.state = 2863; + this.state = 2860; this.expr(0); break; - case HiveSqlParser.T__5: - this.state = 2864; - this.match(HiveSqlParser.T__5); + case HiveSql.T_MUL: + this.state = 2861; + this.match(HiveSql.T_MUL); break; default: throw new antlr4.error.NoViableAltException(this); } - this.state = 2867; - this.match(HiveSqlParser.T_CLOSE_P); - this.state = 2869; + this.state = 2864; + this.match(HiveSql.T_CLOSE_P); + this.state = 2866; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,362,this._ctx); if(la_===1) { - this.state = 2868; + this.state = 2865; this.expr_func_over_clause(); } break; - case HiveSqlParser.T_CUME_DIST: + case HiveSql.T_CUME_DIST: this.enterOuterAlt(localctx, 4); + this.state = 2868; + this.match(HiveSql.T_CUME_DIST); + this.state = 2869; + this.match(HiveSql.T_OPEN_P); + this.state = 2870; + this.match(HiveSql.T_CLOSE_P); this.state = 2871; - this.match(HiveSqlParser.T_CUME_DIST); - this.state = 2872; - this.match(HiveSqlParser.T_OPEN_P); - this.state = 2873; - this.match(HiveSqlParser.T_CLOSE_P); - this.state = 2874; this.expr_func_over_clause(); break; - case HiveSqlParser.T_DENSE_RANK: + case HiveSql.T_DENSE_RANK: this.enterOuterAlt(localctx, 5); + this.state = 2872; + this.match(HiveSql.T_DENSE_RANK); + this.state = 2873; + this.match(HiveSql.T_OPEN_P); + this.state = 2874; + this.match(HiveSql.T_CLOSE_P); this.state = 2875; - this.match(HiveSqlParser.T_DENSE_RANK); - this.state = 2876; - this.match(HiveSqlParser.T_OPEN_P); - this.state = 2877; - this.match(HiveSqlParser.T_CLOSE_P); - this.state = 2878; this.expr_func_over_clause(); break; - case HiveSqlParser.T_FIRST_VALUE: + case HiveSql.T_FIRST_VALUE: this.enterOuterAlt(localctx, 6); + this.state = 2876; + this.match(HiveSql.T_FIRST_VALUE); + this.state = 2877; + this.match(HiveSql.T_OPEN_P); + this.state = 2878; + this.expr(0); this.state = 2879; - this.match(HiveSqlParser.T_FIRST_VALUE); + this.match(HiveSql.T_CLOSE_P); this.state = 2880; - this.match(HiveSqlParser.T_OPEN_P); - this.state = 2881; - this.expr(0); - this.state = 2882; - this.match(HiveSqlParser.T_CLOSE_P); - this.state = 2883; this.expr_func_over_clause(); break; - case HiveSqlParser.T_LAG: + case HiveSql.T_LAG: this.enterOuterAlt(localctx, 7); - this.state = 2885; - this.match(HiveSqlParser.T_LAG); - this.state = 2886; - this.match(HiveSqlParser.T_OPEN_P); - this.state = 2887; + this.state = 2882; + this.match(HiveSql.T_LAG); + this.state = 2883; + this.match(HiveSql.T_OPEN_P); + this.state = 2884; this.expr(0); - this.state = 2894; + this.state = 2891; this._errHandler.sync(this); _la = this._input.LA(1); - if(_la===HiveSqlParser.T_COMMA) { - this.state = 2888; - this.match(HiveSqlParser.T_COMMA); + if(_la===HiveSql.T_COMMA) { + this.state = 2885; + this.match(HiveSql.T_COMMA); + this.state = 2886; + this.expr(0); this.state = 2889; - this.expr(0); - this.state = 2892; this._errHandler.sync(this); _la = this._input.LA(1); - if(_la===HiveSqlParser.T_COMMA) { - this.state = 2890; - this.match(HiveSqlParser.T_COMMA); - this.state = 2891; + if(_la===HiveSql.T_COMMA) { + this.state = 2887; + this.match(HiveSql.T_COMMA); + this.state = 2888; this.expr(0); } } - this.state = 2896; - this.match(HiveSqlParser.T_CLOSE_P); - this.state = 2897; + this.state = 2893; + this.match(HiveSql.T_CLOSE_P); + this.state = 2894; this.expr_func_over_clause(); break; - case HiveSqlParser.T_LAST_VALUE: + case HiveSql.T_LAST_VALUE: this.enterOuterAlt(localctx, 8); - this.state = 2899; - this.match(HiveSqlParser.T_LAST_VALUE); - this.state = 2900; - this.match(HiveSqlParser.T_OPEN_P); - this.state = 2901; + this.state = 2896; + this.match(HiveSql.T_LAST_VALUE); + this.state = 2897; + this.match(HiveSql.T_OPEN_P); + this.state = 2898; this.expr(0); - this.state = 2902; - this.match(HiveSqlParser.T_CLOSE_P); - this.state = 2903; + this.state = 2899; + this.match(HiveSql.T_CLOSE_P); + this.state = 2900; this.expr_func_over_clause(); break; - case HiveSqlParser.T_LEAD: + case HiveSql.T_LEAD: this.enterOuterAlt(localctx, 9); - this.state = 2905; - this.match(HiveSqlParser.T_LEAD); - this.state = 2906; - this.match(HiveSqlParser.T_OPEN_P); - this.state = 2907; + this.state = 2902; + this.match(HiveSql.T_LEAD); + this.state = 2903; + this.match(HiveSql.T_OPEN_P); + this.state = 2904; this.expr(0); - this.state = 2914; + this.state = 2911; this._errHandler.sync(this); _la = this._input.LA(1); - if(_la===HiveSqlParser.T_COMMA) { - this.state = 2908; - this.match(HiveSqlParser.T_COMMA); - this.state = 2909; + if(_la===HiveSql.T_COMMA) { + this.state = 2905; + this.match(HiveSql.T_COMMA); + this.state = 2906; this.expr(0); - this.state = 2912; + this.state = 2909; this._errHandler.sync(this); _la = this._input.LA(1); - if(_la===HiveSqlParser.T_COMMA) { - this.state = 2910; - this.match(HiveSqlParser.T_COMMA); - this.state = 2911; + if(_la===HiveSql.T_COMMA) { + this.state = 2907; + this.match(HiveSql.T_COMMA); + this.state = 2908; this.expr(0); } } - this.state = 2916; - this.match(HiveSqlParser.T_CLOSE_P); - this.state = 2917; + this.state = 2913; + this.match(HiveSql.T_CLOSE_P); + this.state = 2914; this.expr_func_over_clause(); break; - case HiveSqlParser.T_MAX: + case HiveSql.T_MAX: this.enterOuterAlt(localctx, 10); + this.state = 2916; + this.match(HiveSql.T_MAX); + this.state = 2917; + this.match(HiveSql.T_OPEN_P); this.state = 2919; - this.match(HiveSqlParser.T_MAX); - this.state = 2920; - this.match(HiveSqlParser.T_OPEN_P); - this.state = 2922; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,367,this._ctx); if(la_===1) { - this.state = 2921; + this.state = 2918; this.expr_func_all_distinct(); } - this.state = 2924; + this.state = 2921; this.expr(0); - this.state = 2925; - this.match(HiveSqlParser.T_CLOSE_P); - this.state = 2927; + this.state = 2922; + this.match(HiveSql.T_CLOSE_P); + this.state = 2924; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,368,this._ctx); if(la_===1) { - this.state = 2926; + this.state = 2923; this.expr_func_over_clause(); } break; - case HiveSqlParser.T_MIN: + case HiveSql.T_MIN: this.enterOuterAlt(localctx, 11); + this.state = 2926; + this.match(HiveSql.T_MIN); + this.state = 2927; + this.match(HiveSql.T_OPEN_P); this.state = 2929; - this.match(HiveSqlParser.T_MIN); - this.state = 2930; - this.match(HiveSqlParser.T_OPEN_P); - this.state = 2932; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,369,this._ctx); if(la_===1) { - this.state = 2931; + this.state = 2928; this.expr_func_all_distinct(); } - this.state = 2934; + this.state = 2931; this.expr(0); - this.state = 2935; - this.match(HiveSqlParser.T_CLOSE_P); - this.state = 2937; + this.state = 2932; + this.match(HiveSql.T_CLOSE_P); + this.state = 2934; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,370,this._ctx); if(la_===1) { - this.state = 2936; + this.state = 2933; this.expr_func_over_clause(); } break; - case HiveSqlParser.T_RANK: + case HiveSql.T_RANK: this.enterOuterAlt(localctx, 12); + this.state = 2936; + this.match(HiveSql.T_RANK); + this.state = 2937; + this.match(HiveSql.T_OPEN_P); + this.state = 2938; + this.match(HiveSql.T_CLOSE_P); this.state = 2939; - this.match(HiveSqlParser.T_RANK); - this.state = 2940; - this.match(HiveSqlParser.T_OPEN_P); - this.state = 2941; - this.match(HiveSqlParser.T_CLOSE_P); - this.state = 2942; this.expr_func_over_clause(); break; - case HiveSqlParser.T_ROW_NUMBER: + case HiveSql.T_ROW_NUMBER: this.enterOuterAlt(localctx, 13); + this.state = 2940; + this.match(HiveSql.T_ROW_NUMBER); + this.state = 2941; + this.match(HiveSql.T_OPEN_P); + this.state = 2942; + this.match(HiveSql.T_CLOSE_P); this.state = 2943; - this.match(HiveSqlParser.T_ROW_NUMBER); - this.state = 2944; - this.match(HiveSqlParser.T_OPEN_P); - this.state = 2945; - this.match(HiveSqlParser.T_CLOSE_P); - this.state = 2946; this.expr_func_over_clause(); break; - case HiveSqlParser.T_STDEV: + case HiveSql.T_STDEV: this.enterOuterAlt(localctx, 14); + this.state = 2944; + this.match(HiveSql.T_STDEV); + this.state = 2945; + this.match(HiveSql.T_OPEN_P); this.state = 2947; - this.match(HiveSqlParser.T_STDEV); - this.state = 2948; - this.match(HiveSqlParser.T_OPEN_P); - this.state = 2950; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,371,this._ctx); if(la_===1) { - this.state = 2949; + this.state = 2946; this.expr_func_all_distinct(); } - this.state = 2952; + this.state = 2949; this.expr(0); - this.state = 2953; - this.match(HiveSqlParser.T_CLOSE_P); - this.state = 2955; + this.state = 2950; + this.match(HiveSql.T_CLOSE_P); + this.state = 2952; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,372,this._ctx); if(la_===1) { - this.state = 2954; + this.state = 2951; this.expr_func_over_clause(); } break; - case HiveSqlParser.T_SUM: + case HiveSql.T_SUM: this.enterOuterAlt(localctx, 15); + this.state = 2954; + this.match(HiveSql.T_SUM); + this.state = 2955; + this.match(HiveSql.T_OPEN_P); this.state = 2957; - this.match(HiveSqlParser.T_SUM); - this.state = 2958; - this.match(HiveSqlParser.T_OPEN_P); - this.state = 2960; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,373,this._ctx); if(la_===1) { - this.state = 2959; + this.state = 2956; this.expr_func_all_distinct(); } - this.state = 2962; + this.state = 2959; this.expr(0); - this.state = 2963; - this.match(HiveSqlParser.T_CLOSE_P); - this.state = 2965; + this.state = 2960; + this.match(HiveSql.T_CLOSE_P); + this.state = 2962; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,374,this._ctx); if(la_===1) { - this.state = 2964; + this.state = 2961; this.expr_func_over_clause(); } break; - case HiveSqlParser.T_VAR: + case HiveSql.T_VAR: this.enterOuterAlt(localctx, 16); + this.state = 2964; + this.match(HiveSql.T_VAR); + this.state = 2965; + this.match(HiveSql.T_OPEN_P); this.state = 2967; - this.match(HiveSqlParser.T_VAR); - this.state = 2968; - this.match(HiveSqlParser.T_OPEN_P); - this.state = 2970; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,375,this._ctx); if(la_===1) { - this.state = 2969; + this.state = 2966; this.expr_func_all_distinct(); } - this.state = 2972; + this.state = 2969; this.expr(0); - this.state = 2973; - this.match(HiveSqlParser.T_CLOSE_P); - this.state = 2975; + this.state = 2970; + this.match(HiveSql.T_CLOSE_P); + this.state = 2972; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,376,this._ctx); if(la_===1) { - this.state = 2974; + this.state = 2971; this.expr_func_over_clause(); } break; - case HiveSqlParser.T_VARIANCE: + case HiveSql.T_VARIANCE: this.enterOuterAlt(localctx, 17); + this.state = 2974; + this.match(HiveSql.T_VARIANCE); + this.state = 2975; + this.match(HiveSql.T_OPEN_P); this.state = 2977; - this.match(HiveSqlParser.T_VARIANCE); - this.state = 2978; - this.match(HiveSqlParser.T_OPEN_P); - this.state = 2980; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,377,this._ctx); if(la_===1) { - this.state = 2979; + this.state = 2976; this.expr_func_all_distinct(); } - this.state = 2982; + this.state = 2979; this.expr(0); - this.state = 2983; - this.match(HiveSqlParser.T_CLOSE_P); - this.state = 2985; + this.state = 2980; + this.match(HiveSql.T_CLOSE_P); + this.state = 2982; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,378,this._ctx); if(la_===1) { - this.state = 2984; + this.state = 2981; this.expr_func_over_clause(); } @@ -31936,7 +31991,7 @@ function Expr_func_all_distinctContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_expr_func_all_distinct; + this.ruleIndex = HiveSql.RULE_expr_func_all_distinct; return this; } @@ -31944,11 +31999,11 @@ Expr_func_all_distinctContext.prototype = Object.create(antlr4.ParserRuleContext Expr_func_all_distinctContext.prototype.constructor = Expr_func_all_distinctContext; Expr_func_all_distinctContext.prototype.T_ALL = function() { - return this.getToken(HiveSqlParser.T_ALL, 0); + return this.getToken(HiveSql.T_ALL, 0); }; Expr_func_all_distinctContext.prototype.T_DISTINCT = function() { - return this.getToken(HiveSqlParser.T_DISTINCT, 0); + return this.getToken(HiveSql.T_DISTINCT, 0); }; Expr_func_all_distinctContext.prototype.enterRule = function(listener) { @@ -31974,18 +32029,18 @@ Expr_func_all_distinctContext.prototype.accept = function(visitor) { -HiveSqlParser.Expr_func_all_distinctContext = Expr_func_all_distinctContext; +HiveSql.Expr_func_all_distinctContext = Expr_func_all_distinctContext; -HiveSqlParser.prototype.expr_func_all_distinct = function() { +HiveSql.prototype.expr_func_all_distinct = function() { var localctx = new Expr_func_all_distinctContext(this, this._ctx, this.state); - this.enterRule(localctx, 404, HiveSqlParser.RULE_expr_func_all_distinct); + this.enterRule(localctx, 404, HiveSql.RULE_expr_func_all_distinct); var _la = 0; // Token type try { this.enterOuterAlt(localctx, 1); - this.state = 2989; + this.state = 2986; _la = this._input.LA(1); - if(!(_la===HiveSqlParser.T_ALL || _la===HiveSqlParser.T_DISTINCT)) { + if(!(_la===HiveSql.T_ALL || _la===HiveSql.T_DISTINCT)) { this._errHandler.recoverInline(this); } else { @@ -32016,7 +32071,7 @@ function Expr_func_over_clauseContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_expr_func_over_clause; + this.ruleIndex = HiveSql.RULE_expr_func_over_clause; return this; } @@ -32024,15 +32079,15 @@ Expr_func_over_clauseContext.prototype = Object.create(antlr4.ParserRuleContext. Expr_func_over_clauseContext.prototype.constructor = Expr_func_over_clauseContext; Expr_func_over_clauseContext.prototype.T_OVER = function() { - return this.getToken(HiveSqlParser.T_OVER, 0); + return this.getToken(HiveSql.T_OVER, 0); }; Expr_func_over_clauseContext.prototype.T_OPEN_P = function() { - return this.getToken(HiveSqlParser.T_OPEN_P, 0); + return this.getToken(HiveSql.T_OPEN_P, 0); }; Expr_func_over_clauseContext.prototype.T_CLOSE_P = function() { - return this.getToken(HiveSqlParser.T_CLOSE_P, 0); + return this.getToken(HiveSql.T_CLOSE_P, 0); }; Expr_func_over_clauseContext.prototype.expr_func_partition_by_clause = function() { @@ -32066,37 +32121,37 @@ Expr_func_over_clauseContext.prototype.accept = function(visitor) { -HiveSqlParser.Expr_func_over_clauseContext = Expr_func_over_clauseContext; +HiveSql.Expr_func_over_clauseContext = Expr_func_over_clauseContext; -HiveSqlParser.prototype.expr_func_over_clause = function() { +HiveSql.prototype.expr_func_over_clause = function() { var localctx = new Expr_func_over_clauseContext(this, this._ctx, this.state); - this.enterRule(localctx, 406, HiveSqlParser.RULE_expr_func_over_clause); + this.enterRule(localctx, 406, HiveSql.RULE_expr_func_over_clause); var _la = 0; // Token type try { this.enterOuterAlt(localctx, 1); + this.state = 2988; + this.match(HiveSql.T_OVER); + this.state = 2989; + this.match(HiveSql.T_OPEN_P); this.state = 2991; - this.match(HiveSqlParser.T_OVER); - this.state = 2992; - this.match(HiveSqlParser.T_OPEN_P); - this.state = 2994; this._errHandler.sync(this); _la = this._input.LA(1); - if(_la===HiveSqlParser.T_PARTITION) { - this.state = 2993; + if(_la===HiveSql.T_PARTITION) { + this.state = 2990; this.expr_func_partition_by_clause(); } - this.state = 2997; + this.state = 2994; this._errHandler.sync(this); _la = this._input.LA(1); - if(_la===HiveSqlParser.T_ORDER) { - this.state = 2996; + if(_la===HiveSql.T_ORDER) { + this.state = 2993; this.order_by_clause(); } - this.state = 2999; - this.match(HiveSqlParser.T_CLOSE_P); + this.state = 2996; + this.match(HiveSql.T_CLOSE_P); } catch (re) { if(re instanceof antlr4.error.RecognitionException) { localctx.exception = re; @@ -32121,7 +32176,7 @@ function Expr_func_partition_by_clauseContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_expr_func_partition_by_clause; + this.ruleIndex = HiveSql.RULE_expr_func_partition_by_clause; return this; } @@ -32129,11 +32184,11 @@ Expr_func_partition_by_clauseContext.prototype = Object.create(antlr4.ParserRule Expr_func_partition_by_clauseContext.prototype.constructor = Expr_func_partition_by_clauseContext; Expr_func_partition_by_clauseContext.prototype.T_PARTITION = function() { - return this.getToken(HiveSqlParser.T_PARTITION, 0); + return this.getToken(HiveSql.T_PARTITION, 0); }; Expr_func_partition_by_clauseContext.prototype.T_BY = function() { - return this.getToken(HiveSqlParser.T_BY, 0); + return this.getToken(HiveSql.T_BY, 0); }; Expr_func_partition_by_clauseContext.prototype.expr = function(i) { @@ -32152,9 +32207,9 @@ Expr_func_partition_by_clauseContext.prototype.T_COMMA = function(i) { i = null; } if(i===null) { - return this.getTokens(HiveSqlParser.T_COMMA); + return this.getTokens(HiveSql.T_COMMA); } else { - return this.getToken(HiveSqlParser.T_COMMA, i); + return this.getToken(HiveSql.T_COMMA, i); } }; @@ -32182,30 +32237,30 @@ Expr_func_partition_by_clauseContext.prototype.accept = function(visitor) { -HiveSqlParser.Expr_func_partition_by_clauseContext = Expr_func_partition_by_clauseContext; +HiveSql.Expr_func_partition_by_clauseContext = Expr_func_partition_by_clauseContext; -HiveSqlParser.prototype.expr_func_partition_by_clause = function() { +HiveSql.prototype.expr_func_partition_by_clause = function() { var localctx = new Expr_func_partition_by_clauseContext(this, this._ctx, this.state); - this.enterRule(localctx, 408, HiveSqlParser.RULE_expr_func_partition_by_clause); + this.enterRule(localctx, 408, HiveSql.RULE_expr_func_partition_by_clause); var _la = 0; // Token type try { this.enterOuterAlt(localctx, 1); - this.state = 3001; - this.match(HiveSqlParser.T_PARTITION); - this.state = 3002; - this.match(HiveSqlParser.T_BY); - this.state = 3003; + this.state = 2998; + this.match(HiveSql.T_PARTITION); + this.state = 2999; + this.match(HiveSql.T_BY); + this.state = 3000; this.expr(0); - this.state = 3008; + this.state = 3005; this._errHandler.sync(this); _la = this._input.LA(1); - while(_la===HiveSqlParser.T_COMMA) { - this.state = 3004; - this.match(HiveSqlParser.T_COMMA); - this.state = 3005; + while(_la===HiveSql.T_COMMA) { + this.state = 3001; + this.match(HiveSql.T_COMMA); + this.state = 3002; this.expr(0); - this.state = 3010; + this.state = 3007; this._errHandler.sync(this); _la = this._input.LA(1); } @@ -32233,7 +32288,7 @@ function Expr_spec_funcContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_expr_spec_func; + this.ruleIndex = HiveSql.RULE_expr_spec_func; return this; } @@ -32241,15 +32296,15 @@ Expr_spec_funcContext.prototype = Object.create(antlr4.ParserRuleContext.prototy Expr_spec_funcContext.prototype.constructor = Expr_spec_funcContext; Expr_spec_funcContext.prototype.T_ACTIVITY_COUNT = function() { - return this.getToken(HiveSqlParser.T_ACTIVITY_COUNT, 0); + return this.getToken(HiveSql.T_ACTIVITY_COUNT, 0); }; Expr_spec_funcContext.prototype.T_CAST = function() { - return this.getToken(HiveSqlParser.T_CAST, 0); + return this.getToken(HiveSql.T_CAST, 0); }; Expr_spec_funcContext.prototype.T_OPEN_P = function() { - return this.getToken(HiveSqlParser.T_OPEN_P, 0); + return this.getToken(HiveSql.T_OPEN_P, 0); }; Expr_spec_funcContext.prototype.expr = function(i) { @@ -32264,7 +32319,7 @@ Expr_spec_funcContext.prototype.expr = function(i) { }; Expr_spec_funcContext.prototype.T_AS = function() { - return this.getToken(HiveSqlParser.T_AS, 0); + return this.getToken(HiveSql.T_AS, 0); }; Expr_spec_funcContext.prototype.dtype = function() { @@ -32272,7 +32327,7 @@ Expr_spec_funcContext.prototype.dtype = function() { }; Expr_spec_funcContext.prototype.T_CLOSE_P = function() { - return this.getToken(HiveSqlParser.T_CLOSE_P, 0); + return this.getToken(HiveSql.T_CLOSE_P, 0); }; Expr_spec_funcContext.prototype.dtype_len = function() { @@ -32280,39 +32335,43 @@ Expr_spec_funcContext.prototype.dtype_len = function() { }; Expr_spec_funcContext.prototype.T_COUNT = function() { - return this.getToken(HiveSqlParser.T_COUNT, 0); + return this.getToken(HiveSql.T_COUNT, 0); +}; + +Expr_spec_funcContext.prototype.T_MUL = function() { + return this.getToken(HiveSql.T_MUL, 0); }; Expr_spec_funcContext.prototype.T_CURRENT_DATE = function() { - return this.getToken(HiveSqlParser.T_CURRENT_DATE, 0); + return this.getToken(HiveSql.T_CURRENT_DATE, 0); }; Expr_spec_funcContext.prototype.T_CURRENT = function() { - return this.getToken(HiveSqlParser.T_CURRENT, 0); + return this.getToken(HiveSql.T_CURRENT, 0); }; Expr_spec_funcContext.prototype.T_DATE = function() { - return this.getToken(HiveSqlParser.T_DATE, 0); + return this.getToken(HiveSql.T_DATE, 0); }; Expr_spec_funcContext.prototype.T_CURRENT_TIMESTAMP = function() { - return this.getToken(HiveSqlParser.T_CURRENT_TIMESTAMP, 0); + return this.getToken(HiveSql.T_CURRENT_TIMESTAMP, 0); }; Expr_spec_funcContext.prototype.T_TIMESTAMP = function() { - return this.getToken(HiveSqlParser.T_TIMESTAMP, 0); + return this.getToken(HiveSql.T_TIMESTAMP, 0); }; Expr_spec_funcContext.prototype.T_CURRENT_USER = function() { - return this.getToken(HiveSqlParser.T_CURRENT_USER, 0); + return this.getToken(HiveSql.T_CURRENT_USER, 0); }; Expr_spec_funcContext.prototype.T_USER = function() { - return this.getToken(HiveSqlParser.T_USER, 0); + return this.getToken(HiveSql.T_USER, 0); }; Expr_spec_funcContext.prototype.T_MAX_PART_STRING = function() { - return this.getToken(HiveSqlParser.T_MAX_PART_STRING, 0); + return this.getToken(HiveSql.T_MAX_PART_STRING, 0); }; Expr_spec_funcContext.prototype.T_COMMA = function(i) { @@ -32320,9 +32379,9 @@ Expr_spec_funcContext.prototype.T_COMMA = function(i) { i = null; } if(i===null) { - return this.getTokens(HiveSqlParser.T_COMMA); + return this.getTokens(HiveSql.T_COMMA); } else { - return this.getToken(HiveSqlParser.T_COMMA, i); + return this.getToken(HiveSql.T_COMMA, i); } }; @@ -32332,59 +32391,59 @@ Expr_spec_funcContext.prototype.T_EQUAL = function(i) { i = null; } if(i===null) { - return this.getTokens(HiveSqlParser.T_EQUAL); + return this.getTokens(HiveSql.T_EQUAL); } else { - return this.getToken(HiveSqlParser.T_EQUAL, i); + return this.getToken(HiveSql.T_EQUAL, i); } }; Expr_spec_funcContext.prototype.T_MIN_PART_STRING = function() { - return this.getToken(HiveSqlParser.T_MIN_PART_STRING, 0); + return this.getToken(HiveSql.T_MIN_PART_STRING, 0); }; Expr_spec_funcContext.prototype.T_MAX_PART_INT = function() { - return this.getToken(HiveSqlParser.T_MAX_PART_INT, 0); + return this.getToken(HiveSql.T_MAX_PART_INT, 0); }; Expr_spec_funcContext.prototype.T_MIN_PART_INT = function() { - return this.getToken(HiveSqlParser.T_MIN_PART_INT, 0); + return this.getToken(HiveSql.T_MIN_PART_INT, 0); }; Expr_spec_funcContext.prototype.T_MAX_PART_DATE = function() { - return this.getToken(HiveSqlParser.T_MAX_PART_DATE, 0); + return this.getToken(HiveSql.T_MAX_PART_DATE, 0); }; Expr_spec_funcContext.prototype.T_MIN_PART_DATE = function() { - return this.getToken(HiveSqlParser.T_MIN_PART_DATE, 0); + return this.getToken(HiveSql.T_MIN_PART_DATE, 0); }; Expr_spec_funcContext.prototype.T_PART_COUNT = function() { - return this.getToken(HiveSqlParser.T_PART_COUNT, 0); + return this.getToken(HiveSql.T_PART_COUNT, 0); }; Expr_spec_funcContext.prototype.T_PART_LOC = function() { - return this.getToken(HiveSqlParser.T_PART_LOC, 0); + return this.getToken(HiveSql.T_PART_LOC, 0); }; Expr_spec_funcContext.prototype.T_TRIM = function() { - return this.getToken(HiveSqlParser.T_TRIM, 0); + return this.getToken(HiveSql.T_TRIM, 0); }; Expr_spec_funcContext.prototype.T_SUBSTRING = function() { - return this.getToken(HiveSqlParser.T_SUBSTRING, 0); + return this.getToken(HiveSql.T_SUBSTRING, 0); }; Expr_spec_funcContext.prototype.T_FROM = function() { - return this.getToken(HiveSqlParser.T_FROM, 0); + return this.getToken(HiveSql.T_FROM, 0); }; Expr_spec_funcContext.prototype.T_FOR = function() { - return this.getToken(HiveSqlParser.T_FOR, 0); + return this.getToken(HiveSql.T_FOR, 0); }; Expr_spec_funcContext.prototype.T_SYSDATE = function() { - return this.getToken(HiveSqlParser.T_SYSDATE, 0); + return this.getToken(HiveSql.T_SYSDATE, 0); }; Expr_spec_funcContext.prototype.enterRule = function(listener) { @@ -32410,812 +32469,812 @@ Expr_spec_funcContext.prototype.accept = function(visitor) { -HiveSqlParser.Expr_spec_funcContext = Expr_spec_funcContext; +HiveSql.Expr_spec_funcContext = Expr_spec_funcContext; -HiveSqlParser.prototype.expr_spec_func = function() { +HiveSql.prototype.expr_spec_func = function() { var localctx = new Expr_spec_funcContext(this, this._ctx, this.state); - this.enterRule(localctx, 410, HiveSqlParser.RULE_expr_spec_func); + this.enterRule(localctx, 410, HiveSql.RULE_expr_spec_func); var _la = 0; // Token type try { - this.state = 3211; + this.state = 3208; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,403,this._ctx); switch(la_) { case 1: this.enterOuterAlt(localctx, 1); - this.state = 3011; - this.match(HiveSqlParser.T_ACTIVITY_COUNT); + this.state = 3008; + this.match(HiveSql.T_ACTIVITY_COUNT); break; case 2: this.enterOuterAlt(localctx, 2); - this.state = 3012; - this.match(HiveSqlParser.T_CAST); - this.state = 3013; - this.match(HiveSqlParser.T_OPEN_P); - this.state = 3014; + this.state = 3009; + this.match(HiveSql.T_CAST); + this.state = 3010; + this.match(HiveSql.T_OPEN_P); + this.state = 3011; this.expr(0); - this.state = 3015; - this.match(HiveSqlParser.T_AS); - this.state = 3016; + this.state = 3012; + this.match(HiveSql.T_AS); + this.state = 3013; this.dtype(); - this.state = 3018; + this.state = 3015; this._errHandler.sync(this); _la = this._input.LA(1); - if(_la===HiveSqlParser.T_OPEN_P) { - this.state = 3017; + if(_la===HiveSql.T_OPEN_P) { + this.state = 3014; this.dtype_len(); } - this.state = 3020; - this.match(HiveSqlParser.T_CLOSE_P); + this.state = 3017; + this.match(HiveSql.T_CLOSE_P); break; case 3: this.enterOuterAlt(localctx, 3); - this.state = 3022; - this.match(HiveSqlParser.T_COUNT); + this.state = 3019; + this.match(HiveSql.T_COUNT); + this.state = 3020; + this.match(HiveSql.T_OPEN_P); this.state = 3023; - this.match(HiveSqlParser.T_OPEN_P); - this.state = 3026; this._errHandler.sync(this); switch(this._input.LA(1)) { - case HiveSqlParser.T__8: - case HiveSqlParser.T__9: - case HiveSqlParser.T_GO: - case HiveSqlParser.T_BEGIN: - case HiveSqlParser.T_EXCEPTION: - case HiveSqlParser.L_ID: - case HiveSqlParser.T_THEN: - case HiveSqlParser.T_NULL: - case HiveSqlParser.T_SET: - case HiveSqlParser.T_OPEN_P: - case HiveSqlParser.T_ALLOCATE: - case HiveSqlParser.T_CURSOR: - case HiveSqlParser.T_FOR: - case HiveSqlParser.T_RESULT: - case HiveSqlParser.T_PROCEDURE: - case HiveSqlParser.T_ASSOCIATE: - case HiveSqlParser.T_LOCATOR: - case HiveSqlParser.T_LOCATORS: - case HiveSqlParser.T_WITH: - case HiveSqlParser.T_TRANSACTION: - case HiveSqlParser.T_BREAK: - case HiveSqlParser.T_CALL: - case HiveSqlParser.T_DECLARE: - case HiveSqlParser.T_AS: - case HiveSqlParser.T_CONSTANT: - case HiveSqlParser.T_CONDITION: - case HiveSqlParser.T_IS: - case HiveSqlParser.T_RETURN: - case HiveSqlParser.T_ONLY: - case HiveSqlParser.T_TO: - case HiveSqlParser.T_CALLER: - case HiveSqlParser.T_CLIENT: - case HiveSqlParser.T_WITHOUT: - case HiveSqlParser.T_CONTINUE: - case HiveSqlParser.T_EXIT: - case HiveSqlParser.T_HANDLER: - case HiveSqlParser.T_SQLEXCEPTION: - case HiveSqlParser.T_SQLWARNING: - case HiveSqlParser.T_NOT: - case HiveSqlParser.T_FOUND: - case HiveSqlParser.T_GLOBAL: - case HiveSqlParser.T_TEMPORARY: - case HiveSqlParser.T_TABLE: - case HiveSqlParser.T_CREATE: - case HiveSqlParser.T_IF: - case HiveSqlParser.T_EXISTS: - case HiveSqlParser.T_LOCAL: - case HiveSqlParser.T_MULTISET: - case HiveSqlParser.T_VOLATILE: - case HiveSqlParser.T_LIKE: - case HiveSqlParser.T_CONSTRAINT: - case HiveSqlParser.T_PRIMARY: - case HiveSqlParser.T_KEY: - case HiveSqlParser.T_UNIQUE: - case HiveSqlParser.T_REFERENCES: - case HiveSqlParser.T_IDENTITY: - case HiveSqlParser.L_INT: - case HiveSqlParser.T_AUTO_INCREMENT: - case HiveSqlParser.T_ENABLE: - case HiveSqlParser.T_CLUSTERED: - case HiveSqlParser.T_ASC: - case HiveSqlParser.T_DESC: - case HiveSqlParser.T_FOREIGN: - case HiveSqlParser.T_ON: - case HiveSqlParser.T_UPDATE: - case HiveSqlParser.T_DELETE: - case HiveSqlParser.T_NO: - case HiveSqlParser.T_ACTION: - case HiveSqlParser.T_RESTRICT: - case HiveSqlParser.T_DEFAULT: - case HiveSqlParser.T_CASCADE: - case HiveSqlParser.T_LOG: - case HiveSqlParser.T_FALLBACK: - case HiveSqlParser.T_COMMIT: - case HiveSqlParser.T_PRESERVE: - case HiveSqlParser.T_ROWS: - case HiveSqlParser.T_SEGMENT: - case HiveSqlParser.T_CREATION: - case HiveSqlParser.T_IMMEDIATE: - case HiveSqlParser.T_DEFERRED: - case HiveSqlParser.T_PCTFREE: - case HiveSqlParser.T_PCTUSED: - case HiveSqlParser.T_INITRANS: - case HiveSqlParser.T_MAXTRANS: - case HiveSqlParser.T_NOCOMPRESS: - case HiveSqlParser.T_LOGGING: - case HiveSqlParser.T_NOLOGGING: - case HiveSqlParser.T_STORAGE: - case HiveSqlParser.T_TABLESPACE: - case HiveSqlParser.T_INDEX: - case HiveSqlParser.T_IN: - case HiveSqlParser.T_REPLACE: - case HiveSqlParser.T_DISTRIBUTE: - case HiveSqlParser.T_BY: - case HiveSqlParser.T_HASH: - case HiveSqlParser.T_LOGGED: - case HiveSqlParser.T_COMPRESS: - case HiveSqlParser.T_YES: - case HiveSqlParser.T_DEFINITION: - case HiveSqlParser.T_DROP: - case HiveSqlParser.T_DATA: - case HiveSqlParser.T_STORED: - case HiveSqlParser.T_ROW: - case HiveSqlParser.T_FORMAT: - case HiveSqlParser.T_DELIMITED: - case HiveSqlParser.T_FIELDS: - case HiveSqlParser.T_TERMINATED: - case HiveSqlParser.T_ESCAPED: - case HiveSqlParser.T_COLLECTION: - case HiveSqlParser.T_ITEMS: - case HiveSqlParser.T_MAP: - case HiveSqlParser.T_KEYS: - case HiveSqlParser.T_LINES: - case HiveSqlParser.T_DEFINED: - case HiveSqlParser.T_TEXTIMAGE_ON: - case HiveSqlParser.T_COMMENT: - case HiveSqlParser.T_CHARACTER: - case HiveSqlParser.T_CHARSET: - case HiveSqlParser.T_ENGINE: - case HiveSqlParser.T_ALTER: - case HiveSqlParser.T_ADD2: - case HiveSqlParser.T_CHAR: - case HiveSqlParser.T_BIGINT: - case HiveSqlParser.T_BINARY_DOUBLE: - case HiveSqlParser.T_BINARY_FLOAT: - case HiveSqlParser.T_BIT: - case HiveSqlParser.T_DATE: - case HiveSqlParser.T_DATETIME: - case HiveSqlParser.T_DEC: - case HiveSqlParser.T_DECIMAL: - case HiveSqlParser.T_DOUBLE: - case HiveSqlParser.T_PRECISION: - case HiveSqlParser.T_FLOAT: - case HiveSqlParser.T_INT: - case HiveSqlParser.T_INT2: - case HiveSqlParser.T_INT4: - case HiveSqlParser.T_INT8: - case HiveSqlParser.T_INTEGER: - case HiveSqlParser.T_NCHAR: - case HiveSqlParser.T_NVARCHAR: - case HiveSqlParser.T_NUMBER: - case HiveSqlParser.T_NUMERIC: - case HiveSqlParser.T_REAL: - case HiveSqlParser.T_RESULT_SET_LOCATOR: - case HiveSqlParser.T_VARYING: - case HiveSqlParser.T_SIMPLE_FLOAT: - case HiveSqlParser.T_SIMPLE_DOUBLE: - case HiveSqlParser.T_SMALLINT: - case HiveSqlParser.T_SMALLDATETIME: - case HiveSqlParser.T_STRING: - case HiveSqlParser.T_SYS_REFCURSOR: - case HiveSqlParser.T_TIMESTAMP: - case HiveSqlParser.T_VARCHAR: - case HiveSqlParser.T_VARCHAR2: - case HiveSqlParser.T_XML: - case HiveSqlParser.T_MAX: - case HiveSqlParser.T_BYTE: - case HiveSqlParser.T_CASESPECIFIC: - case HiveSqlParser.T_CS: - case HiveSqlParser.T_DATABASE: - case HiveSqlParser.T_SCHEMA: - case HiveSqlParser.T_LOCATION: - case HiveSqlParser.T_OR: - case HiveSqlParser.T_FUNCTION: - case HiveSqlParser.T_RETURNS: - case HiveSqlParser.T_PACKAGE: - case HiveSqlParser.T_PROC: - case HiveSqlParser.T_BODY: - case HiveSqlParser.T_OUT: - case HiveSqlParser.T_INOUT: - case HiveSqlParser.T_LANGUAGE: - case HiveSqlParser.T_SQL: - case HiveSqlParser.T_SECURITY: - case HiveSqlParser.T_CREATOR: - case HiveSqlParser.T_DEFINER: - case HiveSqlParser.T_INVOKER: - case HiveSqlParser.T_OWNER: - case HiveSqlParser.T_DYNAMIC: - case HiveSqlParser.T_SETS: - case HiveSqlParser.T_EXEC: - case HiveSqlParser.T_EXECUTE: - case HiveSqlParser.T_INTO: - case HiveSqlParser.T_INCLUDE: - case HiveSqlParser.T_INSERT: - case HiveSqlParser.T_OVERWRITE: - case HiveSqlParser.T_VALUES: - case HiveSqlParser.T_DIRECTORY: - case HiveSqlParser.T_GET: - case HiveSqlParser.T_DIAGNOSTICS: - case HiveSqlParser.T_MESSAGE_TEXT: - case HiveSqlParser.T_ROW_COUNT: - case HiveSqlParser.T_GRANT: - case HiveSqlParser.T_ROLE: - case HiveSqlParser.T_LEAVE: - case HiveSqlParser.T_OBJECT: - case HiveSqlParser.T_AT: - case HiveSqlParser.T_OPEN: - case HiveSqlParser.T_FETCH: - case HiveSqlParser.T_FROM: - case HiveSqlParser.T_COLLECT: - case HiveSqlParser.T_STATISTICS: - case HiveSqlParser.T_STATS: - case HiveSqlParser.T_COLUMN: - case HiveSqlParser.T_CLOSE: - case HiveSqlParser.T_CMP: - case HiveSqlParser.T_SUM: - case HiveSqlParser.T_COPY: - case HiveSqlParser.T_HDFS: - case HiveSqlParser.T_BATCHSIZE: - case HiveSqlParser.T_DELIMITER: - case HiveSqlParser.T_SQLINSERT: - case HiveSqlParser.T_IGNORE: - case HiveSqlParser.T_WORK: - case HiveSqlParser.T_PRINT: - case HiveSqlParser.T_QUIT: - case HiveSqlParser.T_RAISE: - case HiveSqlParser.T_RESIGNAL: - case HiveSqlParser.T_SQLSTATE: - case HiveSqlParser.T_VALUE: - case HiveSqlParser.T_ROLLBACK: - case HiveSqlParser.T_CURRENT: - case HiveSqlParser.T_CURRENT_SCHEMA: - case HiveSqlParser.T_ANSI_NULLS: - case HiveSqlParser.T_ANSI_PADDING: - case HiveSqlParser.T_NOCOUNT: - case HiveSqlParser.T_QUOTED_IDENTIFIER: - case HiveSqlParser.T_XACT_ABORT: - case HiveSqlParser.T_OFF: - case HiveSqlParser.T_QUERY_BAND: - case HiveSqlParser.T_NONE: - case HiveSqlParser.T_SESSION: - case HiveSqlParser.T_SIGNAL: - case HiveSqlParser.T_SUMMARY: - case HiveSqlParser.T_TOP: - case HiveSqlParser.T_LIMIT: - case HiveSqlParser.T_TRUNCATE: - case HiveSqlParser.T_USE: - case HiveSqlParser.T_WHILE: - case HiveSqlParser.T_DO: - case HiveSqlParser.T_LOOP: - case HiveSqlParser.T_REVERSE: - case HiveSqlParser.T_STEP: - case HiveSqlParser.T_USING: - case HiveSqlParser.T_ALL: - case HiveSqlParser.T_EXCEPT: - case HiveSqlParser.T_INTERSECT: - case HiveSqlParser.T_SELECT: - case HiveSqlParser.T_SEL: - case HiveSqlParser.T_DISTINCT: - case HiveSqlParser.T_TITLE: - case HiveSqlParser.L_S_STRING: - case HiveSqlParser.T_INNER: - case HiveSqlParser.T_JOIN: - case HiveSqlParser.T_LEFT: - case HiveSqlParser.T_RIGHT: - case HiveSqlParser.T_FULL: - case HiveSqlParser.T_OUTER: - case HiveSqlParser.T_GROUP: - case HiveSqlParser.T_HAVING: - case HiveSqlParser.T_QUALIFY: - case HiveSqlParser.T_ORDER: - case HiveSqlParser.T_RR: - case HiveSqlParser.T_RS: - case HiveSqlParser.T_UR: - case HiveSqlParser.T_AND: - case HiveSqlParser.T_KEEP: - case HiveSqlParser.T_EXCLUSIVE: - case HiveSqlParser.T_SHARE: - case HiveSqlParser.T_LOCKS: - case HiveSqlParser.T_MERGE: - case HiveSqlParser.T_MATCHED: - case HiveSqlParser.T_DESCRIBE: - case HiveSqlParser.T_BETWEEN: - case HiveSqlParser.T_RLIKE: - case HiveSqlParser.T_REGEXP: - case HiveSqlParser.T_INTERVAL: - case HiveSqlParser.T_DAY: - case HiveSqlParser.T_DAYS: - case HiveSqlParser.T_MICROSECOND: - case HiveSqlParser.T_MICROSECONDS: - case HiveSqlParser.T_SECOND: - case HiveSqlParser.T_SECONDS: - case HiveSqlParser.T_CONCAT: - case HiveSqlParser.T_CASE: - case HiveSqlParser.T_ISOPEN: - case HiveSqlParser.T_NOTFOUND: - case HiveSqlParser.T_AVG: - case HiveSqlParser.T_COUNT: - case HiveSqlParser.T_COUNT_BIG: - case HiveSqlParser.T_CUME_DIST: - case HiveSqlParser.T_DENSE_RANK: - case HiveSqlParser.T_FIRST_VALUE: - case HiveSqlParser.T_LAG: - case HiveSqlParser.T_LAST_VALUE: - case HiveSqlParser.T_LEAD: - case HiveSqlParser.T_MIN: - case HiveSqlParser.T_RANK: - case HiveSqlParser.T_ROW_NUMBER: - case HiveSqlParser.T_STDEV: - case HiveSqlParser.T_VAR: - case HiveSqlParser.T_VARIANCE: - case HiveSqlParser.T_OVER: - case HiveSqlParser.T_PARTITION: - case HiveSqlParser.T_ACTIVITY_COUNT: - case HiveSqlParser.T_CAST: - case HiveSqlParser.T_CURRENT_DATE: - case HiveSqlParser.T_CURRENT_TIMESTAMP: - case HiveSqlParser.T_CURRENT_USER: - case HiveSqlParser.T_USER: - case HiveSqlParser.T_MAX_PART_STRING: - case HiveSqlParser.T_MIN_PART_STRING: - case HiveSqlParser.T_MAX_PART_INT: - case HiveSqlParser.T_MIN_PART_INT: - case HiveSqlParser.T_MAX_PART_DATE: - case HiveSqlParser.T_MIN_PART_DATE: - case HiveSqlParser.T_PART_COUNT: - case HiveSqlParser.T_PART_LOC: - case HiveSqlParser.T_TRIM: - case HiveSqlParser.T_SUBSTRING: - case HiveSqlParser.T_SYSDATE: - case HiveSqlParser.T_HIVE: - case HiveSqlParser.T_HOST: - case HiveSqlParser.L_D_STRING: - case HiveSqlParser.L_DEC: - case HiveSqlParser.T_TRUE: - case HiveSqlParser.T_FALSE: - case HiveSqlParser.T_DIR: - case HiveSqlParser.T_FILE: - case HiveSqlParser.T_FILES: - case HiveSqlParser.T_NEW: - case HiveSqlParser.T_PWD: - case HiveSqlParser.T_SESSIONS: - case HiveSqlParser.T_SUBDIR: - this.state = 3024; + case HiveSql.T_ACTION: + case HiveSql.T_ADD2: + case HiveSql.T_ALL: + case HiveSql.T_ALLOCATE: + case HiveSql.T_ALTER: + case HiveSql.T_AND: + case HiveSql.T_ANSI_NULLS: + case HiveSql.T_ANSI_PADDING: + case HiveSql.T_AS: + case HiveSql.T_ASC: + case HiveSql.T_ASSOCIATE: + case HiveSql.T_AT: + case HiveSql.T_AUTO_INCREMENT: + case HiveSql.T_AVG: + case HiveSql.T_BATCHSIZE: + case HiveSql.T_BEGIN: + case HiveSql.T_BETWEEN: + case HiveSql.T_BIGINT: + case HiveSql.T_BINARY_DOUBLE: + case HiveSql.T_BINARY_FLOAT: + case HiveSql.T_BIT: + case HiveSql.T_BODY: + case HiveSql.T_BREAK: + case HiveSql.T_BY: + case HiveSql.T_BYTE: + case HiveSql.T_CALL: + case HiveSql.T_CALLER: + case HiveSql.T_CASCADE: + case HiveSql.T_CASE: + case HiveSql.T_CASESPECIFIC: + case HiveSql.T_CAST: + case HiveSql.T_CHAR: + case HiveSql.T_CHARACTER: + case HiveSql.T_CHARSET: + case HiveSql.T_CLIENT: + case HiveSql.T_CLOSE: + case HiveSql.T_CLUSTERED: + case HiveSql.T_CMP: + case HiveSql.T_COLLECT: + case HiveSql.T_COLLECTION: + case HiveSql.T_COLUMN: + case HiveSql.T_COMMENT: + case HiveSql.T_CONSTANT: + case HiveSql.T_COMMIT: + case HiveSql.T_COMPRESS: + case HiveSql.T_CONCAT: + case HiveSql.T_CONDITION: + case HiveSql.T_CONSTRAINT: + case HiveSql.T_CONTINUE: + case HiveSql.T_COPY: + case HiveSql.T_COUNT: + case HiveSql.T_COUNT_BIG: + case HiveSql.T_CREATE: + case HiveSql.T_CREATION: + case HiveSql.T_CREATOR: + case HiveSql.T_CS: + case HiveSql.T_CURRENT: + case HiveSql.T_CURRENT_SCHEMA: + case HiveSql.T_CURSOR: + case HiveSql.T_DATABASE: + case HiveSql.T_DATA: + case HiveSql.T_DATE: + case HiveSql.T_DATETIME: + case HiveSql.T_DAY: + case HiveSql.T_DAYS: + case HiveSql.T_DEC: + case HiveSql.T_DECIMAL: + case HiveSql.T_DECLARE: + case HiveSql.T_DEFAULT: + case HiveSql.T_DEFERRED: + case HiveSql.T_DEFINED: + case HiveSql.T_DEFINER: + case HiveSql.T_DEFINITION: + case HiveSql.T_DELETE: + case HiveSql.T_DELIMITED: + case HiveSql.T_DELIMITER: + case HiveSql.T_DESC: + case HiveSql.T_DESCRIBE: + case HiveSql.T_DIAGNOSTICS: + case HiveSql.T_DIR: + case HiveSql.T_DIRECTORY: + case HiveSql.T_DISTINCT: + case HiveSql.T_DISTRIBUTE: + case HiveSql.T_DO: + case HiveSql.T_DOUBLE: + case HiveSql.T_DROP: + case HiveSql.T_DYNAMIC: + case HiveSql.T_ENABLE: + case HiveSql.T_ENGINE: + case HiveSql.T_ESCAPED: + case HiveSql.T_EXCEPT: + case HiveSql.T_EXEC: + case HiveSql.T_EXECUTE: + case HiveSql.T_EXCEPTION: + case HiveSql.T_EXCLUSIVE: + case HiveSql.T_EXISTS: + case HiveSql.T_EXIT: + case HiveSql.T_FALLBACK: + case HiveSql.T_FALSE: + case HiveSql.T_FETCH: + case HiveSql.T_FIELDS: + case HiveSql.T_FILE: + case HiveSql.T_FILES: + case HiveSql.T_FLOAT: + case HiveSql.T_FOR: + case HiveSql.T_FOREIGN: + case HiveSql.T_FORMAT: + case HiveSql.T_FOUND: + case HiveSql.T_FROM: + case HiveSql.T_FULL: + case HiveSql.T_FUNCTION: + case HiveSql.T_GET: + case HiveSql.T_GLOBAL: + case HiveSql.T_GO: + case HiveSql.T_GRANT: + case HiveSql.T_GROUP: + case HiveSql.T_HANDLER: + case HiveSql.T_HASH: + case HiveSql.T_HAVING: + case HiveSql.T_HDFS: + case HiveSql.T_HIVE: + case HiveSql.T_HOST: + case HiveSql.T_IDENTITY: + case HiveSql.T_IF: + case HiveSql.T_IGNORE: + case HiveSql.T_IMMEDIATE: + case HiveSql.T_IN: + case HiveSql.T_INCLUDE: + case HiveSql.T_INDEX: + case HiveSql.T_INITRANS: + case HiveSql.T_INNER: + case HiveSql.T_INOUT: + case HiveSql.T_INSERT: + case HiveSql.T_INT: + case HiveSql.T_INT2: + case HiveSql.T_INT4: + case HiveSql.T_INT8: + case HiveSql.T_INTEGER: + case HiveSql.T_INTERSECT: + case HiveSql.T_INTERVAL: + case HiveSql.T_INTO: + case HiveSql.T_INVOKER: + case HiveSql.T_IS: + case HiveSql.T_ISOPEN: + case HiveSql.T_ITEMS: + case HiveSql.T_JOIN: + case HiveSql.T_KEEP: + case HiveSql.T_KEY: + case HiveSql.T_KEYS: + case HiveSql.T_LANGUAGE: + case HiveSql.T_LEAVE: + case HiveSql.T_LEFT: + case HiveSql.T_LIKE: + case HiveSql.T_LIMIT: + case HiveSql.T_LINES: + case HiveSql.T_LOCAL: + case HiveSql.T_LOCATION: + case HiveSql.T_LOCATOR: + case HiveSql.T_LOCATORS: + case HiveSql.T_LOCKS: + case HiveSql.T_LOG: + case HiveSql.T_LOGGED: + case HiveSql.T_LOGGING: + case HiveSql.T_LOOP: + case HiveSql.T_MAP: + case HiveSql.T_MATCHED: + case HiveSql.T_MAX: + case HiveSql.T_MAXTRANS: + case HiveSql.T_MERGE: + case HiveSql.T_MESSAGE_TEXT: + case HiveSql.T_MICROSECOND: + case HiveSql.T_MICROSECONDS: + case HiveSql.T_MIN: + case HiveSql.T_MULTISET: + case HiveSql.T_NCHAR: + case HiveSql.T_NEW: + case HiveSql.T_NVARCHAR: + case HiveSql.T_NO: + case HiveSql.T_NOCOUNT: + case HiveSql.T_NOCOMPRESS: + case HiveSql.T_NOLOGGING: + case HiveSql.T_NONE: + case HiveSql.T_NOT: + case HiveSql.T_NOTFOUND: + case HiveSql.T_NULL: + case HiveSql.T_NUMERIC: + case HiveSql.T_NUMBER: + case HiveSql.T_OBJECT: + case HiveSql.T_OFF: + case HiveSql.T_ON: + case HiveSql.T_ONLY: + case HiveSql.T_OPEN: + case HiveSql.T_OR: + case HiveSql.T_ORDER: + case HiveSql.T_OUT: + case HiveSql.T_OUTER: + case HiveSql.T_OVER: + case HiveSql.T_OVERWRITE: + case HiveSql.T_OWNER: + case HiveSql.T_PACKAGE: + case HiveSql.T_PARTITION: + case HiveSql.T_PCTFREE: + case HiveSql.T_PCTUSED: + case HiveSql.T_PRECISION: + case HiveSql.T_PRESERVE: + case HiveSql.T_PRIMARY: + case HiveSql.T_PRINT: + case HiveSql.T_PROC: + case HiveSql.T_PROCEDURE: + case HiveSql.T_QUALIFY: + case HiveSql.T_QUERY_BAND: + case HiveSql.T_QUIT: + case HiveSql.T_QUOTED_IDENTIFIER: + case HiveSql.T_RAISE: + case HiveSql.T_REAL: + case HiveSql.T_REFERENCES: + case HiveSql.T_REGEXP: + case HiveSql.T_REPLACE: + case HiveSql.T_RESIGNAL: + case HiveSql.T_RESTRICT: + case HiveSql.T_RESULT: + case HiveSql.T_RESULT_SET_LOCATOR: + case HiveSql.T_RETURN: + case HiveSql.T_RETURNS: + case HiveSql.T_REVERSE: + case HiveSql.T_RIGHT: + case HiveSql.T_RLIKE: + case HiveSql.T_ROLE: + case HiveSql.T_ROLLBACK: + case HiveSql.T_ROW: + case HiveSql.T_ROWS: + case HiveSql.T_ROW_COUNT: + case HiveSql.T_RR: + case HiveSql.T_RS: + case HiveSql.T_PWD: + case HiveSql.T_TRIM: + case HiveSql.T_SCHEMA: + case HiveSql.T_SECOND: + case HiveSql.T_SECONDS: + case HiveSql.T_SECURITY: + case HiveSql.T_SEGMENT: + case HiveSql.T_SEL: + case HiveSql.T_SELECT: + case HiveSql.T_SET: + case HiveSql.T_SESSION: + case HiveSql.T_SESSIONS: + case HiveSql.T_SETS: + case HiveSql.T_SHARE: + case HiveSql.T_SIGNAL: + case HiveSql.T_SIMPLE_DOUBLE: + case HiveSql.T_SIMPLE_FLOAT: + case HiveSql.T_SMALLDATETIME: + case HiveSql.T_SMALLINT: + case HiveSql.T_SQL: + case HiveSql.T_SQLEXCEPTION: + case HiveSql.T_SQLINSERT: + case HiveSql.T_SQLSTATE: + case HiveSql.T_SQLWARNING: + case HiveSql.T_STATS: + case HiveSql.T_STATISTICS: + case HiveSql.T_STEP: + case HiveSql.T_STORAGE: + case HiveSql.T_STORED: + case HiveSql.T_STRING: + case HiveSql.T_SUBDIR: + case HiveSql.T_SUBSTRING: + case HiveSql.T_SUM: + case HiveSql.T_SUMMARY: + case HiveSql.T_SYS_REFCURSOR: + case HiveSql.T_TABLE: + case HiveSql.T_TABLESPACE: + case HiveSql.T_TEMPORARY: + case HiveSql.T_TERMINATED: + case HiveSql.T_TEXTIMAGE_ON: + case HiveSql.T_THEN: + case HiveSql.T_TIMESTAMP: + case HiveSql.T_TITLE: + case HiveSql.T_TO: + case HiveSql.T_TOP: + case HiveSql.T_TRANSACTION: + case HiveSql.T_TRUE: + case HiveSql.T_TRUNCATE: + case HiveSql.T_UNIQUE: + case HiveSql.T_UPDATE: + case HiveSql.T_UR: + case HiveSql.T_USE: + case HiveSql.T_USING: + case HiveSql.T_VALUE: + case HiveSql.T_VALUES: + case HiveSql.T_VAR: + case HiveSql.T_VARCHAR: + case HiveSql.T_VARCHAR2: + case HiveSql.T_VARYING: + case HiveSql.T_VOLATILE: + case HiveSql.T_WHILE: + case HiveSql.T_WITH: + case HiveSql.T_WITHOUT: + case HiveSql.T_WORK: + case HiveSql.T_XACT_ABORT: + case HiveSql.T_XML: + case HiveSql.T_YES: + case HiveSql.T_ACTIVITY_COUNT: + case HiveSql.T_CUME_DIST: + case HiveSql.T_CURRENT_DATE: + case HiveSql.T_CURRENT_TIMESTAMP: + case HiveSql.T_CURRENT_USER: + case HiveSql.T_DENSE_RANK: + case HiveSql.T_FIRST_VALUE: + case HiveSql.T_LAG: + case HiveSql.T_LAST_VALUE: + case HiveSql.T_LEAD: + case HiveSql.T_MAX_PART_STRING: + case HiveSql.T_MIN_PART_STRING: + case HiveSql.T_MAX_PART_INT: + case HiveSql.T_MIN_PART_INT: + case HiveSql.T_MAX_PART_DATE: + case HiveSql.T_MIN_PART_DATE: + case HiveSql.T_PART_COUNT: + case HiveSql.T_PART_LOC: + case HiveSql.T_RANK: + case HiveSql.T_ROW_NUMBER: + case HiveSql.T_STDEV: + case HiveSql.T_SYSDATE: + case HiveSql.T_VARIANCE: + case HiveSql.T_USER: + case HiveSql.T_ADD: + case HiveSql.T_OPEN_P: + case HiveSql.T_SUB: + case HiveSql.L_ID: + case HiveSql.L_S_STRING: + case HiveSql.L_D_STRING: + case HiveSql.L_INT: + case HiveSql.L_DEC: + this.state = 3021; this.expr(0); break; - case HiveSqlParser.T__5: - this.state = 3025; - this.match(HiveSqlParser.T__5); + case HiveSql.T_MUL: + this.state = 3022; + this.match(HiveSql.T_MUL); break; default: throw new antlr4.error.NoViableAltException(this); } - this.state = 3028; - this.match(HiveSqlParser.T_CLOSE_P); + this.state = 3025; + this.match(HiveSql.T_CLOSE_P); break; case 4: this.enterOuterAlt(localctx, 4); - this.state = 3029; - this.match(HiveSqlParser.T_CURRENT_DATE); + this.state = 3026; + this.match(HiveSql.T_CURRENT_DATE); break; case 5: this.enterOuterAlt(localctx, 5); - this.state = 3030; - this.match(HiveSqlParser.T_CURRENT); - this.state = 3031; - this.match(HiveSqlParser.T_DATE); + this.state = 3027; + this.match(HiveSql.T_CURRENT); + this.state = 3028; + this.match(HiveSql.T_DATE); break; case 6: this.enterOuterAlt(localctx, 6); - this.state = 3035; + this.state = 3032; this._errHandler.sync(this); switch(this._input.LA(1)) { - case HiveSqlParser.T_CURRENT_TIMESTAMP: - this.state = 3032; - this.match(HiveSqlParser.T_CURRENT_TIMESTAMP); + case HiveSql.T_CURRENT_TIMESTAMP: + this.state = 3029; + this.match(HiveSql.T_CURRENT_TIMESTAMP); break; - case HiveSqlParser.T_CURRENT: - this.state = 3033; - this.match(HiveSqlParser.T_CURRENT); - this.state = 3034; - this.match(HiveSqlParser.T_TIMESTAMP); + case HiveSql.T_CURRENT: + this.state = 3030; + this.match(HiveSql.T_CURRENT); + this.state = 3031; + this.match(HiveSql.T_TIMESTAMP); break; default: throw new antlr4.error.NoViableAltException(this); } - this.state = 3041; + this.state = 3038; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,386,this._ctx); if(la_===1) { - this.state = 3037; - this.match(HiveSqlParser.T_OPEN_P); - this.state = 3038; + this.state = 3034; + this.match(HiveSql.T_OPEN_P); + this.state = 3035; this.expr(0); - this.state = 3039; - this.match(HiveSqlParser.T_CLOSE_P); + this.state = 3036; + this.match(HiveSql.T_CLOSE_P); } break; case 7: this.enterOuterAlt(localctx, 7); - this.state = 3043; - this.match(HiveSqlParser.T_CURRENT_USER); + this.state = 3040; + this.match(HiveSql.T_CURRENT_USER); break; case 8: this.enterOuterAlt(localctx, 8); - this.state = 3044; - this.match(HiveSqlParser.T_CURRENT); - this.state = 3045; - this.match(HiveSqlParser.T_USER); + this.state = 3041; + this.match(HiveSql.T_CURRENT); + this.state = 3042; + this.match(HiveSql.T_USER); break; case 9: this.enterOuterAlt(localctx, 9); - this.state = 3046; - this.match(HiveSqlParser.T_MAX_PART_STRING); - this.state = 3047; - this.match(HiveSqlParser.T_OPEN_P); - this.state = 3048; + this.state = 3043; + this.match(HiveSql.T_MAX_PART_STRING); + this.state = 3044; + this.match(HiveSql.T_OPEN_P); + this.state = 3045; this.expr(0); - this.state = 3061; + this.state = 3058; this._errHandler.sync(this); _la = this._input.LA(1); - if(_la===HiveSqlParser.T_COMMA) { - this.state = 3049; - this.match(HiveSqlParser.T_COMMA); - this.state = 3050; + if(_la===HiveSql.T_COMMA) { + this.state = 3046; + this.match(HiveSql.T_COMMA); + this.state = 3047; this.expr(0); - this.state = 3058; + this.state = 3055; this._errHandler.sync(this); _la = this._input.LA(1); - while(_la===HiveSqlParser.T_COMMA) { + while(_la===HiveSql.T_COMMA) { + this.state = 3048; + this.match(HiveSql.T_COMMA); + this.state = 3049; + this.expr(0); + this.state = 3050; + this.match(HiveSql.T_EQUAL); this.state = 3051; - this.match(HiveSqlParser.T_COMMA); - this.state = 3052; this.expr(0); - this.state = 3053; - this.match(HiveSqlParser.T_EQUAL); - this.state = 3054; - this.expr(0); - this.state = 3060; + this.state = 3057; this._errHandler.sync(this); _la = this._input.LA(1); } } - this.state = 3063; - this.match(HiveSqlParser.T_CLOSE_P); + this.state = 3060; + this.match(HiveSql.T_CLOSE_P); break; case 10: this.enterOuterAlt(localctx, 10); - this.state = 3065; - this.match(HiveSqlParser.T_MIN_PART_STRING); - this.state = 3066; - this.match(HiveSqlParser.T_OPEN_P); - this.state = 3067; + this.state = 3062; + this.match(HiveSql.T_MIN_PART_STRING); + this.state = 3063; + this.match(HiveSql.T_OPEN_P); + this.state = 3064; this.expr(0); - this.state = 3080; + this.state = 3077; this._errHandler.sync(this); _la = this._input.LA(1); - if(_la===HiveSqlParser.T_COMMA) { - this.state = 3068; - this.match(HiveSqlParser.T_COMMA); - this.state = 3069; + if(_la===HiveSql.T_COMMA) { + this.state = 3065; + this.match(HiveSql.T_COMMA); + this.state = 3066; this.expr(0); - this.state = 3077; + this.state = 3074; this._errHandler.sync(this); _la = this._input.LA(1); - while(_la===HiveSqlParser.T_COMMA) { + while(_la===HiveSql.T_COMMA) { + this.state = 3067; + this.match(HiveSql.T_COMMA); + this.state = 3068; + this.expr(0); + this.state = 3069; + this.match(HiveSql.T_EQUAL); this.state = 3070; - this.match(HiveSqlParser.T_COMMA); - this.state = 3071; this.expr(0); - this.state = 3072; - this.match(HiveSqlParser.T_EQUAL); - this.state = 3073; - this.expr(0); - this.state = 3079; + this.state = 3076; this._errHandler.sync(this); _la = this._input.LA(1); } } - this.state = 3082; - this.match(HiveSqlParser.T_CLOSE_P); + this.state = 3079; + this.match(HiveSql.T_CLOSE_P); break; case 11: this.enterOuterAlt(localctx, 11); - this.state = 3084; - this.match(HiveSqlParser.T_MAX_PART_INT); - this.state = 3085; - this.match(HiveSqlParser.T_OPEN_P); - this.state = 3086; + this.state = 3081; + this.match(HiveSql.T_MAX_PART_INT); + this.state = 3082; + this.match(HiveSql.T_OPEN_P); + this.state = 3083; this.expr(0); - this.state = 3099; + this.state = 3096; this._errHandler.sync(this); _la = this._input.LA(1); - if(_la===HiveSqlParser.T_COMMA) { - this.state = 3087; - this.match(HiveSqlParser.T_COMMA); - this.state = 3088; + if(_la===HiveSql.T_COMMA) { + this.state = 3084; + this.match(HiveSql.T_COMMA); + this.state = 3085; this.expr(0); - this.state = 3096; + this.state = 3093; this._errHandler.sync(this); _la = this._input.LA(1); - while(_la===HiveSqlParser.T_COMMA) { + while(_la===HiveSql.T_COMMA) { + this.state = 3086; + this.match(HiveSql.T_COMMA); + this.state = 3087; + this.expr(0); + this.state = 3088; + this.match(HiveSql.T_EQUAL); this.state = 3089; - this.match(HiveSqlParser.T_COMMA); - this.state = 3090; this.expr(0); - this.state = 3091; - this.match(HiveSqlParser.T_EQUAL); - this.state = 3092; - this.expr(0); - this.state = 3098; + this.state = 3095; this._errHandler.sync(this); _la = this._input.LA(1); } } - this.state = 3101; - this.match(HiveSqlParser.T_CLOSE_P); + this.state = 3098; + this.match(HiveSql.T_CLOSE_P); break; case 12: this.enterOuterAlt(localctx, 12); - this.state = 3103; - this.match(HiveSqlParser.T_MIN_PART_INT); - this.state = 3104; - this.match(HiveSqlParser.T_OPEN_P); - this.state = 3105; + this.state = 3100; + this.match(HiveSql.T_MIN_PART_INT); + this.state = 3101; + this.match(HiveSql.T_OPEN_P); + this.state = 3102; this.expr(0); - this.state = 3118; + this.state = 3115; this._errHandler.sync(this); _la = this._input.LA(1); - if(_la===HiveSqlParser.T_COMMA) { - this.state = 3106; - this.match(HiveSqlParser.T_COMMA); - this.state = 3107; + if(_la===HiveSql.T_COMMA) { + this.state = 3103; + this.match(HiveSql.T_COMMA); + this.state = 3104; this.expr(0); - this.state = 3115; + this.state = 3112; this._errHandler.sync(this); _la = this._input.LA(1); - while(_la===HiveSqlParser.T_COMMA) { + while(_la===HiveSql.T_COMMA) { + this.state = 3105; + this.match(HiveSql.T_COMMA); + this.state = 3106; + this.expr(0); + this.state = 3107; + this.match(HiveSql.T_EQUAL); this.state = 3108; - this.match(HiveSqlParser.T_COMMA); - this.state = 3109; this.expr(0); - this.state = 3110; - this.match(HiveSqlParser.T_EQUAL); - this.state = 3111; - this.expr(0); - this.state = 3117; + this.state = 3114; this._errHandler.sync(this); _la = this._input.LA(1); } } - this.state = 3120; - this.match(HiveSqlParser.T_CLOSE_P); + this.state = 3117; + this.match(HiveSql.T_CLOSE_P); break; case 13: this.enterOuterAlt(localctx, 13); - this.state = 3122; - this.match(HiveSqlParser.T_MAX_PART_DATE); - this.state = 3123; - this.match(HiveSqlParser.T_OPEN_P); - this.state = 3124; + this.state = 3119; + this.match(HiveSql.T_MAX_PART_DATE); + this.state = 3120; + this.match(HiveSql.T_OPEN_P); + this.state = 3121; this.expr(0); - this.state = 3137; + this.state = 3134; this._errHandler.sync(this); _la = this._input.LA(1); - if(_la===HiveSqlParser.T_COMMA) { - this.state = 3125; - this.match(HiveSqlParser.T_COMMA); - this.state = 3126; + if(_la===HiveSql.T_COMMA) { + this.state = 3122; + this.match(HiveSql.T_COMMA); + this.state = 3123; this.expr(0); - this.state = 3134; + this.state = 3131; this._errHandler.sync(this); _la = this._input.LA(1); - while(_la===HiveSqlParser.T_COMMA) { + while(_la===HiveSql.T_COMMA) { + this.state = 3124; + this.match(HiveSql.T_COMMA); + this.state = 3125; + this.expr(0); + this.state = 3126; + this.match(HiveSql.T_EQUAL); this.state = 3127; - this.match(HiveSqlParser.T_COMMA); - this.state = 3128; this.expr(0); - this.state = 3129; - this.match(HiveSqlParser.T_EQUAL); - this.state = 3130; - this.expr(0); - this.state = 3136; + this.state = 3133; this._errHandler.sync(this); _la = this._input.LA(1); } } - this.state = 3139; - this.match(HiveSqlParser.T_CLOSE_P); + this.state = 3136; + this.match(HiveSql.T_CLOSE_P); break; case 14: this.enterOuterAlt(localctx, 14); - this.state = 3141; - this.match(HiveSqlParser.T_MIN_PART_DATE); - this.state = 3142; - this.match(HiveSqlParser.T_OPEN_P); - this.state = 3143; + this.state = 3138; + this.match(HiveSql.T_MIN_PART_DATE); + this.state = 3139; + this.match(HiveSql.T_OPEN_P); + this.state = 3140; this.expr(0); - this.state = 3156; + this.state = 3153; this._errHandler.sync(this); _la = this._input.LA(1); - if(_la===HiveSqlParser.T_COMMA) { - this.state = 3144; - this.match(HiveSqlParser.T_COMMA); - this.state = 3145; + if(_la===HiveSql.T_COMMA) { + this.state = 3141; + this.match(HiveSql.T_COMMA); + this.state = 3142; this.expr(0); - this.state = 3153; + this.state = 3150; this._errHandler.sync(this); _la = this._input.LA(1); - while(_la===HiveSqlParser.T_COMMA) { + while(_la===HiveSql.T_COMMA) { + this.state = 3143; + this.match(HiveSql.T_COMMA); + this.state = 3144; + this.expr(0); + this.state = 3145; + this.match(HiveSql.T_EQUAL); this.state = 3146; - this.match(HiveSqlParser.T_COMMA); - this.state = 3147; this.expr(0); - this.state = 3148; - this.match(HiveSqlParser.T_EQUAL); - this.state = 3149; - this.expr(0); - this.state = 3155; + this.state = 3152; this._errHandler.sync(this); _la = this._input.LA(1); } } - this.state = 3158; - this.match(HiveSqlParser.T_CLOSE_P); + this.state = 3155; + this.match(HiveSql.T_CLOSE_P); break; case 15: this.enterOuterAlt(localctx, 15); - this.state = 3160; - this.match(HiveSqlParser.T_PART_COUNT); - this.state = 3161; - this.match(HiveSqlParser.T_OPEN_P); - this.state = 3162; + this.state = 3157; + this.match(HiveSql.T_PART_COUNT); + this.state = 3158; + this.match(HiveSql.T_OPEN_P); + this.state = 3159; this.expr(0); - this.state = 3170; + this.state = 3167; this._errHandler.sync(this); _la = this._input.LA(1); - while(_la===HiveSqlParser.T_COMMA) { + while(_la===HiveSql.T_COMMA) { + this.state = 3160; + this.match(HiveSql.T_COMMA); + this.state = 3161; + this.expr(0); + this.state = 3162; + this.match(HiveSql.T_EQUAL); this.state = 3163; - this.match(HiveSqlParser.T_COMMA); - this.state = 3164; this.expr(0); - this.state = 3165; - this.match(HiveSqlParser.T_EQUAL); - this.state = 3166; - this.expr(0); - this.state = 3172; + this.state = 3169; this._errHandler.sync(this); _la = this._input.LA(1); } - this.state = 3173; - this.match(HiveSqlParser.T_CLOSE_P); + this.state = 3170; + this.match(HiveSql.T_CLOSE_P); break; case 16: this.enterOuterAlt(localctx, 16); - this.state = 3175; - this.match(HiveSqlParser.T_PART_LOC); - this.state = 3176; - this.match(HiveSqlParser.T_OPEN_P); - this.state = 3177; + this.state = 3172; + this.match(HiveSql.T_PART_LOC); + this.state = 3173; + this.match(HiveSql.T_OPEN_P); + this.state = 3174; this.expr(0); - this.state = 3183; + this.state = 3180; this._errHandler.sync(this); var _alt = 1; do { switch (_alt) { case 1: - this.state = 3178; - this.match(HiveSqlParser.T_COMMA); - this.state = 3179; + this.state = 3175; + this.match(HiveSql.T_COMMA); + this.state = 3176; this.expr(0); - this.state = 3180; - this.match(HiveSqlParser.T_EQUAL); - this.state = 3181; + this.state = 3177; + this.match(HiveSql.T_EQUAL); + this.state = 3178; this.expr(0); break; default: throw new antlr4.error.NoViableAltException(this); } - this.state = 3185; + this.state = 3182; this._errHandler.sync(this); _alt = this._interp.adaptivePredict(this._input,400, this._ctx); } while ( _alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER ); - this.state = 3189; + this.state = 3186; this._errHandler.sync(this); _la = this._input.LA(1); - if(_la===HiveSqlParser.T_COMMA) { - this.state = 3187; - this.match(HiveSqlParser.T_COMMA); - this.state = 3188; + if(_la===HiveSql.T_COMMA) { + this.state = 3184; + this.match(HiveSql.T_COMMA); + this.state = 3185; this.expr(0); } - this.state = 3191; - this.match(HiveSqlParser.T_CLOSE_P); + this.state = 3188; + this.match(HiveSql.T_CLOSE_P); break; case 17: this.enterOuterAlt(localctx, 17); - this.state = 3193; - this.match(HiveSqlParser.T_TRIM); - this.state = 3194; - this.match(HiveSqlParser.T_OPEN_P); - this.state = 3195; + this.state = 3190; + this.match(HiveSql.T_TRIM); + this.state = 3191; + this.match(HiveSql.T_OPEN_P); + this.state = 3192; this.expr(0); - this.state = 3196; - this.match(HiveSqlParser.T_CLOSE_P); + this.state = 3193; + this.match(HiveSql.T_CLOSE_P); break; case 18: this.enterOuterAlt(localctx, 18); + this.state = 3195; + this.match(HiveSql.T_SUBSTRING); + this.state = 3196; + this.match(HiveSql.T_OPEN_P); + this.state = 3197; + this.expr(0); this.state = 3198; - this.match(HiveSqlParser.T_SUBSTRING); + this.match(HiveSql.T_FROM); this.state = 3199; - this.match(HiveSqlParser.T_OPEN_P); - this.state = 3200; this.expr(0); - this.state = 3201; - this.match(HiveSqlParser.T_FROM); this.state = 3202; - this.expr(0); - this.state = 3205; this._errHandler.sync(this); _la = this._input.LA(1); - if(_la===HiveSqlParser.T_FOR) { - this.state = 3203; - this.match(HiveSqlParser.T_FOR); - this.state = 3204; + if(_la===HiveSql.T_FOR) { + this.state = 3200; + this.match(HiveSql.T_FOR); + this.state = 3201; this.expr(0); } - this.state = 3207; - this.match(HiveSqlParser.T_CLOSE_P); + this.state = 3204; + this.match(HiveSql.T_CLOSE_P); break; case 19: this.enterOuterAlt(localctx, 19); - this.state = 3209; - this.match(HiveSqlParser.T_SYSDATE); + this.state = 3206; + this.match(HiveSql.T_SYSDATE); break; case 20: this.enterOuterAlt(localctx, 20); - this.state = 3210; - this.match(HiveSqlParser.T_USER); + this.state = 3207; + this.match(HiveSql.T_USER); break; } @@ -33243,7 +33302,7 @@ function Expr_funcContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_expr_func; + this.ruleIndex = HiveSql.RULE_expr_func; return this; } @@ -33255,11 +33314,11 @@ Expr_funcContext.prototype.ident = function() { }; Expr_funcContext.prototype.T_OPEN_P = function() { - return this.getToken(HiveSqlParser.T_OPEN_P, 0); + return this.getToken(HiveSql.T_OPEN_P, 0); }; Expr_funcContext.prototype.T_CLOSE_P = function() { - return this.getToken(HiveSqlParser.T_CLOSE_P, 0); + return this.getToken(HiveSql.T_CLOSE_P, 0); }; Expr_funcContext.prototype.expr_func_params = function() { @@ -33289,28 +33348,28 @@ Expr_funcContext.prototype.accept = function(visitor) { -HiveSqlParser.Expr_funcContext = Expr_funcContext; +HiveSql.Expr_funcContext = Expr_funcContext; -HiveSqlParser.prototype.expr_func = function() { +HiveSql.prototype.expr_func = function() { var localctx = new Expr_funcContext(this, this._ctx, this.state); - this.enterRule(localctx, 412, HiveSqlParser.RULE_expr_func); + this.enterRule(localctx, 412, HiveSql.RULE_expr_func); try { this.enterOuterAlt(localctx, 1); - this.state = 3213; + this.state = 3210; this.ident(); - this.state = 3214; - this.match(HiveSqlParser.T_OPEN_P); - this.state = 3216; + this.state = 3211; + this.match(HiveSql.T_OPEN_P); + this.state = 3213; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,404,this._ctx); if(la_===1) { - this.state = 3215; + this.state = 3212; this.expr_func_params(); } - this.state = 3218; - this.match(HiveSqlParser.T_CLOSE_P); + this.state = 3215; + this.match(HiveSql.T_CLOSE_P); } catch (re) { if(re instanceof antlr4.error.RecognitionException) { localctx.exception = re; @@ -33335,7 +33394,7 @@ function Expr_func_paramsContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_expr_func_params; + this.ruleIndex = HiveSql.RULE_expr_func_params; return this; } @@ -33358,9 +33417,9 @@ Expr_func_paramsContext.prototype.T_COMMA = function(i) { i = null; } if(i===null) { - return this.getTokens(HiveSqlParser.T_COMMA); + return this.getTokens(HiveSql.T_COMMA); } else { - return this.getToken(HiveSqlParser.T_COMMA, i); + return this.getToken(HiveSql.T_COMMA, i); } }; @@ -33388,27 +33447,27 @@ Expr_func_paramsContext.prototype.accept = function(visitor) { -HiveSqlParser.Expr_func_paramsContext = Expr_func_paramsContext; +HiveSql.Expr_func_paramsContext = Expr_func_paramsContext; -HiveSqlParser.prototype.expr_func_params = function() { +HiveSql.prototype.expr_func_params = function() { var localctx = new Expr_func_paramsContext(this, this._ctx, this.state); - this.enterRule(localctx, 414, HiveSqlParser.RULE_expr_func_params); + this.enterRule(localctx, 414, HiveSql.RULE_expr_func_params); try { this.enterOuterAlt(localctx, 1); - this.state = 3220; + this.state = 3217; this.func_param(); - this.state = 3225; + this.state = 3222; this._errHandler.sync(this); var _alt = this._interp.adaptivePredict(this._input,405,this._ctx) while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { if(_alt===1) { - this.state = 3221; - this.match(HiveSqlParser.T_COMMA); - this.state = 3222; + this.state = 3218; + this.match(HiveSql.T_COMMA); + this.state = 3219; this.func_param(); } - this.state = 3227; + this.state = 3224; this._errHandler.sync(this); _alt = this._interp.adaptivePredict(this._input,405,this._ctx); } @@ -33437,7 +33496,7 @@ function Func_paramContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_func_param; + this.ruleIndex = HiveSql.RULE_func_param; return this; } @@ -33453,11 +33512,11 @@ Func_paramContext.prototype.ident = function() { }; Func_paramContext.prototype.T_EQUAL = function() { - return this.getToken(HiveSqlParser.T_EQUAL, 0); + return this.getToken(HiveSql.T_EQUAL, 0); }; Func_paramContext.prototype.T_GREATER = function() { - return this.getToken(HiveSqlParser.T_GREATER, 0); + return this.getToken(HiveSql.T_GREATER, 0); }; Func_paramContext.prototype.enterRule = function(listener) { @@ -33483,38 +33542,38 @@ Func_paramContext.prototype.accept = function(visitor) { -HiveSqlParser.Func_paramContext = Func_paramContext; +HiveSql.Func_paramContext = Func_paramContext; -HiveSqlParser.prototype.func_param = function() { +HiveSql.prototype.func_param = function() { var localctx = new Func_paramContext(this, this._ctx, this.state); - this.enterRule(localctx, 416, HiveSqlParser.RULE_func_param); + this.enterRule(localctx, 416, HiveSql.RULE_func_param); var _la = 0; // Token type try { this.enterOuterAlt(localctx, 1); - this.state = 3228; - if (!( !this._input.LT(1).getText().equalsIgnoreCase("INTO"))) { - throw new antlr4.error.FailedPredicateException(this, "!this._input.LT(1).getText().equalsIgnoreCase(\"INTO\")"); + this.state = 3225; + if (!( this._input.LT(1).text.toUpperCase() !== "INTO")) { + throw new antlr4.error.FailedPredicateException(this, "this._input.LT(1).text.toUpperCase() !== \"INTO\""); } - this.state = 3234; + this.state = 3231; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,407,this._ctx); if(la_===1) { - this.state = 3229; + this.state = 3226; this.ident(); - this.state = 3230; - this.match(HiveSqlParser.T_EQUAL); - this.state = 3232; + this.state = 3227; + this.match(HiveSql.T_EQUAL); + this.state = 3229; this._errHandler.sync(this); _la = this._input.LA(1); - if(_la===HiveSqlParser.T_GREATER) { - this.state = 3231; - this.match(HiveSqlParser.T_GREATER); + if(_la===HiveSql.T_GREATER) { + this.state = 3228; + this.match(HiveSql.T_GREATER); } } - this.state = 3236; + this.state = 3233; this.expr(0); } catch (re) { if(re instanceof antlr4.error.RecognitionException) { @@ -33540,7 +33599,7 @@ function Expr_selectContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_expr_select; + this.ruleIndex = HiveSql.RULE_expr_select; return this; } @@ -33578,26 +33637,26 @@ Expr_selectContext.prototype.accept = function(visitor) { -HiveSqlParser.Expr_selectContext = Expr_selectContext; +HiveSql.Expr_selectContext = Expr_selectContext; -HiveSqlParser.prototype.expr_select = function() { +HiveSql.prototype.expr_select = function() { var localctx = new Expr_selectContext(this, this._ctx, this.state); - this.enterRule(localctx, 418, HiveSqlParser.RULE_expr_select); + this.enterRule(localctx, 418, HiveSql.RULE_expr_select); try { - this.state = 3240; + this.state = 3237; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,408,this._ctx); switch(la_) { case 1: this.enterOuterAlt(localctx, 1); - this.state = 3238; + this.state = 3235; this.select_stmt(); break; case 2: this.enterOuterAlt(localctx, 2); - this.state = 3239; + this.state = 3236; this.expr(0); break; @@ -33626,7 +33685,7 @@ function Expr_fileContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_expr_file; + this.ruleIndex = HiveSql.RULE_expr_file; return this; } @@ -33664,26 +33723,26 @@ Expr_fileContext.prototype.accept = function(visitor) { -HiveSqlParser.Expr_fileContext = Expr_fileContext; +HiveSql.Expr_fileContext = Expr_fileContext; -HiveSqlParser.prototype.expr_file = function() { +HiveSql.prototype.expr_file = function() { var localctx = new Expr_fileContext(this, this._ctx, this.state); - this.enterRule(localctx, 420, HiveSqlParser.RULE_expr_file); + this.enterRule(localctx, 420, HiveSql.RULE_expr_file); try { - this.state = 3244; + this.state = 3241; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,409,this._ctx); switch(la_) { case 1: this.enterOuterAlt(localctx, 1); - this.state = 3242; + this.state = 3239; this.file_name(); break; case 2: this.enterOuterAlt(localctx, 2); - this.state = 3243; + this.state = 3240; this.expr(0); break; @@ -33712,7 +33771,7 @@ function HiveContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_hive; + this.ruleIndex = HiveSql.RULE_hive; return this; } @@ -33720,7 +33779,7 @@ HiveContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); HiveContext.prototype.constructor = HiveContext; HiveContext.prototype.T_HIVE = function() { - return this.getToken(HiveSqlParser.T_HIVE, 0); + return this.getToken(HiveSql.T_HIVE, 0); }; HiveContext.prototype.hive_item = function(i) { @@ -33757,25 +33816,25 @@ HiveContext.prototype.accept = function(visitor) { -HiveSqlParser.HiveContext = HiveContext; +HiveSql.HiveContext = HiveContext; -HiveSqlParser.prototype.hive = function() { +HiveSql.prototype.hive = function() { var localctx = new HiveContext(this, this._ctx, this.state); - this.enterRule(localctx, 422, HiveSqlParser.RULE_hive); + this.enterRule(localctx, 422, HiveSql.RULE_hive); try { this.enterOuterAlt(localctx, 1); - this.state = 3246; - this.match(HiveSqlParser.T_HIVE); - this.state = 3250; + this.state = 3243; + this.match(HiveSql.T_HIVE); + this.state = 3247; this._errHandler.sync(this); var _alt = this._interp.adaptivePredict(this._input,410,this._ctx) while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { if(_alt===1) { - this.state = 3247; + this.state = 3244; this.hive_item(); } - this.state = 3252; + this.state = 3249; this._errHandler.sync(this); _alt = this._interp.adaptivePredict(this._input,410,this._ctx); } @@ -33804,7 +33863,7 @@ function Hive_itemContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_hive_item; + this.ruleIndex = HiveSql.RULE_hive_item; return this; } @@ -33812,7 +33871,7 @@ Hive_itemContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); Hive_itemContext.prototype.constructor = Hive_itemContext; Hive_itemContext.prototype.T_SUB = function() { - return this.getToken(HiveSqlParser.T_SUB, 0); + return this.getToken(HiveSql.T_SUB, 0); }; Hive_itemContext.prototype.ident = function() { @@ -33824,11 +33883,11 @@ Hive_itemContext.prototype.expr = function() { }; Hive_itemContext.prototype.L_ID = function() { - return this.getToken(HiveSqlParser.L_ID, 0); + return this.getToken(HiveSql.L_ID, 0); }; Hive_itemContext.prototype.T_EQUAL = function() { - return this.getToken(HiveSqlParser.T_EQUAL, 0); + return this.getToken(HiveSql.T_EQUAL, 0); }; Hive_itemContext.prototype.enterRule = function(listener) { @@ -33854,46 +33913,46 @@ Hive_itemContext.prototype.accept = function(visitor) { -HiveSqlParser.Hive_itemContext = Hive_itemContext; +HiveSql.Hive_itemContext = Hive_itemContext; -HiveSqlParser.prototype.hive_item = function() { +HiveSql.prototype.hive_item = function() { var localctx = new Hive_itemContext(this, this._ctx, this.state); - this.enterRule(localctx, 424, HiveSqlParser.RULE_hive_item); + this.enterRule(localctx, 424, HiveSql.RULE_hive_item); try { - this.state = 3265; + this.state = 3262; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,411,this._ctx); switch(la_) { case 1: this.enterOuterAlt(localctx, 1); - this.state = 3253; - this.match(HiveSqlParser.T_SUB); - this.state = 3254; + this.state = 3250; + this.match(HiveSql.T_SUB); + this.state = 3251; this.ident(); - this.state = 3255; + this.state = 3252; this.expr(0); break; case 2: this.enterOuterAlt(localctx, 2); - this.state = 3257; - this.match(HiveSqlParser.T_SUB); - this.state = 3258; + this.state = 3254; + this.match(HiveSql.T_SUB); + this.state = 3255; this.ident(); - this.state = 3259; - this.match(HiveSqlParser.L_ID); - this.state = 3260; - this.match(HiveSqlParser.T_EQUAL); - this.state = 3261; + this.state = 3256; + this.match(HiveSql.L_ID); + this.state = 3257; + this.match(HiveSql.T_EQUAL); + this.state = 3258; this.expr(0); break; case 3: this.enterOuterAlt(localctx, 3); - this.state = 3263; - this.match(HiveSqlParser.T_SUB); - this.state = 3264; + this.state = 3260; + this.match(HiveSql.T_SUB); + this.state = 3261; this.ident(); break; @@ -33922,17 +33981,25 @@ function HostContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_host; + this.ruleIndex = HiveSql.RULE_host; return this; } HostContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); HostContext.prototype.constructor = HostContext; +HostContext.prototype.T_NOTE = function() { + return this.getToken(HiveSql.T_NOTE, 0); +}; + HostContext.prototype.host_cmd = function() { return this.getTypedRuleContext(Host_cmdContext,0); }; +HostContext.prototype.T_SEMICOLON = function() { + return this.getToken(HiveSql.T_SEMICOLON, 0); +}; + HostContext.prototype.host_stmt = function() { return this.getTypedRuleContext(Host_stmtContext,0); }; @@ -33960,28 +34027,28 @@ HostContext.prototype.accept = function(visitor) { -HiveSqlParser.HostContext = HostContext; +HiveSql.HostContext = HostContext; -HiveSqlParser.prototype.host = function() { +HiveSql.prototype.host = function() { var localctx = new HostContext(this, this._ctx, this.state); - this.enterRule(localctx, 426, HiveSqlParser.RULE_host); + this.enterRule(localctx, 426, HiveSql.RULE_host); try { - this.state = 3272; + this.state = 3269; this._errHandler.sync(this); switch(this._input.LA(1)) { - case HiveSqlParser.T__6: + case HiveSql.T_NOTE: this.enterOuterAlt(localctx, 1); - this.state = 3267; - this.match(HiveSqlParser.T__6); - this.state = 3268; + this.state = 3264; + this.match(HiveSql.T_NOTE); + this.state = 3265; this.host_cmd(); - this.state = 3269; - this.match(HiveSqlParser.T__7); + this.state = 3266; + this.match(HiveSql.T_SEMICOLON); break; - case HiveSqlParser.T_HOST: + case HiveSql.T_HOST: this.enterOuterAlt(localctx, 2); - this.state = 3271; + this.state = 3268; this.host_stmt(); break; default: @@ -34011,7 +34078,7 @@ function Host_cmdContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_host_cmd; + this.ruleIndex = HiveSql.RULE_host_cmd; return this; } @@ -34042,23 +34109,23 @@ Host_cmdContext.prototype.accept = function(visitor) { -HiveSqlParser.Host_cmdContext = Host_cmdContext; +HiveSql.Host_cmdContext = Host_cmdContext; -HiveSqlParser.prototype.host_cmd = function() { +HiveSql.prototype.host_cmd = function() { var localctx = new Host_cmdContext(this, this._ctx, this.state); - this.enterRule(localctx, 428, HiveSqlParser.RULE_host_cmd); + this.enterRule(localctx, 428, HiveSql.RULE_host_cmd); try { this.enterOuterAlt(localctx, 1); - this.state = 3277; + this.state = 3274; this._errHandler.sync(this); var _alt = this._interp.adaptivePredict(this._input,413,this._ctx) while(_alt!=1 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { if(_alt===1+1) { - this.state = 3274; + this.state = 3271; this.matchWildcard(); } - this.state = 3279; + this.state = 3276; this._errHandler.sync(this); _alt = this._interp.adaptivePredict(this._input,413,this._ctx); } @@ -34087,7 +34154,7 @@ function Host_stmtContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_host_stmt; + this.ruleIndex = HiveSql.RULE_host_stmt; return this; } @@ -34095,7 +34162,7 @@ Host_stmtContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); Host_stmtContext.prototype.constructor = Host_stmtContext; Host_stmtContext.prototype.T_HOST = function() { - return this.getToken(HiveSqlParser.T_HOST, 0); + return this.getToken(HiveSql.T_HOST, 0); }; Host_stmtContext.prototype.expr = function() { @@ -34125,17 +34192,17 @@ Host_stmtContext.prototype.accept = function(visitor) { -HiveSqlParser.Host_stmtContext = Host_stmtContext; +HiveSql.Host_stmtContext = Host_stmtContext; -HiveSqlParser.prototype.host_stmt = function() { +HiveSql.prototype.host_stmt = function() { var localctx = new Host_stmtContext(this, this._ctx, this.state); - this.enterRule(localctx, 430, HiveSqlParser.RULE_host_stmt); + this.enterRule(localctx, 430, HiveSql.RULE_host_stmt); try { this.enterOuterAlt(localctx, 1); - this.state = 3280; - this.match(HiveSqlParser.T_HOST); - this.state = 3281; + this.state = 3277; + this.match(HiveSql.T_HOST); + this.state = 3278; this.expr(0); } catch (re) { if(re instanceof antlr4.error.RecognitionException) { @@ -34161,7 +34228,7 @@ function File_nameContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_file_name; + this.ruleIndex = HiveSql.RULE_file_name; return this; } @@ -34169,7 +34236,7 @@ File_nameContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); File_nameContext.prototype.constructor = File_nameContext; File_nameContext.prototype.L_FILE = function() { - return this.getToken(HiveSqlParser.L_FILE, 0); + return this.getToken(HiveSql.L_FILE, 0); }; File_nameContext.prototype.ident = function(i) { @@ -34183,6 +34250,22 @@ File_nameContext.prototype.ident = function(i) { } }; +File_nameContext.prototype.T_DIV = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(HiveSql.T_DIV); + } else { + return this.getToken(HiveSql.T_DIV, i); + } +}; + + +File_nameContext.prototype.T_DOT = function() { + return this.getToken(HiveSql.T_DOT, 0); +}; + File_nameContext.prototype.enterRule = function(listener) { if(listener instanceof HiveSqlListener ) { listener.enterFile_name(this); @@ -34206,694 +34289,692 @@ File_nameContext.prototype.accept = function(visitor) { -HiveSqlParser.File_nameContext = File_nameContext; +HiveSql.File_nameContext = File_nameContext; -HiveSqlParser.prototype.file_name = function() { +HiveSql.prototype.file_name = function() { var localctx = new File_nameContext(this, this._ctx, this.state); - this.enterRule(localctx, 432, HiveSqlParser.RULE_file_name); + this.enterRule(localctx, 432, HiveSql.RULE_file_name); try { - this.state = 3297; + this.state = 3294; this._errHandler.sync(this); switch(this._input.LA(1)) { - case HiveSqlParser.L_FILE: + case HiveSql.L_FILE: this.enterOuterAlt(localctx, 1); - this.state = 3283; - this.match(HiveSqlParser.L_FILE); + this.state = 3280; + this.match(HiveSql.L_FILE); break; - case HiveSqlParser.T__2: - case HiveSqlParser.T__4: - case HiveSqlParser.T__8: - case HiveSqlParser.T_GO: - case HiveSqlParser.T_BEGIN: - case HiveSqlParser.T_EXCEPTION: - case HiveSqlParser.L_ID: - case HiveSqlParser.T_THEN: - case HiveSqlParser.T_SET: - case HiveSqlParser.T_ALLOCATE: - case HiveSqlParser.T_CURSOR: - case HiveSqlParser.T_FOR: - case HiveSqlParser.T_RESULT: - case HiveSqlParser.T_PROCEDURE: - case HiveSqlParser.T_ASSOCIATE: - case HiveSqlParser.T_LOCATOR: - case HiveSqlParser.T_LOCATORS: - case HiveSqlParser.T_WITH: - case HiveSqlParser.T_TRANSACTION: - case HiveSqlParser.T_BREAK: - case HiveSqlParser.T_CALL: - case HiveSqlParser.T_DECLARE: - case HiveSqlParser.T_AS: - case HiveSqlParser.T_CONSTANT: - case HiveSqlParser.T_CONDITION: - case HiveSqlParser.T_IS: - case HiveSqlParser.T_RETURN: - case HiveSqlParser.T_ONLY: - case HiveSqlParser.T_TO: - case HiveSqlParser.T_CALLER: - case HiveSqlParser.T_CLIENT: - case HiveSqlParser.T_WITHOUT: - case HiveSqlParser.T_CONTINUE: - case HiveSqlParser.T_EXIT: - case HiveSqlParser.T_HANDLER: - case HiveSqlParser.T_SQLEXCEPTION: - case HiveSqlParser.T_SQLWARNING: - case HiveSqlParser.T_NOT: - case HiveSqlParser.T_FOUND: - case HiveSqlParser.T_GLOBAL: - case HiveSqlParser.T_TEMPORARY: - case HiveSqlParser.T_TABLE: - case HiveSqlParser.T_CREATE: - case HiveSqlParser.T_IF: - case HiveSqlParser.T_EXISTS: - case HiveSqlParser.T_LOCAL: - case HiveSqlParser.T_MULTISET: - case HiveSqlParser.T_VOLATILE: - case HiveSqlParser.T_LIKE: - case HiveSqlParser.T_CONSTRAINT: - case HiveSqlParser.T_PRIMARY: - case HiveSqlParser.T_KEY: - case HiveSqlParser.T_UNIQUE: - case HiveSqlParser.T_REFERENCES: - case HiveSqlParser.T_IDENTITY: - case HiveSqlParser.T_AUTO_INCREMENT: - case HiveSqlParser.T_ENABLE: - case HiveSqlParser.T_CLUSTERED: - case HiveSqlParser.T_ASC: - case HiveSqlParser.T_DESC: - case HiveSqlParser.T_FOREIGN: - case HiveSqlParser.T_ON: - case HiveSqlParser.T_UPDATE: - case HiveSqlParser.T_DELETE: - case HiveSqlParser.T_NO: - case HiveSqlParser.T_ACTION: - case HiveSqlParser.T_RESTRICT: - case HiveSqlParser.T_DEFAULT: - case HiveSqlParser.T_CASCADE: - case HiveSqlParser.T_LOG: - case HiveSqlParser.T_FALLBACK: - case HiveSqlParser.T_COMMIT: - case HiveSqlParser.T_PRESERVE: - case HiveSqlParser.T_ROWS: - case HiveSqlParser.T_SEGMENT: - case HiveSqlParser.T_CREATION: - case HiveSqlParser.T_IMMEDIATE: - case HiveSqlParser.T_DEFERRED: - case HiveSqlParser.T_PCTFREE: - case HiveSqlParser.T_PCTUSED: - case HiveSqlParser.T_INITRANS: - case HiveSqlParser.T_MAXTRANS: - case HiveSqlParser.T_NOCOMPRESS: - case HiveSqlParser.T_LOGGING: - case HiveSqlParser.T_NOLOGGING: - case HiveSqlParser.T_STORAGE: - case HiveSqlParser.T_TABLESPACE: - case HiveSqlParser.T_INDEX: - case HiveSqlParser.T_IN: - case HiveSqlParser.T_REPLACE: - case HiveSqlParser.T_DISTRIBUTE: - case HiveSqlParser.T_BY: - case HiveSqlParser.T_HASH: - case HiveSqlParser.T_LOGGED: - case HiveSqlParser.T_COMPRESS: - case HiveSqlParser.T_YES: - case HiveSqlParser.T_DEFINITION: - case HiveSqlParser.T_DROP: - case HiveSqlParser.T_DATA: - case HiveSqlParser.T_STORED: - case HiveSqlParser.T_ROW: - case HiveSqlParser.T_FORMAT: - case HiveSqlParser.T_DELIMITED: - case HiveSqlParser.T_FIELDS: - case HiveSqlParser.T_TERMINATED: - case HiveSqlParser.T_ESCAPED: - case HiveSqlParser.T_COLLECTION: - case HiveSqlParser.T_ITEMS: - case HiveSqlParser.T_MAP: - case HiveSqlParser.T_KEYS: - case HiveSqlParser.T_LINES: - case HiveSqlParser.T_DEFINED: - case HiveSqlParser.T_TEXTIMAGE_ON: - case HiveSqlParser.T_COMMENT: - case HiveSqlParser.T_CHARACTER: - case HiveSqlParser.T_CHARSET: - case HiveSqlParser.T_ENGINE: - case HiveSqlParser.T_ALTER: - case HiveSqlParser.T_ADD2: - case HiveSqlParser.T_CHAR: - case HiveSqlParser.T_BIGINT: - case HiveSqlParser.T_BINARY_DOUBLE: - case HiveSqlParser.T_BINARY_FLOAT: - case HiveSqlParser.T_BIT: - case HiveSqlParser.T_DATE: - case HiveSqlParser.T_DATETIME: - case HiveSqlParser.T_DEC: - case HiveSqlParser.T_DECIMAL: - case HiveSqlParser.T_DOUBLE: - case HiveSqlParser.T_PRECISION: - case HiveSqlParser.T_FLOAT: - case HiveSqlParser.T_INT: - case HiveSqlParser.T_INT2: - case HiveSqlParser.T_INT4: - case HiveSqlParser.T_INT8: - case HiveSqlParser.T_INTEGER: - case HiveSqlParser.T_NCHAR: - case HiveSqlParser.T_NVARCHAR: - case HiveSqlParser.T_NUMBER: - case HiveSqlParser.T_NUMERIC: - case HiveSqlParser.T_REAL: - case HiveSqlParser.T_RESULT_SET_LOCATOR: - case HiveSqlParser.T_VARYING: - case HiveSqlParser.T_SIMPLE_FLOAT: - case HiveSqlParser.T_SIMPLE_DOUBLE: - case HiveSqlParser.T_SMALLINT: - case HiveSqlParser.T_SMALLDATETIME: - case HiveSqlParser.T_STRING: - case HiveSqlParser.T_SYS_REFCURSOR: - case HiveSqlParser.T_TIMESTAMP: - case HiveSqlParser.T_VARCHAR: - case HiveSqlParser.T_VARCHAR2: - case HiveSqlParser.T_XML: - case HiveSqlParser.T_MAX: - case HiveSqlParser.T_BYTE: - case HiveSqlParser.T_CASESPECIFIC: - case HiveSqlParser.T_CS: - case HiveSqlParser.T_DATABASE: - case HiveSqlParser.T_SCHEMA: - case HiveSqlParser.T_LOCATION: - case HiveSqlParser.T_OR: - case HiveSqlParser.T_FUNCTION: - case HiveSqlParser.T_RETURNS: - case HiveSqlParser.T_PACKAGE: - case HiveSqlParser.T_PROC: - case HiveSqlParser.T_BODY: - case HiveSqlParser.T_OUT: - case HiveSqlParser.T_INOUT: - case HiveSqlParser.T_LANGUAGE: - case HiveSqlParser.T_SQL: - case HiveSqlParser.T_SECURITY: - case HiveSqlParser.T_CREATOR: - case HiveSqlParser.T_DEFINER: - case HiveSqlParser.T_INVOKER: - case HiveSqlParser.T_OWNER: - case HiveSqlParser.T_DYNAMIC: - case HiveSqlParser.T_SETS: - case HiveSqlParser.T_EXEC: - case HiveSqlParser.T_EXECUTE: - case HiveSqlParser.T_INTO: - case HiveSqlParser.T_INCLUDE: - case HiveSqlParser.T_INSERT: - case HiveSqlParser.T_OVERWRITE: - case HiveSqlParser.T_VALUES: - case HiveSqlParser.T_DIRECTORY: - case HiveSqlParser.T_GET: - case HiveSqlParser.T_DIAGNOSTICS: - case HiveSqlParser.T_MESSAGE_TEXT: - case HiveSqlParser.T_ROW_COUNT: - case HiveSqlParser.T_GRANT: - case HiveSqlParser.T_ROLE: - case HiveSqlParser.T_LEAVE: - case HiveSqlParser.T_OBJECT: - case HiveSqlParser.T_AT: - case HiveSqlParser.T_OPEN: - case HiveSqlParser.T_FETCH: - case HiveSqlParser.T_FROM: - case HiveSqlParser.T_COLLECT: - case HiveSqlParser.T_STATISTICS: - case HiveSqlParser.T_STATS: - case HiveSqlParser.T_COLUMN: - case HiveSqlParser.T_CLOSE: - case HiveSqlParser.T_CMP: - case HiveSqlParser.T_SUM: - case HiveSqlParser.T_COPY: - case HiveSqlParser.T_HDFS: - case HiveSqlParser.T_BATCHSIZE: - case HiveSqlParser.T_DELIMITER: - case HiveSqlParser.T_SQLINSERT: - case HiveSqlParser.T_IGNORE: - case HiveSqlParser.T_WORK: - case HiveSqlParser.T_PRINT: - case HiveSqlParser.T_QUIT: - case HiveSqlParser.T_RAISE: - case HiveSqlParser.T_RESIGNAL: - case HiveSqlParser.T_SQLSTATE: - case HiveSqlParser.T_VALUE: - case HiveSqlParser.T_ROLLBACK: - case HiveSqlParser.T_CURRENT: - case HiveSqlParser.T_CURRENT_SCHEMA: - case HiveSqlParser.T_ANSI_NULLS: - case HiveSqlParser.T_ANSI_PADDING: - case HiveSqlParser.T_NOCOUNT: - case HiveSqlParser.T_QUOTED_IDENTIFIER: - case HiveSqlParser.T_XACT_ABORT: - case HiveSqlParser.T_OFF: - case HiveSqlParser.T_QUERY_BAND: - case HiveSqlParser.T_NONE: - case HiveSqlParser.T_SESSION: - case HiveSqlParser.T_SIGNAL: - case HiveSqlParser.T_SUMMARY: - case HiveSqlParser.T_TOP: - case HiveSqlParser.T_LIMIT: - case HiveSqlParser.T_TRUNCATE: - case HiveSqlParser.T_USE: - case HiveSqlParser.T_WHILE: - case HiveSqlParser.T_DO: - case HiveSqlParser.T_LOOP: - case HiveSqlParser.T_REVERSE: - case HiveSqlParser.T_STEP: - case HiveSqlParser.T_USING: - case HiveSqlParser.T_ALL: - case HiveSqlParser.T_EXCEPT: - case HiveSqlParser.T_INTERSECT: - case HiveSqlParser.T_SELECT: - case HiveSqlParser.T_SEL: - case HiveSqlParser.T_DISTINCT: - case HiveSqlParser.T_TITLE: - case HiveSqlParser.T_INNER: - case HiveSqlParser.T_JOIN: - case HiveSqlParser.T_LEFT: - case HiveSqlParser.T_RIGHT: - case HiveSqlParser.T_FULL: - case HiveSqlParser.T_OUTER: - case HiveSqlParser.T_GROUP: - case HiveSqlParser.T_HAVING: - case HiveSqlParser.T_QUALIFY: - case HiveSqlParser.T_ORDER: - case HiveSqlParser.T_RR: - case HiveSqlParser.T_RS: - case HiveSqlParser.T_UR: - case HiveSqlParser.T_AND: - case HiveSqlParser.T_KEEP: - case HiveSqlParser.T_EXCLUSIVE: - case HiveSqlParser.T_SHARE: - case HiveSqlParser.T_LOCKS: - case HiveSqlParser.T_MERGE: - case HiveSqlParser.T_MATCHED: - case HiveSqlParser.T_DESCRIBE: - case HiveSqlParser.T_BETWEEN: - case HiveSqlParser.T_RLIKE: - case HiveSqlParser.T_REGEXP: - case HiveSqlParser.T_INTERVAL: - case HiveSqlParser.T_DAY: - case HiveSqlParser.T_DAYS: - case HiveSqlParser.T_MICROSECOND: - case HiveSqlParser.T_MICROSECONDS: - case HiveSqlParser.T_SECOND: - case HiveSqlParser.T_SECONDS: - case HiveSqlParser.T_CONCAT: - case HiveSqlParser.T_CASE: - case HiveSqlParser.T_ISOPEN: - case HiveSqlParser.T_NOTFOUND: - case HiveSqlParser.T_AVG: - case HiveSqlParser.T_COUNT: - case HiveSqlParser.T_COUNT_BIG: - case HiveSqlParser.T_CUME_DIST: - case HiveSqlParser.T_DENSE_RANK: - case HiveSqlParser.T_FIRST_VALUE: - case HiveSqlParser.T_LAG: - case HiveSqlParser.T_LAST_VALUE: - case HiveSqlParser.T_LEAD: - case HiveSqlParser.T_MIN: - case HiveSqlParser.T_RANK: - case HiveSqlParser.T_ROW_NUMBER: - case HiveSqlParser.T_STDEV: - case HiveSqlParser.T_VAR: - case HiveSqlParser.T_VARIANCE: - case HiveSqlParser.T_OVER: - case HiveSqlParser.T_PARTITION: - case HiveSqlParser.T_ACTIVITY_COUNT: - case HiveSqlParser.T_CAST: - case HiveSqlParser.T_CURRENT_DATE: - case HiveSqlParser.T_CURRENT_TIMESTAMP: - case HiveSqlParser.T_CURRENT_USER: - case HiveSqlParser.T_USER: - case HiveSqlParser.T_PART_COUNT: - case HiveSqlParser.T_PART_LOC: - case HiveSqlParser.T_TRIM: - case HiveSqlParser.T_SUBSTRING: - case HiveSqlParser.T_SYSDATE: - case HiveSqlParser.T_HIVE: - case HiveSqlParser.T_HOST: - case HiveSqlParser.T_TRUE: - case HiveSqlParser.T_FALSE: - case HiveSqlParser.T_DIR: - case HiveSqlParser.T_FILE: - case HiveSqlParser.T_FILES: - case HiveSqlParser.T_NEW: - case HiveSqlParser.T_PWD: - case HiveSqlParser.T_SESSIONS: - case HiveSqlParser.T_SUBDIR: + case HiveSql.T_ACTION: + case HiveSql.T_ADD2: + case HiveSql.T_ALL: + case HiveSql.T_ALLOCATE: + case HiveSql.T_ALTER: + case HiveSql.T_AND: + case HiveSql.T_ANSI_NULLS: + case HiveSql.T_ANSI_PADDING: + case HiveSql.T_AS: + case HiveSql.T_ASC: + case HiveSql.T_ASSOCIATE: + case HiveSql.T_AT: + case HiveSql.T_AUTO_INCREMENT: + case HiveSql.T_AVG: + case HiveSql.T_BATCHSIZE: + case HiveSql.T_BEGIN: + case HiveSql.T_BETWEEN: + case HiveSql.T_BIGINT: + case HiveSql.T_BINARY_DOUBLE: + case HiveSql.T_BINARY_FLOAT: + case HiveSql.T_BIT: + case HiveSql.T_BODY: + case HiveSql.T_BREAK: + case HiveSql.T_BY: + case HiveSql.T_BYTE: + case HiveSql.T_CALL: + case HiveSql.T_CALLER: + case HiveSql.T_CASCADE: + case HiveSql.T_CASE: + case HiveSql.T_CASESPECIFIC: + case HiveSql.T_CAST: + case HiveSql.T_CHAR: + case HiveSql.T_CHARACTER: + case HiveSql.T_CHARSET: + case HiveSql.T_CLIENT: + case HiveSql.T_CLOSE: + case HiveSql.T_CLUSTERED: + case HiveSql.T_CMP: + case HiveSql.T_COLLECT: + case HiveSql.T_COLLECTION: + case HiveSql.T_COLUMN: + case HiveSql.T_COMMENT: + case HiveSql.T_CONSTANT: + case HiveSql.T_COMMIT: + case HiveSql.T_COMPRESS: + case HiveSql.T_CONCAT: + case HiveSql.T_CONDITION: + case HiveSql.T_CONSTRAINT: + case HiveSql.T_CONTINUE: + case HiveSql.T_COPY: + case HiveSql.T_COUNT: + case HiveSql.T_COUNT_BIG: + case HiveSql.T_CREATE: + case HiveSql.T_CREATION: + case HiveSql.T_CREATOR: + case HiveSql.T_CS: + case HiveSql.T_CURRENT: + case HiveSql.T_CURRENT_SCHEMA: + case HiveSql.T_CURSOR: + case HiveSql.T_DATABASE: + case HiveSql.T_DATA: + case HiveSql.T_DATE: + case HiveSql.T_DATETIME: + case HiveSql.T_DAY: + case HiveSql.T_DAYS: + case HiveSql.T_DEC: + case HiveSql.T_DECIMAL: + case HiveSql.T_DECLARE: + case HiveSql.T_DEFAULT: + case HiveSql.T_DEFERRED: + case HiveSql.T_DEFINED: + case HiveSql.T_DEFINER: + case HiveSql.T_DEFINITION: + case HiveSql.T_DELETE: + case HiveSql.T_DELIMITED: + case HiveSql.T_DELIMITER: + case HiveSql.T_DESC: + case HiveSql.T_DESCRIBE: + case HiveSql.T_DIAGNOSTICS: + case HiveSql.T_DIR: + case HiveSql.T_DIRECTORY: + case HiveSql.T_DISTINCT: + case HiveSql.T_DISTRIBUTE: + case HiveSql.T_DO: + case HiveSql.T_DOUBLE: + case HiveSql.T_DROP: + case HiveSql.T_DYNAMIC: + case HiveSql.T_ENABLE: + case HiveSql.T_ENGINE: + case HiveSql.T_ESCAPED: + case HiveSql.T_EXCEPT: + case HiveSql.T_EXEC: + case HiveSql.T_EXECUTE: + case HiveSql.T_EXCEPTION: + case HiveSql.T_EXCLUSIVE: + case HiveSql.T_EXISTS: + case HiveSql.T_EXIT: + case HiveSql.T_FALLBACK: + case HiveSql.T_FALSE: + case HiveSql.T_FETCH: + case HiveSql.T_FIELDS: + case HiveSql.T_FILE: + case HiveSql.T_FILES: + case HiveSql.T_FLOAT: + case HiveSql.T_FOR: + case HiveSql.T_FOREIGN: + case HiveSql.T_FORMAT: + case HiveSql.T_FOUND: + case HiveSql.T_FROM: + case HiveSql.T_FULL: + case HiveSql.T_FUNCTION: + case HiveSql.T_GET: + case HiveSql.T_GLOBAL: + case HiveSql.T_GO: + case HiveSql.T_GRANT: + case HiveSql.T_GROUP: + case HiveSql.T_HANDLER: + case HiveSql.T_HASH: + case HiveSql.T_HAVING: + case HiveSql.T_HDFS: + case HiveSql.T_HIVE: + case HiveSql.T_HOST: + case HiveSql.T_IDENTITY: + case HiveSql.T_IF: + case HiveSql.T_IGNORE: + case HiveSql.T_IMMEDIATE: + case HiveSql.T_IN: + case HiveSql.T_INCLUDE: + case HiveSql.T_INDEX: + case HiveSql.T_INITRANS: + case HiveSql.T_INNER: + case HiveSql.T_INOUT: + case HiveSql.T_INSERT: + case HiveSql.T_INT: + case HiveSql.T_INT2: + case HiveSql.T_INT4: + case HiveSql.T_INT8: + case HiveSql.T_INTEGER: + case HiveSql.T_INTERSECT: + case HiveSql.T_INTERVAL: + case HiveSql.T_INTO: + case HiveSql.T_INVOKER: + case HiveSql.T_IS: + case HiveSql.T_ISOPEN: + case HiveSql.T_ITEMS: + case HiveSql.T_JOIN: + case HiveSql.T_KEEP: + case HiveSql.T_KEY: + case HiveSql.T_KEYS: + case HiveSql.T_LANGUAGE: + case HiveSql.T_LEAVE: + case HiveSql.T_LEFT: + case HiveSql.T_LIKE: + case HiveSql.T_LIMIT: + case HiveSql.T_LINES: + case HiveSql.T_LOCAL: + case HiveSql.T_LOCATION: + case HiveSql.T_LOCATOR: + case HiveSql.T_LOCATORS: + case HiveSql.T_LOCKS: + case HiveSql.T_LOG: + case HiveSql.T_LOGGED: + case HiveSql.T_LOGGING: + case HiveSql.T_LOOP: + case HiveSql.T_MAP: + case HiveSql.T_MATCHED: + case HiveSql.T_MAX: + case HiveSql.T_MAXTRANS: + case HiveSql.T_MERGE: + case HiveSql.T_MESSAGE_TEXT: + case HiveSql.T_MICROSECOND: + case HiveSql.T_MICROSECONDS: + case HiveSql.T_MIN: + case HiveSql.T_MULTISET: + case HiveSql.T_NCHAR: + case HiveSql.T_NEW: + case HiveSql.T_NVARCHAR: + case HiveSql.T_NO: + case HiveSql.T_NOCOUNT: + case HiveSql.T_NOCOMPRESS: + case HiveSql.T_NOLOGGING: + case HiveSql.T_NONE: + case HiveSql.T_NOT: + case HiveSql.T_NOTFOUND: + case HiveSql.T_NUMERIC: + case HiveSql.T_NUMBER: + case HiveSql.T_OBJECT: + case HiveSql.T_OFF: + case HiveSql.T_ON: + case HiveSql.T_ONLY: + case HiveSql.T_OPEN: + case HiveSql.T_OR: + case HiveSql.T_ORDER: + case HiveSql.T_OUT: + case HiveSql.T_OUTER: + case HiveSql.T_OVER: + case HiveSql.T_OVERWRITE: + case HiveSql.T_OWNER: + case HiveSql.T_PACKAGE: + case HiveSql.T_PARTITION: + case HiveSql.T_PCTFREE: + case HiveSql.T_PCTUSED: + case HiveSql.T_PRECISION: + case HiveSql.T_PRESERVE: + case HiveSql.T_PRIMARY: + case HiveSql.T_PRINT: + case HiveSql.T_PROC: + case HiveSql.T_PROCEDURE: + case HiveSql.T_QUALIFY: + case HiveSql.T_QUERY_BAND: + case HiveSql.T_QUIT: + case HiveSql.T_QUOTED_IDENTIFIER: + case HiveSql.T_RAISE: + case HiveSql.T_REAL: + case HiveSql.T_REFERENCES: + case HiveSql.T_REGEXP: + case HiveSql.T_REPLACE: + case HiveSql.T_RESIGNAL: + case HiveSql.T_RESTRICT: + case HiveSql.T_RESULT: + case HiveSql.T_RESULT_SET_LOCATOR: + case HiveSql.T_RETURN: + case HiveSql.T_RETURNS: + case HiveSql.T_REVERSE: + case HiveSql.T_RIGHT: + case HiveSql.T_RLIKE: + case HiveSql.T_ROLE: + case HiveSql.T_ROLLBACK: + case HiveSql.T_ROW: + case HiveSql.T_ROWS: + case HiveSql.T_ROW_COUNT: + case HiveSql.T_RR: + case HiveSql.T_RS: + case HiveSql.T_PWD: + case HiveSql.T_TRIM: + case HiveSql.T_SCHEMA: + case HiveSql.T_SECOND: + case HiveSql.T_SECONDS: + case HiveSql.T_SECURITY: + case HiveSql.T_SEGMENT: + case HiveSql.T_SEL: + case HiveSql.T_SELECT: + case HiveSql.T_SET: + case HiveSql.T_SESSION: + case HiveSql.T_SESSIONS: + case HiveSql.T_SETS: + case HiveSql.T_SHARE: + case HiveSql.T_SIGNAL: + case HiveSql.T_SIMPLE_DOUBLE: + case HiveSql.T_SIMPLE_FLOAT: + case HiveSql.T_SMALLDATETIME: + case HiveSql.T_SMALLINT: + case HiveSql.T_SQL: + case HiveSql.T_SQLEXCEPTION: + case HiveSql.T_SQLINSERT: + case HiveSql.T_SQLSTATE: + case HiveSql.T_SQLWARNING: + case HiveSql.T_STATS: + case HiveSql.T_STATISTICS: + case HiveSql.T_STEP: + case HiveSql.T_STORAGE: + case HiveSql.T_STORED: + case HiveSql.T_STRING: + case HiveSql.T_SUBDIR: + case HiveSql.T_SUBSTRING: + case HiveSql.T_SUM: + case HiveSql.T_SUMMARY: + case HiveSql.T_SYS_REFCURSOR: + case HiveSql.T_TABLE: + case HiveSql.T_TABLESPACE: + case HiveSql.T_TEMPORARY: + case HiveSql.T_TERMINATED: + case HiveSql.T_TEXTIMAGE_ON: + case HiveSql.T_THEN: + case HiveSql.T_TIMESTAMP: + case HiveSql.T_TITLE: + case HiveSql.T_TO: + case HiveSql.T_TOP: + case HiveSql.T_TRANSACTION: + case HiveSql.T_TRUE: + case HiveSql.T_TRUNCATE: + case HiveSql.T_UNIQUE: + case HiveSql.T_UPDATE: + case HiveSql.T_UR: + case HiveSql.T_USE: + case HiveSql.T_USING: + case HiveSql.T_VALUE: + case HiveSql.T_VALUES: + case HiveSql.T_VAR: + case HiveSql.T_VARCHAR: + case HiveSql.T_VARCHAR2: + case HiveSql.T_VARYING: + case HiveSql.T_VOLATILE: + case HiveSql.T_WHILE: + case HiveSql.T_WITH: + case HiveSql.T_WITHOUT: + case HiveSql.T_WORK: + case HiveSql.T_XACT_ABORT: + case HiveSql.T_XML: + case HiveSql.T_YES: + case HiveSql.T_ACTIVITY_COUNT: + case HiveSql.T_CUME_DIST: + case HiveSql.T_CURRENT_DATE: + case HiveSql.T_CURRENT_TIMESTAMP: + case HiveSql.T_CURRENT_USER: + case HiveSql.T_DENSE_RANK: + case HiveSql.T_FIRST_VALUE: + case HiveSql.T_LAG: + case HiveSql.T_LAST_VALUE: + case HiveSql.T_LEAD: + case HiveSql.T_PART_COUNT: + case HiveSql.T_PART_LOC: + case HiveSql.T_RANK: + case HiveSql.T_ROW_NUMBER: + case HiveSql.T_STDEV: + case HiveSql.T_SYSDATE: + case HiveSql.T_VARIANCE: + case HiveSql.T_USER: + case HiveSql.T_DIV: + case HiveSql.T_DOT: + case HiveSql.L_ID: this.enterOuterAlt(localctx, 2); - this.state = 3287; + this.state = 3284; this._errHandler.sync(this); switch (this._input.LA(1)) { - case HiveSqlParser.T__2: - this.state = 3284; - this.match(HiveSqlParser.T__2); + case HiveSql.T_DIV: + this.state = 3281; + this.match(HiveSql.T_DIV); break; - case HiveSqlParser.T__4: - this.state = 3285; - this.match(HiveSqlParser.T__4); - this.state = 3286; - this.match(HiveSqlParser.T__2); + case HiveSql.T_DOT: + this.state = 3282; + this.match(HiveSql.T_DOT); + this.state = 3283; + this.match(HiveSql.T_DIV); break; - case HiveSqlParser.T__8: - case HiveSqlParser.T_GO: - case HiveSqlParser.T_BEGIN: - case HiveSqlParser.T_EXCEPTION: - case HiveSqlParser.L_ID: - case HiveSqlParser.T_THEN: - case HiveSqlParser.T_SET: - case HiveSqlParser.T_ALLOCATE: - case HiveSqlParser.T_CURSOR: - case HiveSqlParser.T_FOR: - case HiveSqlParser.T_RESULT: - case HiveSqlParser.T_PROCEDURE: - case HiveSqlParser.T_ASSOCIATE: - case HiveSqlParser.T_LOCATOR: - case HiveSqlParser.T_LOCATORS: - case HiveSqlParser.T_WITH: - case HiveSqlParser.T_TRANSACTION: - case HiveSqlParser.T_BREAK: - case HiveSqlParser.T_CALL: - case HiveSqlParser.T_DECLARE: - case HiveSqlParser.T_AS: - case HiveSqlParser.T_CONSTANT: - case HiveSqlParser.T_CONDITION: - case HiveSqlParser.T_IS: - case HiveSqlParser.T_RETURN: - case HiveSqlParser.T_ONLY: - case HiveSqlParser.T_TO: - case HiveSqlParser.T_CALLER: - case HiveSqlParser.T_CLIENT: - case HiveSqlParser.T_WITHOUT: - case HiveSqlParser.T_CONTINUE: - case HiveSqlParser.T_EXIT: - case HiveSqlParser.T_HANDLER: - case HiveSqlParser.T_SQLEXCEPTION: - case HiveSqlParser.T_SQLWARNING: - case HiveSqlParser.T_NOT: - case HiveSqlParser.T_FOUND: - case HiveSqlParser.T_GLOBAL: - case HiveSqlParser.T_TEMPORARY: - case HiveSqlParser.T_TABLE: - case HiveSqlParser.T_CREATE: - case HiveSqlParser.T_IF: - case HiveSqlParser.T_EXISTS: - case HiveSqlParser.T_LOCAL: - case HiveSqlParser.T_MULTISET: - case HiveSqlParser.T_VOLATILE: - case HiveSqlParser.T_LIKE: - case HiveSqlParser.T_CONSTRAINT: - case HiveSqlParser.T_PRIMARY: - case HiveSqlParser.T_KEY: - case HiveSqlParser.T_UNIQUE: - case HiveSqlParser.T_REFERENCES: - case HiveSqlParser.T_IDENTITY: - case HiveSqlParser.T_AUTO_INCREMENT: - case HiveSqlParser.T_ENABLE: - case HiveSqlParser.T_CLUSTERED: - case HiveSqlParser.T_ASC: - case HiveSqlParser.T_DESC: - case HiveSqlParser.T_FOREIGN: - case HiveSqlParser.T_ON: - case HiveSqlParser.T_UPDATE: - case HiveSqlParser.T_DELETE: - case HiveSqlParser.T_NO: - case HiveSqlParser.T_ACTION: - case HiveSqlParser.T_RESTRICT: - case HiveSqlParser.T_DEFAULT: - case HiveSqlParser.T_CASCADE: - case HiveSqlParser.T_LOG: - case HiveSqlParser.T_FALLBACK: - case HiveSqlParser.T_COMMIT: - case HiveSqlParser.T_PRESERVE: - case HiveSqlParser.T_ROWS: - case HiveSqlParser.T_SEGMENT: - case HiveSqlParser.T_CREATION: - case HiveSqlParser.T_IMMEDIATE: - case HiveSqlParser.T_DEFERRED: - case HiveSqlParser.T_PCTFREE: - case HiveSqlParser.T_PCTUSED: - case HiveSqlParser.T_INITRANS: - case HiveSqlParser.T_MAXTRANS: - case HiveSqlParser.T_NOCOMPRESS: - case HiveSqlParser.T_LOGGING: - case HiveSqlParser.T_NOLOGGING: - case HiveSqlParser.T_STORAGE: - case HiveSqlParser.T_TABLESPACE: - case HiveSqlParser.T_INDEX: - case HiveSqlParser.T_IN: - case HiveSqlParser.T_REPLACE: - case HiveSqlParser.T_DISTRIBUTE: - case HiveSqlParser.T_BY: - case HiveSqlParser.T_HASH: - case HiveSqlParser.T_LOGGED: - case HiveSqlParser.T_COMPRESS: - case HiveSqlParser.T_YES: - case HiveSqlParser.T_DEFINITION: - case HiveSqlParser.T_DROP: - case HiveSqlParser.T_DATA: - case HiveSqlParser.T_STORED: - case HiveSqlParser.T_ROW: - case HiveSqlParser.T_FORMAT: - case HiveSqlParser.T_DELIMITED: - case HiveSqlParser.T_FIELDS: - case HiveSqlParser.T_TERMINATED: - case HiveSqlParser.T_ESCAPED: - case HiveSqlParser.T_COLLECTION: - case HiveSqlParser.T_ITEMS: - case HiveSqlParser.T_MAP: - case HiveSqlParser.T_KEYS: - case HiveSqlParser.T_LINES: - case HiveSqlParser.T_DEFINED: - case HiveSqlParser.T_TEXTIMAGE_ON: - case HiveSqlParser.T_COMMENT: - case HiveSqlParser.T_CHARACTER: - case HiveSqlParser.T_CHARSET: - case HiveSqlParser.T_ENGINE: - case HiveSqlParser.T_ALTER: - case HiveSqlParser.T_ADD2: - case HiveSqlParser.T_CHAR: - case HiveSqlParser.T_BIGINT: - case HiveSqlParser.T_BINARY_DOUBLE: - case HiveSqlParser.T_BINARY_FLOAT: - case HiveSqlParser.T_BIT: - case HiveSqlParser.T_DATE: - case HiveSqlParser.T_DATETIME: - case HiveSqlParser.T_DEC: - case HiveSqlParser.T_DECIMAL: - case HiveSqlParser.T_DOUBLE: - case HiveSqlParser.T_PRECISION: - case HiveSqlParser.T_FLOAT: - case HiveSqlParser.T_INT: - case HiveSqlParser.T_INT2: - case HiveSqlParser.T_INT4: - case HiveSqlParser.T_INT8: - case HiveSqlParser.T_INTEGER: - case HiveSqlParser.T_NCHAR: - case HiveSqlParser.T_NVARCHAR: - case HiveSqlParser.T_NUMBER: - case HiveSqlParser.T_NUMERIC: - case HiveSqlParser.T_REAL: - case HiveSqlParser.T_RESULT_SET_LOCATOR: - case HiveSqlParser.T_VARYING: - case HiveSqlParser.T_SIMPLE_FLOAT: - case HiveSqlParser.T_SIMPLE_DOUBLE: - case HiveSqlParser.T_SMALLINT: - case HiveSqlParser.T_SMALLDATETIME: - case HiveSqlParser.T_STRING: - case HiveSqlParser.T_SYS_REFCURSOR: - case HiveSqlParser.T_TIMESTAMP: - case HiveSqlParser.T_VARCHAR: - case HiveSqlParser.T_VARCHAR2: - case HiveSqlParser.T_XML: - case HiveSqlParser.T_MAX: - case HiveSqlParser.T_BYTE: - case HiveSqlParser.T_CASESPECIFIC: - case HiveSqlParser.T_CS: - case HiveSqlParser.T_DATABASE: - case HiveSqlParser.T_SCHEMA: - case HiveSqlParser.T_LOCATION: - case HiveSqlParser.T_OR: - case HiveSqlParser.T_FUNCTION: - case HiveSqlParser.T_RETURNS: - case HiveSqlParser.T_PACKAGE: - case HiveSqlParser.T_PROC: - case HiveSqlParser.T_BODY: - case HiveSqlParser.T_OUT: - case HiveSqlParser.T_INOUT: - case HiveSqlParser.T_LANGUAGE: - case HiveSqlParser.T_SQL: - case HiveSqlParser.T_SECURITY: - case HiveSqlParser.T_CREATOR: - case HiveSqlParser.T_DEFINER: - case HiveSqlParser.T_INVOKER: - case HiveSqlParser.T_OWNER: - case HiveSqlParser.T_DYNAMIC: - case HiveSqlParser.T_SETS: - case HiveSqlParser.T_EXEC: - case HiveSqlParser.T_EXECUTE: - case HiveSqlParser.T_INTO: - case HiveSqlParser.T_INCLUDE: - case HiveSqlParser.T_INSERT: - case HiveSqlParser.T_OVERWRITE: - case HiveSqlParser.T_VALUES: - case HiveSqlParser.T_DIRECTORY: - case HiveSqlParser.T_GET: - case HiveSqlParser.T_DIAGNOSTICS: - case HiveSqlParser.T_MESSAGE_TEXT: - case HiveSqlParser.T_ROW_COUNT: - case HiveSqlParser.T_GRANT: - case HiveSqlParser.T_ROLE: - case HiveSqlParser.T_LEAVE: - case HiveSqlParser.T_OBJECT: - case HiveSqlParser.T_AT: - case HiveSqlParser.T_OPEN: - case HiveSqlParser.T_FETCH: - case HiveSqlParser.T_FROM: - case HiveSqlParser.T_COLLECT: - case HiveSqlParser.T_STATISTICS: - case HiveSqlParser.T_STATS: - case HiveSqlParser.T_COLUMN: - case HiveSqlParser.T_CLOSE: - case HiveSqlParser.T_CMP: - case HiveSqlParser.T_SUM: - case HiveSqlParser.T_COPY: - case HiveSqlParser.T_HDFS: - case HiveSqlParser.T_BATCHSIZE: - case HiveSqlParser.T_DELIMITER: - case HiveSqlParser.T_SQLINSERT: - case HiveSqlParser.T_IGNORE: - case HiveSqlParser.T_WORK: - case HiveSqlParser.T_PRINT: - case HiveSqlParser.T_QUIT: - case HiveSqlParser.T_RAISE: - case HiveSqlParser.T_RESIGNAL: - case HiveSqlParser.T_SQLSTATE: - case HiveSqlParser.T_VALUE: - case HiveSqlParser.T_ROLLBACK: - case HiveSqlParser.T_CURRENT: - case HiveSqlParser.T_CURRENT_SCHEMA: - case HiveSqlParser.T_ANSI_NULLS: - case HiveSqlParser.T_ANSI_PADDING: - case HiveSqlParser.T_NOCOUNT: - case HiveSqlParser.T_QUOTED_IDENTIFIER: - case HiveSqlParser.T_XACT_ABORT: - case HiveSqlParser.T_OFF: - case HiveSqlParser.T_QUERY_BAND: - case HiveSqlParser.T_NONE: - case HiveSqlParser.T_SESSION: - case HiveSqlParser.T_SIGNAL: - case HiveSqlParser.T_SUMMARY: - case HiveSqlParser.T_TOP: - case HiveSqlParser.T_LIMIT: - case HiveSqlParser.T_TRUNCATE: - case HiveSqlParser.T_USE: - case HiveSqlParser.T_WHILE: - case HiveSqlParser.T_DO: - case HiveSqlParser.T_LOOP: - case HiveSqlParser.T_REVERSE: - case HiveSqlParser.T_STEP: - case HiveSqlParser.T_USING: - case HiveSqlParser.T_ALL: - case HiveSqlParser.T_EXCEPT: - case HiveSqlParser.T_INTERSECT: - case HiveSqlParser.T_SELECT: - case HiveSqlParser.T_SEL: - case HiveSqlParser.T_DISTINCT: - case HiveSqlParser.T_TITLE: - case HiveSqlParser.T_INNER: - case HiveSqlParser.T_JOIN: - case HiveSqlParser.T_LEFT: - case HiveSqlParser.T_RIGHT: - case HiveSqlParser.T_FULL: - case HiveSqlParser.T_OUTER: - case HiveSqlParser.T_GROUP: - case HiveSqlParser.T_HAVING: - case HiveSqlParser.T_QUALIFY: - case HiveSqlParser.T_ORDER: - case HiveSqlParser.T_RR: - case HiveSqlParser.T_RS: - case HiveSqlParser.T_UR: - case HiveSqlParser.T_AND: - case HiveSqlParser.T_KEEP: - case HiveSqlParser.T_EXCLUSIVE: - case HiveSqlParser.T_SHARE: - case HiveSqlParser.T_LOCKS: - case HiveSqlParser.T_MERGE: - case HiveSqlParser.T_MATCHED: - case HiveSqlParser.T_DESCRIBE: - case HiveSqlParser.T_BETWEEN: - case HiveSqlParser.T_RLIKE: - case HiveSqlParser.T_REGEXP: - case HiveSqlParser.T_INTERVAL: - case HiveSqlParser.T_DAY: - case HiveSqlParser.T_DAYS: - case HiveSqlParser.T_MICROSECOND: - case HiveSqlParser.T_MICROSECONDS: - case HiveSqlParser.T_SECOND: - case HiveSqlParser.T_SECONDS: - case HiveSqlParser.T_CONCAT: - case HiveSqlParser.T_CASE: - case HiveSqlParser.T_ISOPEN: - case HiveSqlParser.T_NOTFOUND: - case HiveSqlParser.T_AVG: - case HiveSqlParser.T_COUNT: - case HiveSqlParser.T_COUNT_BIG: - case HiveSqlParser.T_CUME_DIST: - case HiveSqlParser.T_DENSE_RANK: - case HiveSqlParser.T_FIRST_VALUE: - case HiveSqlParser.T_LAG: - case HiveSqlParser.T_LAST_VALUE: - case HiveSqlParser.T_LEAD: - case HiveSqlParser.T_MIN: - case HiveSqlParser.T_RANK: - case HiveSqlParser.T_ROW_NUMBER: - case HiveSqlParser.T_STDEV: - case HiveSqlParser.T_VAR: - case HiveSqlParser.T_VARIANCE: - case HiveSqlParser.T_OVER: - case HiveSqlParser.T_PARTITION: - case HiveSqlParser.T_ACTIVITY_COUNT: - case HiveSqlParser.T_CAST: - case HiveSqlParser.T_CURRENT_DATE: - case HiveSqlParser.T_CURRENT_TIMESTAMP: - case HiveSqlParser.T_CURRENT_USER: - case HiveSqlParser.T_USER: - case HiveSqlParser.T_PART_COUNT: - case HiveSqlParser.T_PART_LOC: - case HiveSqlParser.T_TRIM: - case HiveSqlParser.T_SUBSTRING: - case HiveSqlParser.T_SYSDATE: - case HiveSqlParser.T_HIVE: - case HiveSqlParser.T_HOST: - case HiveSqlParser.T_TRUE: - case HiveSqlParser.T_FALSE: - case HiveSqlParser.T_DIR: - case HiveSqlParser.T_FILE: - case HiveSqlParser.T_FILES: - case HiveSqlParser.T_NEW: - case HiveSqlParser.T_PWD: - case HiveSqlParser.T_SESSIONS: - case HiveSqlParser.T_SUBDIR: + case HiveSql.T_ACTION: + case HiveSql.T_ADD2: + case HiveSql.T_ALL: + case HiveSql.T_ALLOCATE: + case HiveSql.T_ALTER: + case HiveSql.T_AND: + case HiveSql.T_ANSI_NULLS: + case HiveSql.T_ANSI_PADDING: + case HiveSql.T_AS: + case HiveSql.T_ASC: + case HiveSql.T_ASSOCIATE: + case HiveSql.T_AT: + case HiveSql.T_AUTO_INCREMENT: + case HiveSql.T_AVG: + case HiveSql.T_BATCHSIZE: + case HiveSql.T_BEGIN: + case HiveSql.T_BETWEEN: + case HiveSql.T_BIGINT: + case HiveSql.T_BINARY_DOUBLE: + case HiveSql.T_BINARY_FLOAT: + case HiveSql.T_BIT: + case HiveSql.T_BODY: + case HiveSql.T_BREAK: + case HiveSql.T_BY: + case HiveSql.T_BYTE: + case HiveSql.T_CALL: + case HiveSql.T_CALLER: + case HiveSql.T_CASCADE: + case HiveSql.T_CASE: + case HiveSql.T_CASESPECIFIC: + case HiveSql.T_CAST: + case HiveSql.T_CHAR: + case HiveSql.T_CHARACTER: + case HiveSql.T_CHARSET: + case HiveSql.T_CLIENT: + case HiveSql.T_CLOSE: + case HiveSql.T_CLUSTERED: + case HiveSql.T_CMP: + case HiveSql.T_COLLECT: + case HiveSql.T_COLLECTION: + case HiveSql.T_COLUMN: + case HiveSql.T_COMMENT: + case HiveSql.T_CONSTANT: + case HiveSql.T_COMMIT: + case HiveSql.T_COMPRESS: + case HiveSql.T_CONCAT: + case HiveSql.T_CONDITION: + case HiveSql.T_CONSTRAINT: + case HiveSql.T_CONTINUE: + case HiveSql.T_COPY: + case HiveSql.T_COUNT: + case HiveSql.T_COUNT_BIG: + case HiveSql.T_CREATE: + case HiveSql.T_CREATION: + case HiveSql.T_CREATOR: + case HiveSql.T_CS: + case HiveSql.T_CURRENT: + case HiveSql.T_CURRENT_SCHEMA: + case HiveSql.T_CURSOR: + case HiveSql.T_DATABASE: + case HiveSql.T_DATA: + case HiveSql.T_DATE: + case HiveSql.T_DATETIME: + case HiveSql.T_DAY: + case HiveSql.T_DAYS: + case HiveSql.T_DEC: + case HiveSql.T_DECIMAL: + case HiveSql.T_DECLARE: + case HiveSql.T_DEFAULT: + case HiveSql.T_DEFERRED: + case HiveSql.T_DEFINED: + case HiveSql.T_DEFINER: + case HiveSql.T_DEFINITION: + case HiveSql.T_DELETE: + case HiveSql.T_DELIMITED: + case HiveSql.T_DELIMITER: + case HiveSql.T_DESC: + case HiveSql.T_DESCRIBE: + case HiveSql.T_DIAGNOSTICS: + case HiveSql.T_DIR: + case HiveSql.T_DIRECTORY: + case HiveSql.T_DISTINCT: + case HiveSql.T_DISTRIBUTE: + case HiveSql.T_DO: + case HiveSql.T_DOUBLE: + case HiveSql.T_DROP: + case HiveSql.T_DYNAMIC: + case HiveSql.T_ENABLE: + case HiveSql.T_ENGINE: + case HiveSql.T_ESCAPED: + case HiveSql.T_EXCEPT: + case HiveSql.T_EXEC: + case HiveSql.T_EXECUTE: + case HiveSql.T_EXCEPTION: + case HiveSql.T_EXCLUSIVE: + case HiveSql.T_EXISTS: + case HiveSql.T_EXIT: + case HiveSql.T_FALLBACK: + case HiveSql.T_FALSE: + case HiveSql.T_FETCH: + case HiveSql.T_FIELDS: + case HiveSql.T_FILE: + case HiveSql.T_FILES: + case HiveSql.T_FLOAT: + case HiveSql.T_FOR: + case HiveSql.T_FOREIGN: + case HiveSql.T_FORMAT: + case HiveSql.T_FOUND: + case HiveSql.T_FROM: + case HiveSql.T_FULL: + case HiveSql.T_FUNCTION: + case HiveSql.T_GET: + case HiveSql.T_GLOBAL: + case HiveSql.T_GO: + case HiveSql.T_GRANT: + case HiveSql.T_GROUP: + case HiveSql.T_HANDLER: + case HiveSql.T_HASH: + case HiveSql.T_HAVING: + case HiveSql.T_HDFS: + case HiveSql.T_HIVE: + case HiveSql.T_HOST: + case HiveSql.T_IDENTITY: + case HiveSql.T_IF: + case HiveSql.T_IGNORE: + case HiveSql.T_IMMEDIATE: + case HiveSql.T_IN: + case HiveSql.T_INCLUDE: + case HiveSql.T_INDEX: + case HiveSql.T_INITRANS: + case HiveSql.T_INNER: + case HiveSql.T_INOUT: + case HiveSql.T_INSERT: + case HiveSql.T_INT: + case HiveSql.T_INT2: + case HiveSql.T_INT4: + case HiveSql.T_INT8: + case HiveSql.T_INTEGER: + case HiveSql.T_INTERSECT: + case HiveSql.T_INTERVAL: + case HiveSql.T_INTO: + case HiveSql.T_INVOKER: + case HiveSql.T_IS: + case HiveSql.T_ISOPEN: + case HiveSql.T_ITEMS: + case HiveSql.T_JOIN: + case HiveSql.T_KEEP: + case HiveSql.T_KEY: + case HiveSql.T_KEYS: + case HiveSql.T_LANGUAGE: + case HiveSql.T_LEAVE: + case HiveSql.T_LEFT: + case HiveSql.T_LIKE: + case HiveSql.T_LIMIT: + case HiveSql.T_LINES: + case HiveSql.T_LOCAL: + case HiveSql.T_LOCATION: + case HiveSql.T_LOCATOR: + case HiveSql.T_LOCATORS: + case HiveSql.T_LOCKS: + case HiveSql.T_LOG: + case HiveSql.T_LOGGED: + case HiveSql.T_LOGGING: + case HiveSql.T_LOOP: + case HiveSql.T_MAP: + case HiveSql.T_MATCHED: + case HiveSql.T_MAX: + case HiveSql.T_MAXTRANS: + case HiveSql.T_MERGE: + case HiveSql.T_MESSAGE_TEXT: + case HiveSql.T_MICROSECOND: + case HiveSql.T_MICROSECONDS: + case HiveSql.T_MIN: + case HiveSql.T_MULTISET: + case HiveSql.T_NCHAR: + case HiveSql.T_NEW: + case HiveSql.T_NVARCHAR: + case HiveSql.T_NO: + case HiveSql.T_NOCOUNT: + case HiveSql.T_NOCOMPRESS: + case HiveSql.T_NOLOGGING: + case HiveSql.T_NONE: + case HiveSql.T_NOT: + case HiveSql.T_NOTFOUND: + case HiveSql.T_NUMERIC: + case HiveSql.T_NUMBER: + case HiveSql.T_OBJECT: + case HiveSql.T_OFF: + case HiveSql.T_ON: + case HiveSql.T_ONLY: + case HiveSql.T_OPEN: + case HiveSql.T_OR: + case HiveSql.T_ORDER: + case HiveSql.T_OUT: + case HiveSql.T_OUTER: + case HiveSql.T_OVER: + case HiveSql.T_OVERWRITE: + case HiveSql.T_OWNER: + case HiveSql.T_PACKAGE: + case HiveSql.T_PARTITION: + case HiveSql.T_PCTFREE: + case HiveSql.T_PCTUSED: + case HiveSql.T_PRECISION: + case HiveSql.T_PRESERVE: + case HiveSql.T_PRIMARY: + case HiveSql.T_PRINT: + case HiveSql.T_PROC: + case HiveSql.T_PROCEDURE: + case HiveSql.T_QUALIFY: + case HiveSql.T_QUERY_BAND: + case HiveSql.T_QUIT: + case HiveSql.T_QUOTED_IDENTIFIER: + case HiveSql.T_RAISE: + case HiveSql.T_REAL: + case HiveSql.T_REFERENCES: + case HiveSql.T_REGEXP: + case HiveSql.T_REPLACE: + case HiveSql.T_RESIGNAL: + case HiveSql.T_RESTRICT: + case HiveSql.T_RESULT: + case HiveSql.T_RESULT_SET_LOCATOR: + case HiveSql.T_RETURN: + case HiveSql.T_RETURNS: + case HiveSql.T_REVERSE: + case HiveSql.T_RIGHT: + case HiveSql.T_RLIKE: + case HiveSql.T_ROLE: + case HiveSql.T_ROLLBACK: + case HiveSql.T_ROW: + case HiveSql.T_ROWS: + case HiveSql.T_ROW_COUNT: + case HiveSql.T_RR: + case HiveSql.T_RS: + case HiveSql.T_PWD: + case HiveSql.T_TRIM: + case HiveSql.T_SCHEMA: + case HiveSql.T_SECOND: + case HiveSql.T_SECONDS: + case HiveSql.T_SECURITY: + case HiveSql.T_SEGMENT: + case HiveSql.T_SEL: + case HiveSql.T_SELECT: + case HiveSql.T_SET: + case HiveSql.T_SESSION: + case HiveSql.T_SESSIONS: + case HiveSql.T_SETS: + case HiveSql.T_SHARE: + case HiveSql.T_SIGNAL: + case HiveSql.T_SIMPLE_DOUBLE: + case HiveSql.T_SIMPLE_FLOAT: + case HiveSql.T_SMALLDATETIME: + case HiveSql.T_SMALLINT: + case HiveSql.T_SQL: + case HiveSql.T_SQLEXCEPTION: + case HiveSql.T_SQLINSERT: + case HiveSql.T_SQLSTATE: + case HiveSql.T_SQLWARNING: + case HiveSql.T_STATS: + case HiveSql.T_STATISTICS: + case HiveSql.T_STEP: + case HiveSql.T_STORAGE: + case HiveSql.T_STORED: + case HiveSql.T_STRING: + case HiveSql.T_SUBDIR: + case HiveSql.T_SUBSTRING: + case HiveSql.T_SUM: + case HiveSql.T_SUMMARY: + case HiveSql.T_SYS_REFCURSOR: + case HiveSql.T_TABLE: + case HiveSql.T_TABLESPACE: + case HiveSql.T_TEMPORARY: + case HiveSql.T_TERMINATED: + case HiveSql.T_TEXTIMAGE_ON: + case HiveSql.T_THEN: + case HiveSql.T_TIMESTAMP: + case HiveSql.T_TITLE: + case HiveSql.T_TO: + case HiveSql.T_TOP: + case HiveSql.T_TRANSACTION: + case HiveSql.T_TRUE: + case HiveSql.T_TRUNCATE: + case HiveSql.T_UNIQUE: + case HiveSql.T_UPDATE: + case HiveSql.T_UR: + case HiveSql.T_USE: + case HiveSql.T_USING: + case HiveSql.T_VALUE: + case HiveSql.T_VALUES: + case HiveSql.T_VAR: + case HiveSql.T_VARCHAR: + case HiveSql.T_VARCHAR2: + case HiveSql.T_VARYING: + case HiveSql.T_VOLATILE: + case HiveSql.T_WHILE: + case HiveSql.T_WITH: + case HiveSql.T_WITHOUT: + case HiveSql.T_WORK: + case HiveSql.T_XACT_ABORT: + case HiveSql.T_XML: + case HiveSql.T_YES: + case HiveSql.T_ACTIVITY_COUNT: + case HiveSql.T_CUME_DIST: + case HiveSql.T_CURRENT_DATE: + case HiveSql.T_CURRENT_TIMESTAMP: + case HiveSql.T_CURRENT_USER: + case HiveSql.T_DENSE_RANK: + case HiveSql.T_FIRST_VALUE: + case HiveSql.T_LAG: + case HiveSql.T_LAST_VALUE: + case HiveSql.T_LEAD: + case HiveSql.T_PART_COUNT: + case HiveSql.T_PART_LOC: + case HiveSql.T_RANK: + case HiveSql.T_ROW_NUMBER: + case HiveSql.T_STDEV: + case HiveSql.T_SYSDATE: + case HiveSql.T_VARIANCE: + case HiveSql.T_USER: + case HiveSql.L_ID: break; default: break; } - this.state = 3289; + this.state = 3286; this.ident(); - this.state = 3294; + this.state = 3291; this._errHandler.sync(this); var _alt = this._interp.adaptivePredict(this._input,415,this._ctx) while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { if(_alt===1) { - this.state = 3290; - this.match(HiveSqlParser.T__2); - this.state = 3291; + this.state = 3287; + this.match(HiveSql.T_DIV); + this.state = 3288; this.ident(); } - this.state = 3296; + this.state = 3293; this._errHandler.sync(this); _alt = this._interp.adaptivePredict(this._input,415,this._ctx); } @@ -34926,7 +35007,7 @@ function Date_literalContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_date_literal; + this.ruleIndex = HiveSql.RULE_date_literal; return this; } @@ -34934,7 +35015,7 @@ Date_literalContext.prototype = Object.create(antlr4.ParserRuleContext.prototype Date_literalContext.prototype.constructor = Date_literalContext; Date_literalContext.prototype.T_DATE = function() { - return this.getToken(HiveSqlParser.T_DATE, 0); + return this.getToken(HiveSql.T_DATE, 0); }; Date_literalContext.prototype.string = function() { @@ -34964,17 +35045,17 @@ Date_literalContext.prototype.accept = function(visitor) { -HiveSqlParser.Date_literalContext = Date_literalContext; +HiveSql.Date_literalContext = Date_literalContext; -HiveSqlParser.prototype.date_literal = function() { +HiveSql.prototype.date_literal = function() { var localctx = new Date_literalContext(this, this._ctx, this.state); - this.enterRule(localctx, 434, HiveSqlParser.RULE_date_literal); + this.enterRule(localctx, 434, HiveSql.RULE_date_literal); try { this.enterOuterAlt(localctx, 1); - this.state = 3299; - this.match(HiveSqlParser.T_DATE); - this.state = 3300; + this.state = 3296; + this.match(HiveSql.T_DATE); + this.state = 3297; this.string(); } catch (re) { if(re instanceof antlr4.error.RecognitionException) { @@ -35000,7 +35081,7 @@ function Timestamp_literalContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_timestamp_literal; + this.ruleIndex = HiveSql.RULE_timestamp_literal; return this; } @@ -35008,7 +35089,7 @@ Timestamp_literalContext.prototype = Object.create(antlr4.ParserRuleContext.prot Timestamp_literalContext.prototype.constructor = Timestamp_literalContext; Timestamp_literalContext.prototype.T_TIMESTAMP = function() { - return this.getToken(HiveSqlParser.T_TIMESTAMP, 0); + return this.getToken(HiveSql.T_TIMESTAMP, 0); }; Timestamp_literalContext.prototype.string = function() { @@ -35038,17 +35119,17 @@ Timestamp_literalContext.prototype.accept = function(visitor) { -HiveSqlParser.Timestamp_literalContext = Timestamp_literalContext; +HiveSql.Timestamp_literalContext = Timestamp_literalContext; -HiveSqlParser.prototype.timestamp_literal = function() { +HiveSql.prototype.timestamp_literal = function() { var localctx = new Timestamp_literalContext(this, this._ctx, this.state); - this.enterRule(localctx, 436, HiveSqlParser.RULE_timestamp_literal); + this.enterRule(localctx, 436, HiveSql.RULE_timestamp_literal); try { this.enterOuterAlt(localctx, 1); - this.state = 3302; - this.match(HiveSqlParser.T_TIMESTAMP); - this.state = 3303; + this.state = 3299; + this.match(HiveSql.T_TIMESTAMP); + this.state = 3300; this.string(); } catch (re) { if(re instanceof antlr4.error.RecognitionException) { @@ -35074,7 +35155,7 @@ function IdentContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_ident; + this.ruleIndex = HiveSql.RULE_ident; return this; } @@ -35086,9 +35167,9 @@ IdentContext.prototype.L_ID = function(i) { i = null; } if(i===null) { - return this.getTokens(HiveSqlParser.L_ID); + return this.getTokens(HiveSql.L_ID); } else { - return this.getToken(HiveSqlParser.L_ID, i); + return this.getToken(HiveSql.L_ID, i); } }; @@ -35104,6 +35185,18 @@ IdentContext.prototype.non_reserved_words = function(i) { } }; +IdentContext.prototype.T_DOT = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(HiveSql.T_DOT); + } else { + return this.getToken(HiveSql.T_DOT, i); + } +}; + + IdentContext.prototype.enterRule = function(listener) { if(listener instanceof HiveSqlListener ) { listener.enterIdent(this); @@ -35127,696 +35220,687 @@ IdentContext.prototype.accept = function(visitor) { -HiveSqlParser.IdentContext = IdentContext; +HiveSql.IdentContext = IdentContext; -HiveSqlParser.prototype.ident = function() { +HiveSql.prototype.ident = function() { var localctx = new IdentContext(this, this._ctx, this.state); - this.enterRule(localctx, 438, HiveSqlParser.RULE_ident); - var _la = 0; // Token type + this.enterRule(localctx, 438, HiveSql.RULE_ident); try { this.enterOuterAlt(localctx, 1); - this.state = 3306; - this._errHandler.sync(this); - _la = this._input.LA(1); - if(_la===HiveSqlParser.T__8) { - this.state = 3305; - this.match(HiveSqlParser.T__8); - } - - this.state = 3310; + this.state = 3304; this._errHandler.sync(this); switch(this._input.LA(1)) { - case HiveSqlParser.L_ID: - this.state = 3308; - this.match(HiveSqlParser.L_ID); + case HiveSql.L_ID: + this.state = 3302; + this.match(HiveSql.L_ID); break; - case HiveSqlParser.T_GO: - case HiveSqlParser.T_BEGIN: - case HiveSqlParser.T_EXCEPTION: - case HiveSqlParser.T_THEN: - case HiveSqlParser.T_SET: - case HiveSqlParser.T_ALLOCATE: - case HiveSqlParser.T_CURSOR: - case HiveSqlParser.T_FOR: - case HiveSqlParser.T_RESULT: - case HiveSqlParser.T_PROCEDURE: - case HiveSqlParser.T_ASSOCIATE: - case HiveSqlParser.T_LOCATOR: - case HiveSqlParser.T_LOCATORS: - case HiveSqlParser.T_WITH: - case HiveSqlParser.T_TRANSACTION: - case HiveSqlParser.T_BREAK: - case HiveSqlParser.T_CALL: - case HiveSqlParser.T_DECLARE: - case HiveSqlParser.T_AS: - case HiveSqlParser.T_CONSTANT: - case HiveSqlParser.T_CONDITION: - case HiveSqlParser.T_IS: - case HiveSqlParser.T_RETURN: - case HiveSqlParser.T_ONLY: - case HiveSqlParser.T_TO: - case HiveSqlParser.T_CALLER: - case HiveSqlParser.T_CLIENT: - case HiveSqlParser.T_WITHOUT: - case HiveSqlParser.T_CONTINUE: - case HiveSqlParser.T_EXIT: - case HiveSqlParser.T_HANDLER: - case HiveSqlParser.T_SQLEXCEPTION: - case HiveSqlParser.T_SQLWARNING: - case HiveSqlParser.T_NOT: - case HiveSqlParser.T_FOUND: - case HiveSqlParser.T_GLOBAL: - case HiveSqlParser.T_TEMPORARY: - case HiveSqlParser.T_TABLE: - case HiveSqlParser.T_CREATE: - case HiveSqlParser.T_IF: - case HiveSqlParser.T_EXISTS: - case HiveSqlParser.T_LOCAL: - case HiveSqlParser.T_MULTISET: - case HiveSqlParser.T_VOLATILE: - case HiveSqlParser.T_LIKE: - case HiveSqlParser.T_CONSTRAINT: - case HiveSqlParser.T_PRIMARY: - case HiveSqlParser.T_KEY: - case HiveSqlParser.T_UNIQUE: - case HiveSqlParser.T_REFERENCES: - case HiveSqlParser.T_IDENTITY: - case HiveSqlParser.T_AUTO_INCREMENT: - case HiveSqlParser.T_ENABLE: - case HiveSqlParser.T_CLUSTERED: - case HiveSqlParser.T_ASC: - case HiveSqlParser.T_DESC: - case HiveSqlParser.T_FOREIGN: - case HiveSqlParser.T_ON: - case HiveSqlParser.T_UPDATE: - case HiveSqlParser.T_DELETE: - case HiveSqlParser.T_NO: - case HiveSqlParser.T_ACTION: - case HiveSqlParser.T_RESTRICT: - case HiveSqlParser.T_DEFAULT: - case HiveSqlParser.T_CASCADE: - case HiveSqlParser.T_LOG: - case HiveSqlParser.T_FALLBACK: - case HiveSqlParser.T_COMMIT: - case HiveSqlParser.T_PRESERVE: - case HiveSqlParser.T_ROWS: - case HiveSqlParser.T_SEGMENT: - case HiveSqlParser.T_CREATION: - case HiveSqlParser.T_IMMEDIATE: - case HiveSqlParser.T_DEFERRED: - case HiveSqlParser.T_PCTFREE: - case HiveSqlParser.T_PCTUSED: - case HiveSqlParser.T_INITRANS: - case HiveSqlParser.T_MAXTRANS: - case HiveSqlParser.T_NOCOMPRESS: - case HiveSqlParser.T_LOGGING: - case HiveSqlParser.T_NOLOGGING: - case HiveSqlParser.T_STORAGE: - case HiveSqlParser.T_TABLESPACE: - case HiveSqlParser.T_INDEX: - case HiveSqlParser.T_IN: - case HiveSqlParser.T_REPLACE: - case HiveSqlParser.T_DISTRIBUTE: - case HiveSqlParser.T_BY: - case HiveSqlParser.T_HASH: - case HiveSqlParser.T_LOGGED: - case HiveSqlParser.T_COMPRESS: - case HiveSqlParser.T_YES: - case HiveSqlParser.T_DEFINITION: - case HiveSqlParser.T_DROP: - case HiveSqlParser.T_DATA: - case HiveSqlParser.T_STORED: - case HiveSqlParser.T_ROW: - case HiveSqlParser.T_FORMAT: - case HiveSqlParser.T_DELIMITED: - case HiveSqlParser.T_FIELDS: - case HiveSqlParser.T_TERMINATED: - case HiveSqlParser.T_ESCAPED: - case HiveSqlParser.T_COLLECTION: - case HiveSqlParser.T_ITEMS: - case HiveSqlParser.T_MAP: - case HiveSqlParser.T_KEYS: - case HiveSqlParser.T_LINES: - case HiveSqlParser.T_DEFINED: - case HiveSqlParser.T_TEXTIMAGE_ON: - case HiveSqlParser.T_COMMENT: - case HiveSqlParser.T_CHARACTER: - case HiveSqlParser.T_CHARSET: - case HiveSqlParser.T_ENGINE: - case HiveSqlParser.T_ALTER: - case HiveSqlParser.T_ADD2: - case HiveSqlParser.T_CHAR: - case HiveSqlParser.T_BIGINT: - case HiveSqlParser.T_BINARY_DOUBLE: - case HiveSqlParser.T_BINARY_FLOAT: - case HiveSqlParser.T_BIT: - case HiveSqlParser.T_DATE: - case HiveSqlParser.T_DATETIME: - case HiveSqlParser.T_DEC: - case HiveSqlParser.T_DECIMAL: - case HiveSqlParser.T_DOUBLE: - case HiveSqlParser.T_PRECISION: - case HiveSqlParser.T_FLOAT: - case HiveSqlParser.T_INT: - case HiveSqlParser.T_INT2: - case HiveSqlParser.T_INT4: - case HiveSqlParser.T_INT8: - case HiveSqlParser.T_INTEGER: - case HiveSqlParser.T_NCHAR: - case HiveSqlParser.T_NVARCHAR: - case HiveSqlParser.T_NUMBER: - case HiveSqlParser.T_NUMERIC: - case HiveSqlParser.T_REAL: - case HiveSqlParser.T_RESULT_SET_LOCATOR: - case HiveSqlParser.T_VARYING: - case HiveSqlParser.T_SIMPLE_FLOAT: - case HiveSqlParser.T_SIMPLE_DOUBLE: - case HiveSqlParser.T_SMALLINT: - case HiveSqlParser.T_SMALLDATETIME: - case HiveSqlParser.T_STRING: - case HiveSqlParser.T_SYS_REFCURSOR: - case HiveSqlParser.T_TIMESTAMP: - case HiveSqlParser.T_VARCHAR: - case HiveSqlParser.T_VARCHAR2: - case HiveSqlParser.T_XML: - case HiveSqlParser.T_MAX: - case HiveSqlParser.T_BYTE: - case HiveSqlParser.T_CASESPECIFIC: - case HiveSqlParser.T_CS: - case HiveSqlParser.T_DATABASE: - case HiveSqlParser.T_SCHEMA: - case HiveSqlParser.T_LOCATION: - case HiveSqlParser.T_OR: - case HiveSqlParser.T_FUNCTION: - case HiveSqlParser.T_RETURNS: - case HiveSqlParser.T_PACKAGE: - case HiveSqlParser.T_PROC: - case HiveSqlParser.T_BODY: - case HiveSqlParser.T_OUT: - case HiveSqlParser.T_INOUT: - case HiveSqlParser.T_LANGUAGE: - case HiveSqlParser.T_SQL: - case HiveSqlParser.T_SECURITY: - case HiveSqlParser.T_CREATOR: - case HiveSqlParser.T_DEFINER: - case HiveSqlParser.T_INVOKER: - case HiveSqlParser.T_OWNER: - case HiveSqlParser.T_DYNAMIC: - case HiveSqlParser.T_SETS: - case HiveSqlParser.T_EXEC: - case HiveSqlParser.T_EXECUTE: - case HiveSqlParser.T_INTO: - case HiveSqlParser.T_INCLUDE: - case HiveSqlParser.T_INSERT: - case HiveSqlParser.T_OVERWRITE: - case HiveSqlParser.T_VALUES: - case HiveSqlParser.T_DIRECTORY: - case HiveSqlParser.T_GET: - case HiveSqlParser.T_DIAGNOSTICS: - case HiveSqlParser.T_MESSAGE_TEXT: - case HiveSqlParser.T_ROW_COUNT: - case HiveSqlParser.T_GRANT: - case HiveSqlParser.T_ROLE: - case HiveSqlParser.T_LEAVE: - case HiveSqlParser.T_OBJECT: - case HiveSqlParser.T_AT: - case HiveSqlParser.T_OPEN: - case HiveSqlParser.T_FETCH: - case HiveSqlParser.T_FROM: - case HiveSqlParser.T_COLLECT: - case HiveSqlParser.T_STATISTICS: - case HiveSqlParser.T_STATS: - case HiveSqlParser.T_COLUMN: - case HiveSqlParser.T_CLOSE: - case HiveSqlParser.T_CMP: - case HiveSqlParser.T_SUM: - case HiveSqlParser.T_COPY: - case HiveSqlParser.T_HDFS: - case HiveSqlParser.T_BATCHSIZE: - case HiveSqlParser.T_DELIMITER: - case HiveSqlParser.T_SQLINSERT: - case HiveSqlParser.T_IGNORE: - case HiveSqlParser.T_WORK: - case HiveSqlParser.T_PRINT: - case HiveSqlParser.T_QUIT: - case HiveSqlParser.T_RAISE: - case HiveSqlParser.T_RESIGNAL: - case HiveSqlParser.T_SQLSTATE: - case HiveSqlParser.T_VALUE: - case HiveSqlParser.T_ROLLBACK: - case HiveSqlParser.T_CURRENT: - case HiveSqlParser.T_CURRENT_SCHEMA: - case HiveSqlParser.T_ANSI_NULLS: - case HiveSqlParser.T_ANSI_PADDING: - case HiveSqlParser.T_NOCOUNT: - case HiveSqlParser.T_QUOTED_IDENTIFIER: - case HiveSqlParser.T_XACT_ABORT: - case HiveSqlParser.T_OFF: - case HiveSqlParser.T_QUERY_BAND: - case HiveSqlParser.T_NONE: - case HiveSqlParser.T_SESSION: - case HiveSqlParser.T_SIGNAL: - case HiveSqlParser.T_SUMMARY: - case HiveSqlParser.T_TOP: - case HiveSqlParser.T_LIMIT: - case HiveSqlParser.T_TRUNCATE: - case HiveSqlParser.T_USE: - case HiveSqlParser.T_WHILE: - case HiveSqlParser.T_DO: - case HiveSqlParser.T_LOOP: - case HiveSqlParser.T_REVERSE: - case HiveSqlParser.T_STEP: - case HiveSqlParser.T_USING: - case HiveSqlParser.T_ALL: - case HiveSqlParser.T_EXCEPT: - case HiveSqlParser.T_INTERSECT: - case HiveSqlParser.T_SELECT: - case HiveSqlParser.T_SEL: - case HiveSqlParser.T_DISTINCT: - case HiveSqlParser.T_TITLE: - case HiveSqlParser.T_INNER: - case HiveSqlParser.T_JOIN: - case HiveSqlParser.T_LEFT: - case HiveSqlParser.T_RIGHT: - case HiveSqlParser.T_FULL: - case HiveSqlParser.T_OUTER: - case HiveSqlParser.T_GROUP: - case HiveSqlParser.T_HAVING: - case HiveSqlParser.T_QUALIFY: - case HiveSqlParser.T_ORDER: - case HiveSqlParser.T_RR: - case HiveSqlParser.T_RS: - case HiveSqlParser.T_UR: - case HiveSqlParser.T_AND: - case HiveSqlParser.T_KEEP: - case HiveSqlParser.T_EXCLUSIVE: - case HiveSqlParser.T_SHARE: - case HiveSqlParser.T_LOCKS: - case HiveSqlParser.T_MERGE: - case HiveSqlParser.T_MATCHED: - case HiveSqlParser.T_DESCRIBE: - case HiveSqlParser.T_BETWEEN: - case HiveSqlParser.T_RLIKE: - case HiveSqlParser.T_REGEXP: - case HiveSqlParser.T_INTERVAL: - case HiveSqlParser.T_DAY: - case HiveSqlParser.T_DAYS: - case HiveSqlParser.T_MICROSECOND: - case HiveSqlParser.T_MICROSECONDS: - case HiveSqlParser.T_SECOND: - case HiveSqlParser.T_SECONDS: - case HiveSqlParser.T_CONCAT: - case HiveSqlParser.T_CASE: - case HiveSqlParser.T_ISOPEN: - case HiveSqlParser.T_NOTFOUND: - case HiveSqlParser.T_AVG: - case HiveSqlParser.T_COUNT: - case HiveSqlParser.T_COUNT_BIG: - case HiveSqlParser.T_CUME_DIST: - case HiveSqlParser.T_DENSE_RANK: - case HiveSqlParser.T_FIRST_VALUE: - case HiveSqlParser.T_LAG: - case HiveSqlParser.T_LAST_VALUE: - case HiveSqlParser.T_LEAD: - case HiveSqlParser.T_MIN: - case HiveSqlParser.T_RANK: - case HiveSqlParser.T_ROW_NUMBER: - case HiveSqlParser.T_STDEV: - case HiveSqlParser.T_VAR: - case HiveSqlParser.T_VARIANCE: - case HiveSqlParser.T_OVER: - case HiveSqlParser.T_PARTITION: - case HiveSqlParser.T_ACTIVITY_COUNT: - case HiveSqlParser.T_CAST: - case HiveSqlParser.T_CURRENT_DATE: - case HiveSqlParser.T_CURRENT_TIMESTAMP: - case HiveSqlParser.T_CURRENT_USER: - case HiveSqlParser.T_USER: - case HiveSqlParser.T_PART_COUNT: - case HiveSqlParser.T_PART_LOC: - case HiveSqlParser.T_TRIM: - case HiveSqlParser.T_SUBSTRING: - case HiveSqlParser.T_SYSDATE: - case HiveSqlParser.T_HIVE: - case HiveSqlParser.T_HOST: - case HiveSqlParser.T_TRUE: - case HiveSqlParser.T_FALSE: - case HiveSqlParser.T_DIR: - case HiveSqlParser.T_FILE: - case HiveSqlParser.T_FILES: - case HiveSqlParser.T_NEW: - case HiveSqlParser.T_PWD: - case HiveSqlParser.T_SESSIONS: - case HiveSqlParser.T_SUBDIR: - this.state = 3309; + case HiveSql.T_ACTION: + case HiveSql.T_ADD2: + case HiveSql.T_ALL: + case HiveSql.T_ALLOCATE: + case HiveSql.T_ALTER: + case HiveSql.T_AND: + case HiveSql.T_ANSI_NULLS: + case HiveSql.T_ANSI_PADDING: + case HiveSql.T_AS: + case HiveSql.T_ASC: + case HiveSql.T_ASSOCIATE: + case HiveSql.T_AT: + case HiveSql.T_AUTO_INCREMENT: + case HiveSql.T_AVG: + case HiveSql.T_BATCHSIZE: + case HiveSql.T_BEGIN: + case HiveSql.T_BETWEEN: + case HiveSql.T_BIGINT: + case HiveSql.T_BINARY_DOUBLE: + case HiveSql.T_BINARY_FLOAT: + case HiveSql.T_BIT: + case HiveSql.T_BODY: + case HiveSql.T_BREAK: + case HiveSql.T_BY: + case HiveSql.T_BYTE: + case HiveSql.T_CALL: + case HiveSql.T_CALLER: + case HiveSql.T_CASCADE: + case HiveSql.T_CASE: + case HiveSql.T_CASESPECIFIC: + case HiveSql.T_CAST: + case HiveSql.T_CHAR: + case HiveSql.T_CHARACTER: + case HiveSql.T_CHARSET: + case HiveSql.T_CLIENT: + case HiveSql.T_CLOSE: + case HiveSql.T_CLUSTERED: + case HiveSql.T_CMP: + case HiveSql.T_COLLECT: + case HiveSql.T_COLLECTION: + case HiveSql.T_COLUMN: + case HiveSql.T_COMMENT: + case HiveSql.T_CONSTANT: + case HiveSql.T_COMMIT: + case HiveSql.T_COMPRESS: + case HiveSql.T_CONCAT: + case HiveSql.T_CONDITION: + case HiveSql.T_CONSTRAINT: + case HiveSql.T_CONTINUE: + case HiveSql.T_COPY: + case HiveSql.T_COUNT: + case HiveSql.T_COUNT_BIG: + case HiveSql.T_CREATE: + case HiveSql.T_CREATION: + case HiveSql.T_CREATOR: + case HiveSql.T_CS: + case HiveSql.T_CURRENT: + case HiveSql.T_CURRENT_SCHEMA: + case HiveSql.T_CURSOR: + case HiveSql.T_DATABASE: + case HiveSql.T_DATA: + case HiveSql.T_DATE: + case HiveSql.T_DATETIME: + case HiveSql.T_DAY: + case HiveSql.T_DAYS: + case HiveSql.T_DEC: + case HiveSql.T_DECIMAL: + case HiveSql.T_DECLARE: + case HiveSql.T_DEFAULT: + case HiveSql.T_DEFERRED: + case HiveSql.T_DEFINED: + case HiveSql.T_DEFINER: + case HiveSql.T_DEFINITION: + case HiveSql.T_DELETE: + case HiveSql.T_DELIMITED: + case HiveSql.T_DELIMITER: + case HiveSql.T_DESC: + case HiveSql.T_DESCRIBE: + case HiveSql.T_DIAGNOSTICS: + case HiveSql.T_DIR: + case HiveSql.T_DIRECTORY: + case HiveSql.T_DISTINCT: + case HiveSql.T_DISTRIBUTE: + case HiveSql.T_DO: + case HiveSql.T_DOUBLE: + case HiveSql.T_DROP: + case HiveSql.T_DYNAMIC: + case HiveSql.T_ENABLE: + case HiveSql.T_ENGINE: + case HiveSql.T_ESCAPED: + case HiveSql.T_EXCEPT: + case HiveSql.T_EXEC: + case HiveSql.T_EXECUTE: + case HiveSql.T_EXCEPTION: + case HiveSql.T_EXCLUSIVE: + case HiveSql.T_EXISTS: + case HiveSql.T_EXIT: + case HiveSql.T_FALLBACK: + case HiveSql.T_FALSE: + case HiveSql.T_FETCH: + case HiveSql.T_FIELDS: + case HiveSql.T_FILE: + case HiveSql.T_FILES: + case HiveSql.T_FLOAT: + case HiveSql.T_FOR: + case HiveSql.T_FOREIGN: + case HiveSql.T_FORMAT: + case HiveSql.T_FOUND: + case HiveSql.T_FROM: + case HiveSql.T_FULL: + case HiveSql.T_FUNCTION: + case HiveSql.T_GET: + case HiveSql.T_GLOBAL: + case HiveSql.T_GO: + case HiveSql.T_GRANT: + case HiveSql.T_GROUP: + case HiveSql.T_HANDLER: + case HiveSql.T_HASH: + case HiveSql.T_HAVING: + case HiveSql.T_HDFS: + case HiveSql.T_HIVE: + case HiveSql.T_HOST: + case HiveSql.T_IDENTITY: + case HiveSql.T_IF: + case HiveSql.T_IGNORE: + case HiveSql.T_IMMEDIATE: + case HiveSql.T_IN: + case HiveSql.T_INCLUDE: + case HiveSql.T_INDEX: + case HiveSql.T_INITRANS: + case HiveSql.T_INNER: + case HiveSql.T_INOUT: + case HiveSql.T_INSERT: + case HiveSql.T_INT: + case HiveSql.T_INT2: + case HiveSql.T_INT4: + case HiveSql.T_INT8: + case HiveSql.T_INTEGER: + case HiveSql.T_INTERSECT: + case HiveSql.T_INTERVAL: + case HiveSql.T_INTO: + case HiveSql.T_INVOKER: + case HiveSql.T_IS: + case HiveSql.T_ISOPEN: + case HiveSql.T_ITEMS: + case HiveSql.T_JOIN: + case HiveSql.T_KEEP: + case HiveSql.T_KEY: + case HiveSql.T_KEYS: + case HiveSql.T_LANGUAGE: + case HiveSql.T_LEAVE: + case HiveSql.T_LEFT: + case HiveSql.T_LIKE: + case HiveSql.T_LIMIT: + case HiveSql.T_LINES: + case HiveSql.T_LOCAL: + case HiveSql.T_LOCATION: + case HiveSql.T_LOCATOR: + case HiveSql.T_LOCATORS: + case HiveSql.T_LOCKS: + case HiveSql.T_LOG: + case HiveSql.T_LOGGED: + case HiveSql.T_LOGGING: + case HiveSql.T_LOOP: + case HiveSql.T_MAP: + case HiveSql.T_MATCHED: + case HiveSql.T_MAX: + case HiveSql.T_MAXTRANS: + case HiveSql.T_MERGE: + case HiveSql.T_MESSAGE_TEXT: + case HiveSql.T_MICROSECOND: + case HiveSql.T_MICROSECONDS: + case HiveSql.T_MIN: + case HiveSql.T_MULTISET: + case HiveSql.T_NCHAR: + case HiveSql.T_NEW: + case HiveSql.T_NVARCHAR: + case HiveSql.T_NO: + case HiveSql.T_NOCOUNT: + case HiveSql.T_NOCOMPRESS: + case HiveSql.T_NOLOGGING: + case HiveSql.T_NONE: + case HiveSql.T_NOT: + case HiveSql.T_NOTFOUND: + case HiveSql.T_NUMERIC: + case HiveSql.T_NUMBER: + case HiveSql.T_OBJECT: + case HiveSql.T_OFF: + case HiveSql.T_ON: + case HiveSql.T_ONLY: + case HiveSql.T_OPEN: + case HiveSql.T_OR: + case HiveSql.T_ORDER: + case HiveSql.T_OUT: + case HiveSql.T_OUTER: + case HiveSql.T_OVER: + case HiveSql.T_OVERWRITE: + case HiveSql.T_OWNER: + case HiveSql.T_PACKAGE: + case HiveSql.T_PARTITION: + case HiveSql.T_PCTFREE: + case HiveSql.T_PCTUSED: + case HiveSql.T_PRECISION: + case HiveSql.T_PRESERVE: + case HiveSql.T_PRIMARY: + case HiveSql.T_PRINT: + case HiveSql.T_PROC: + case HiveSql.T_PROCEDURE: + case HiveSql.T_QUALIFY: + case HiveSql.T_QUERY_BAND: + case HiveSql.T_QUIT: + case HiveSql.T_QUOTED_IDENTIFIER: + case HiveSql.T_RAISE: + case HiveSql.T_REAL: + case HiveSql.T_REFERENCES: + case HiveSql.T_REGEXP: + case HiveSql.T_REPLACE: + case HiveSql.T_RESIGNAL: + case HiveSql.T_RESTRICT: + case HiveSql.T_RESULT: + case HiveSql.T_RESULT_SET_LOCATOR: + case HiveSql.T_RETURN: + case HiveSql.T_RETURNS: + case HiveSql.T_REVERSE: + case HiveSql.T_RIGHT: + case HiveSql.T_RLIKE: + case HiveSql.T_ROLE: + case HiveSql.T_ROLLBACK: + case HiveSql.T_ROW: + case HiveSql.T_ROWS: + case HiveSql.T_ROW_COUNT: + case HiveSql.T_RR: + case HiveSql.T_RS: + case HiveSql.T_PWD: + case HiveSql.T_TRIM: + case HiveSql.T_SCHEMA: + case HiveSql.T_SECOND: + case HiveSql.T_SECONDS: + case HiveSql.T_SECURITY: + case HiveSql.T_SEGMENT: + case HiveSql.T_SEL: + case HiveSql.T_SELECT: + case HiveSql.T_SET: + case HiveSql.T_SESSION: + case HiveSql.T_SESSIONS: + case HiveSql.T_SETS: + case HiveSql.T_SHARE: + case HiveSql.T_SIGNAL: + case HiveSql.T_SIMPLE_DOUBLE: + case HiveSql.T_SIMPLE_FLOAT: + case HiveSql.T_SMALLDATETIME: + case HiveSql.T_SMALLINT: + case HiveSql.T_SQL: + case HiveSql.T_SQLEXCEPTION: + case HiveSql.T_SQLINSERT: + case HiveSql.T_SQLSTATE: + case HiveSql.T_SQLWARNING: + case HiveSql.T_STATS: + case HiveSql.T_STATISTICS: + case HiveSql.T_STEP: + case HiveSql.T_STORAGE: + case HiveSql.T_STORED: + case HiveSql.T_STRING: + case HiveSql.T_SUBDIR: + case HiveSql.T_SUBSTRING: + case HiveSql.T_SUM: + case HiveSql.T_SUMMARY: + case HiveSql.T_SYS_REFCURSOR: + case HiveSql.T_TABLE: + case HiveSql.T_TABLESPACE: + case HiveSql.T_TEMPORARY: + case HiveSql.T_TERMINATED: + case HiveSql.T_TEXTIMAGE_ON: + case HiveSql.T_THEN: + case HiveSql.T_TIMESTAMP: + case HiveSql.T_TITLE: + case HiveSql.T_TO: + case HiveSql.T_TOP: + case HiveSql.T_TRANSACTION: + case HiveSql.T_TRUE: + case HiveSql.T_TRUNCATE: + case HiveSql.T_UNIQUE: + case HiveSql.T_UPDATE: + case HiveSql.T_UR: + case HiveSql.T_USE: + case HiveSql.T_USING: + case HiveSql.T_VALUE: + case HiveSql.T_VALUES: + case HiveSql.T_VAR: + case HiveSql.T_VARCHAR: + case HiveSql.T_VARCHAR2: + case HiveSql.T_VARYING: + case HiveSql.T_VOLATILE: + case HiveSql.T_WHILE: + case HiveSql.T_WITH: + case HiveSql.T_WITHOUT: + case HiveSql.T_WORK: + case HiveSql.T_XACT_ABORT: + case HiveSql.T_XML: + case HiveSql.T_YES: + case HiveSql.T_ACTIVITY_COUNT: + case HiveSql.T_CUME_DIST: + case HiveSql.T_CURRENT_DATE: + case HiveSql.T_CURRENT_TIMESTAMP: + case HiveSql.T_CURRENT_USER: + case HiveSql.T_DENSE_RANK: + case HiveSql.T_FIRST_VALUE: + case HiveSql.T_LAG: + case HiveSql.T_LAST_VALUE: + case HiveSql.T_LEAD: + case HiveSql.T_PART_COUNT: + case HiveSql.T_PART_LOC: + case HiveSql.T_RANK: + case HiveSql.T_ROW_NUMBER: + case HiveSql.T_STDEV: + case HiveSql.T_SYSDATE: + case HiveSql.T_VARIANCE: + case HiveSql.T_USER: + this.state = 3303; this.non_reserved_words(); break; default: throw new antlr4.error.NoViableAltException(this); } - this.state = 3319; + this.state = 3313; this._errHandler.sync(this); - var _alt = this._interp.adaptivePredict(this._input,420,this._ctx) + var _alt = this._interp.adaptivePredict(this._input,419,this._ctx) while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { if(_alt===1) { - this.state = 3312; - this.match(HiveSqlParser.T__4); - this.state = 3315; + this.state = 3306; + this.match(HiveSql.T_DOT); + this.state = 3309; this._errHandler.sync(this); switch(this._input.LA(1)) { - case HiveSqlParser.L_ID: - this.state = 3313; - this.match(HiveSqlParser.L_ID); + case HiveSql.L_ID: + this.state = 3307; + this.match(HiveSql.L_ID); break; - case HiveSqlParser.T_GO: - case HiveSqlParser.T_BEGIN: - case HiveSqlParser.T_EXCEPTION: - case HiveSqlParser.T_THEN: - case HiveSqlParser.T_SET: - case HiveSqlParser.T_ALLOCATE: - case HiveSqlParser.T_CURSOR: - case HiveSqlParser.T_FOR: - case HiveSqlParser.T_RESULT: - case HiveSqlParser.T_PROCEDURE: - case HiveSqlParser.T_ASSOCIATE: - case HiveSqlParser.T_LOCATOR: - case HiveSqlParser.T_LOCATORS: - case HiveSqlParser.T_WITH: - case HiveSqlParser.T_TRANSACTION: - case HiveSqlParser.T_BREAK: - case HiveSqlParser.T_CALL: - case HiveSqlParser.T_DECLARE: - case HiveSqlParser.T_AS: - case HiveSqlParser.T_CONSTANT: - case HiveSqlParser.T_CONDITION: - case HiveSqlParser.T_IS: - case HiveSqlParser.T_RETURN: - case HiveSqlParser.T_ONLY: - case HiveSqlParser.T_TO: - case HiveSqlParser.T_CALLER: - case HiveSqlParser.T_CLIENT: - case HiveSqlParser.T_WITHOUT: - case HiveSqlParser.T_CONTINUE: - case HiveSqlParser.T_EXIT: - case HiveSqlParser.T_HANDLER: - case HiveSqlParser.T_SQLEXCEPTION: - case HiveSqlParser.T_SQLWARNING: - case HiveSqlParser.T_NOT: - case HiveSqlParser.T_FOUND: - case HiveSqlParser.T_GLOBAL: - case HiveSqlParser.T_TEMPORARY: - case HiveSqlParser.T_TABLE: - case HiveSqlParser.T_CREATE: - case HiveSqlParser.T_IF: - case HiveSqlParser.T_EXISTS: - case HiveSqlParser.T_LOCAL: - case HiveSqlParser.T_MULTISET: - case HiveSqlParser.T_VOLATILE: - case HiveSqlParser.T_LIKE: - case HiveSqlParser.T_CONSTRAINT: - case HiveSqlParser.T_PRIMARY: - case HiveSqlParser.T_KEY: - case HiveSqlParser.T_UNIQUE: - case HiveSqlParser.T_REFERENCES: - case HiveSqlParser.T_IDENTITY: - case HiveSqlParser.T_AUTO_INCREMENT: - case HiveSqlParser.T_ENABLE: - case HiveSqlParser.T_CLUSTERED: - case HiveSqlParser.T_ASC: - case HiveSqlParser.T_DESC: - case HiveSqlParser.T_FOREIGN: - case HiveSqlParser.T_ON: - case HiveSqlParser.T_UPDATE: - case HiveSqlParser.T_DELETE: - case HiveSqlParser.T_NO: - case HiveSqlParser.T_ACTION: - case HiveSqlParser.T_RESTRICT: - case HiveSqlParser.T_DEFAULT: - case HiveSqlParser.T_CASCADE: - case HiveSqlParser.T_LOG: - case HiveSqlParser.T_FALLBACK: - case HiveSqlParser.T_COMMIT: - case HiveSqlParser.T_PRESERVE: - case HiveSqlParser.T_ROWS: - case HiveSqlParser.T_SEGMENT: - case HiveSqlParser.T_CREATION: - case HiveSqlParser.T_IMMEDIATE: - case HiveSqlParser.T_DEFERRED: - case HiveSqlParser.T_PCTFREE: - case HiveSqlParser.T_PCTUSED: - case HiveSqlParser.T_INITRANS: - case HiveSqlParser.T_MAXTRANS: - case HiveSqlParser.T_NOCOMPRESS: - case HiveSqlParser.T_LOGGING: - case HiveSqlParser.T_NOLOGGING: - case HiveSqlParser.T_STORAGE: - case HiveSqlParser.T_TABLESPACE: - case HiveSqlParser.T_INDEX: - case HiveSqlParser.T_IN: - case HiveSqlParser.T_REPLACE: - case HiveSqlParser.T_DISTRIBUTE: - case HiveSqlParser.T_BY: - case HiveSqlParser.T_HASH: - case HiveSqlParser.T_LOGGED: - case HiveSqlParser.T_COMPRESS: - case HiveSqlParser.T_YES: - case HiveSqlParser.T_DEFINITION: - case HiveSqlParser.T_DROP: - case HiveSqlParser.T_DATA: - case HiveSqlParser.T_STORED: - case HiveSqlParser.T_ROW: - case HiveSqlParser.T_FORMAT: - case HiveSqlParser.T_DELIMITED: - case HiveSqlParser.T_FIELDS: - case HiveSqlParser.T_TERMINATED: - case HiveSqlParser.T_ESCAPED: - case HiveSqlParser.T_COLLECTION: - case HiveSqlParser.T_ITEMS: - case HiveSqlParser.T_MAP: - case HiveSqlParser.T_KEYS: - case HiveSqlParser.T_LINES: - case HiveSqlParser.T_DEFINED: - case HiveSqlParser.T_TEXTIMAGE_ON: - case HiveSqlParser.T_COMMENT: - case HiveSqlParser.T_CHARACTER: - case HiveSqlParser.T_CHARSET: - case HiveSqlParser.T_ENGINE: - case HiveSqlParser.T_ALTER: - case HiveSqlParser.T_ADD2: - case HiveSqlParser.T_CHAR: - case HiveSqlParser.T_BIGINT: - case HiveSqlParser.T_BINARY_DOUBLE: - case HiveSqlParser.T_BINARY_FLOAT: - case HiveSqlParser.T_BIT: - case HiveSqlParser.T_DATE: - case HiveSqlParser.T_DATETIME: - case HiveSqlParser.T_DEC: - case HiveSqlParser.T_DECIMAL: - case HiveSqlParser.T_DOUBLE: - case HiveSqlParser.T_PRECISION: - case HiveSqlParser.T_FLOAT: - case HiveSqlParser.T_INT: - case HiveSqlParser.T_INT2: - case HiveSqlParser.T_INT4: - case HiveSqlParser.T_INT8: - case HiveSqlParser.T_INTEGER: - case HiveSqlParser.T_NCHAR: - case HiveSqlParser.T_NVARCHAR: - case HiveSqlParser.T_NUMBER: - case HiveSqlParser.T_NUMERIC: - case HiveSqlParser.T_REAL: - case HiveSqlParser.T_RESULT_SET_LOCATOR: - case HiveSqlParser.T_VARYING: - case HiveSqlParser.T_SIMPLE_FLOAT: - case HiveSqlParser.T_SIMPLE_DOUBLE: - case HiveSqlParser.T_SMALLINT: - case HiveSqlParser.T_SMALLDATETIME: - case HiveSqlParser.T_STRING: - case HiveSqlParser.T_SYS_REFCURSOR: - case HiveSqlParser.T_TIMESTAMP: - case HiveSqlParser.T_VARCHAR: - case HiveSqlParser.T_VARCHAR2: - case HiveSqlParser.T_XML: - case HiveSqlParser.T_MAX: - case HiveSqlParser.T_BYTE: - case HiveSqlParser.T_CASESPECIFIC: - case HiveSqlParser.T_CS: - case HiveSqlParser.T_DATABASE: - case HiveSqlParser.T_SCHEMA: - case HiveSqlParser.T_LOCATION: - case HiveSqlParser.T_OR: - case HiveSqlParser.T_FUNCTION: - case HiveSqlParser.T_RETURNS: - case HiveSqlParser.T_PACKAGE: - case HiveSqlParser.T_PROC: - case HiveSqlParser.T_BODY: - case HiveSqlParser.T_OUT: - case HiveSqlParser.T_INOUT: - case HiveSqlParser.T_LANGUAGE: - case HiveSqlParser.T_SQL: - case HiveSqlParser.T_SECURITY: - case HiveSqlParser.T_CREATOR: - case HiveSqlParser.T_DEFINER: - case HiveSqlParser.T_INVOKER: - case HiveSqlParser.T_OWNER: - case HiveSqlParser.T_DYNAMIC: - case HiveSqlParser.T_SETS: - case HiveSqlParser.T_EXEC: - case HiveSqlParser.T_EXECUTE: - case HiveSqlParser.T_INTO: - case HiveSqlParser.T_INCLUDE: - case HiveSqlParser.T_INSERT: - case HiveSqlParser.T_OVERWRITE: - case HiveSqlParser.T_VALUES: - case HiveSqlParser.T_DIRECTORY: - case HiveSqlParser.T_GET: - case HiveSqlParser.T_DIAGNOSTICS: - case HiveSqlParser.T_MESSAGE_TEXT: - case HiveSqlParser.T_ROW_COUNT: - case HiveSqlParser.T_GRANT: - case HiveSqlParser.T_ROLE: - case HiveSqlParser.T_LEAVE: - case HiveSqlParser.T_OBJECT: - case HiveSqlParser.T_AT: - case HiveSqlParser.T_OPEN: - case HiveSqlParser.T_FETCH: - case HiveSqlParser.T_FROM: - case HiveSqlParser.T_COLLECT: - case HiveSqlParser.T_STATISTICS: - case HiveSqlParser.T_STATS: - case HiveSqlParser.T_COLUMN: - case HiveSqlParser.T_CLOSE: - case HiveSqlParser.T_CMP: - case HiveSqlParser.T_SUM: - case HiveSqlParser.T_COPY: - case HiveSqlParser.T_HDFS: - case HiveSqlParser.T_BATCHSIZE: - case HiveSqlParser.T_DELIMITER: - case HiveSqlParser.T_SQLINSERT: - case HiveSqlParser.T_IGNORE: - case HiveSqlParser.T_WORK: - case HiveSqlParser.T_PRINT: - case HiveSqlParser.T_QUIT: - case HiveSqlParser.T_RAISE: - case HiveSqlParser.T_RESIGNAL: - case HiveSqlParser.T_SQLSTATE: - case HiveSqlParser.T_VALUE: - case HiveSqlParser.T_ROLLBACK: - case HiveSqlParser.T_CURRENT: - case HiveSqlParser.T_CURRENT_SCHEMA: - case HiveSqlParser.T_ANSI_NULLS: - case HiveSqlParser.T_ANSI_PADDING: - case HiveSqlParser.T_NOCOUNT: - case HiveSqlParser.T_QUOTED_IDENTIFIER: - case HiveSqlParser.T_XACT_ABORT: - case HiveSqlParser.T_OFF: - case HiveSqlParser.T_QUERY_BAND: - case HiveSqlParser.T_NONE: - case HiveSqlParser.T_SESSION: - case HiveSqlParser.T_SIGNAL: - case HiveSqlParser.T_SUMMARY: - case HiveSqlParser.T_TOP: - case HiveSqlParser.T_LIMIT: - case HiveSqlParser.T_TRUNCATE: - case HiveSqlParser.T_USE: - case HiveSqlParser.T_WHILE: - case HiveSqlParser.T_DO: - case HiveSqlParser.T_LOOP: - case HiveSqlParser.T_REVERSE: - case HiveSqlParser.T_STEP: - case HiveSqlParser.T_USING: - case HiveSqlParser.T_ALL: - case HiveSqlParser.T_EXCEPT: - case HiveSqlParser.T_INTERSECT: - case HiveSqlParser.T_SELECT: - case HiveSqlParser.T_SEL: - case HiveSqlParser.T_DISTINCT: - case HiveSqlParser.T_TITLE: - case HiveSqlParser.T_INNER: - case HiveSqlParser.T_JOIN: - case HiveSqlParser.T_LEFT: - case HiveSqlParser.T_RIGHT: - case HiveSqlParser.T_FULL: - case HiveSqlParser.T_OUTER: - case HiveSqlParser.T_GROUP: - case HiveSqlParser.T_HAVING: - case HiveSqlParser.T_QUALIFY: - case HiveSqlParser.T_ORDER: - case HiveSqlParser.T_RR: - case HiveSqlParser.T_RS: - case HiveSqlParser.T_UR: - case HiveSqlParser.T_AND: - case HiveSqlParser.T_KEEP: - case HiveSqlParser.T_EXCLUSIVE: - case HiveSqlParser.T_SHARE: - case HiveSqlParser.T_LOCKS: - case HiveSqlParser.T_MERGE: - case HiveSqlParser.T_MATCHED: - case HiveSqlParser.T_DESCRIBE: - case HiveSqlParser.T_BETWEEN: - case HiveSqlParser.T_RLIKE: - case HiveSqlParser.T_REGEXP: - case HiveSqlParser.T_INTERVAL: - case HiveSqlParser.T_DAY: - case HiveSqlParser.T_DAYS: - case HiveSqlParser.T_MICROSECOND: - case HiveSqlParser.T_MICROSECONDS: - case HiveSqlParser.T_SECOND: - case HiveSqlParser.T_SECONDS: - case HiveSqlParser.T_CONCAT: - case HiveSqlParser.T_CASE: - case HiveSqlParser.T_ISOPEN: - case HiveSqlParser.T_NOTFOUND: - case HiveSqlParser.T_AVG: - case HiveSqlParser.T_COUNT: - case HiveSqlParser.T_COUNT_BIG: - case HiveSqlParser.T_CUME_DIST: - case HiveSqlParser.T_DENSE_RANK: - case HiveSqlParser.T_FIRST_VALUE: - case HiveSqlParser.T_LAG: - case HiveSqlParser.T_LAST_VALUE: - case HiveSqlParser.T_LEAD: - case HiveSqlParser.T_MIN: - case HiveSqlParser.T_RANK: - case HiveSqlParser.T_ROW_NUMBER: - case HiveSqlParser.T_STDEV: - case HiveSqlParser.T_VAR: - case HiveSqlParser.T_VARIANCE: - case HiveSqlParser.T_OVER: - case HiveSqlParser.T_PARTITION: - case HiveSqlParser.T_ACTIVITY_COUNT: - case HiveSqlParser.T_CAST: - case HiveSqlParser.T_CURRENT_DATE: - case HiveSqlParser.T_CURRENT_TIMESTAMP: - case HiveSqlParser.T_CURRENT_USER: - case HiveSqlParser.T_USER: - case HiveSqlParser.T_PART_COUNT: - case HiveSqlParser.T_PART_LOC: - case HiveSqlParser.T_TRIM: - case HiveSqlParser.T_SUBSTRING: - case HiveSqlParser.T_SYSDATE: - case HiveSqlParser.T_HIVE: - case HiveSqlParser.T_HOST: - case HiveSqlParser.T_TRUE: - case HiveSqlParser.T_FALSE: - case HiveSqlParser.T_DIR: - case HiveSqlParser.T_FILE: - case HiveSqlParser.T_FILES: - case HiveSqlParser.T_NEW: - case HiveSqlParser.T_PWD: - case HiveSqlParser.T_SESSIONS: - case HiveSqlParser.T_SUBDIR: - this.state = 3314; + case HiveSql.T_ACTION: + case HiveSql.T_ADD2: + case HiveSql.T_ALL: + case HiveSql.T_ALLOCATE: + case HiveSql.T_ALTER: + case HiveSql.T_AND: + case HiveSql.T_ANSI_NULLS: + case HiveSql.T_ANSI_PADDING: + case HiveSql.T_AS: + case HiveSql.T_ASC: + case HiveSql.T_ASSOCIATE: + case HiveSql.T_AT: + case HiveSql.T_AUTO_INCREMENT: + case HiveSql.T_AVG: + case HiveSql.T_BATCHSIZE: + case HiveSql.T_BEGIN: + case HiveSql.T_BETWEEN: + case HiveSql.T_BIGINT: + case HiveSql.T_BINARY_DOUBLE: + case HiveSql.T_BINARY_FLOAT: + case HiveSql.T_BIT: + case HiveSql.T_BODY: + case HiveSql.T_BREAK: + case HiveSql.T_BY: + case HiveSql.T_BYTE: + case HiveSql.T_CALL: + case HiveSql.T_CALLER: + case HiveSql.T_CASCADE: + case HiveSql.T_CASE: + case HiveSql.T_CASESPECIFIC: + case HiveSql.T_CAST: + case HiveSql.T_CHAR: + case HiveSql.T_CHARACTER: + case HiveSql.T_CHARSET: + case HiveSql.T_CLIENT: + case HiveSql.T_CLOSE: + case HiveSql.T_CLUSTERED: + case HiveSql.T_CMP: + case HiveSql.T_COLLECT: + case HiveSql.T_COLLECTION: + case HiveSql.T_COLUMN: + case HiveSql.T_COMMENT: + case HiveSql.T_CONSTANT: + case HiveSql.T_COMMIT: + case HiveSql.T_COMPRESS: + case HiveSql.T_CONCAT: + case HiveSql.T_CONDITION: + case HiveSql.T_CONSTRAINT: + case HiveSql.T_CONTINUE: + case HiveSql.T_COPY: + case HiveSql.T_COUNT: + case HiveSql.T_COUNT_BIG: + case HiveSql.T_CREATE: + case HiveSql.T_CREATION: + case HiveSql.T_CREATOR: + case HiveSql.T_CS: + case HiveSql.T_CURRENT: + case HiveSql.T_CURRENT_SCHEMA: + case HiveSql.T_CURSOR: + case HiveSql.T_DATABASE: + case HiveSql.T_DATA: + case HiveSql.T_DATE: + case HiveSql.T_DATETIME: + case HiveSql.T_DAY: + case HiveSql.T_DAYS: + case HiveSql.T_DEC: + case HiveSql.T_DECIMAL: + case HiveSql.T_DECLARE: + case HiveSql.T_DEFAULT: + case HiveSql.T_DEFERRED: + case HiveSql.T_DEFINED: + case HiveSql.T_DEFINER: + case HiveSql.T_DEFINITION: + case HiveSql.T_DELETE: + case HiveSql.T_DELIMITED: + case HiveSql.T_DELIMITER: + case HiveSql.T_DESC: + case HiveSql.T_DESCRIBE: + case HiveSql.T_DIAGNOSTICS: + case HiveSql.T_DIR: + case HiveSql.T_DIRECTORY: + case HiveSql.T_DISTINCT: + case HiveSql.T_DISTRIBUTE: + case HiveSql.T_DO: + case HiveSql.T_DOUBLE: + case HiveSql.T_DROP: + case HiveSql.T_DYNAMIC: + case HiveSql.T_ENABLE: + case HiveSql.T_ENGINE: + case HiveSql.T_ESCAPED: + case HiveSql.T_EXCEPT: + case HiveSql.T_EXEC: + case HiveSql.T_EXECUTE: + case HiveSql.T_EXCEPTION: + case HiveSql.T_EXCLUSIVE: + case HiveSql.T_EXISTS: + case HiveSql.T_EXIT: + case HiveSql.T_FALLBACK: + case HiveSql.T_FALSE: + case HiveSql.T_FETCH: + case HiveSql.T_FIELDS: + case HiveSql.T_FILE: + case HiveSql.T_FILES: + case HiveSql.T_FLOAT: + case HiveSql.T_FOR: + case HiveSql.T_FOREIGN: + case HiveSql.T_FORMAT: + case HiveSql.T_FOUND: + case HiveSql.T_FROM: + case HiveSql.T_FULL: + case HiveSql.T_FUNCTION: + case HiveSql.T_GET: + case HiveSql.T_GLOBAL: + case HiveSql.T_GO: + case HiveSql.T_GRANT: + case HiveSql.T_GROUP: + case HiveSql.T_HANDLER: + case HiveSql.T_HASH: + case HiveSql.T_HAVING: + case HiveSql.T_HDFS: + case HiveSql.T_HIVE: + case HiveSql.T_HOST: + case HiveSql.T_IDENTITY: + case HiveSql.T_IF: + case HiveSql.T_IGNORE: + case HiveSql.T_IMMEDIATE: + case HiveSql.T_IN: + case HiveSql.T_INCLUDE: + case HiveSql.T_INDEX: + case HiveSql.T_INITRANS: + case HiveSql.T_INNER: + case HiveSql.T_INOUT: + case HiveSql.T_INSERT: + case HiveSql.T_INT: + case HiveSql.T_INT2: + case HiveSql.T_INT4: + case HiveSql.T_INT8: + case HiveSql.T_INTEGER: + case HiveSql.T_INTERSECT: + case HiveSql.T_INTERVAL: + case HiveSql.T_INTO: + case HiveSql.T_INVOKER: + case HiveSql.T_IS: + case HiveSql.T_ISOPEN: + case HiveSql.T_ITEMS: + case HiveSql.T_JOIN: + case HiveSql.T_KEEP: + case HiveSql.T_KEY: + case HiveSql.T_KEYS: + case HiveSql.T_LANGUAGE: + case HiveSql.T_LEAVE: + case HiveSql.T_LEFT: + case HiveSql.T_LIKE: + case HiveSql.T_LIMIT: + case HiveSql.T_LINES: + case HiveSql.T_LOCAL: + case HiveSql.T_LOCATION: + case HiveSql.T_LOCATOR: + case HiveSql.T_LOCATORS: + case HiveSql.T_LOCKS: + case HiveSql.T_LOG: + case HiveSql.T_LOGGED: + case HiveSql.T_LOGGING: + case HiveSql.T_LOOP: + case HiveSql.T_MAP: + case HiveSql.T_MATCHED: + case HiveSql.T_MAX: + case HiveSql.T_MAXTRANS: + case HiveSql.T_MERGE: + case HiveSql.T_MESSAGE_TEXT: + case HiveSql.T_MICROSECOND: + case HiveSql.T_MICROSECONDS: + case HiveSql.T_MIN: + case HiveSql.T_MULTISET: + case HiveSql.T_NCHAR: + case HiveSql.T_NEW: + case HiveSql.T_NVARCHAR: + case HiveSql.T_NO: + case HiveSql.T_NOCOUNT: + case HiveSql.T_NOCOMPRESS: + case HiveSql.T_NOLOGGING: + case HiveSql.T_NONE: + case HiveSql.T_NOT: + case HiveSql.T_NOTFOUND: + case HiveSql.T_NUMERIC: + case HiveSql.T_NUMBER: + case HiveSql.T_OBJECT: + case HiveSql.T_OFF: + case HiveSql.T_ON: + case HiveSql.T_ONLY: + case HiveSql.T_OPEN: + case HiveSql.T_OR: + case HiveSql.T_ORDER: + case HiveSql.T_OUT: + case HiveSql.T_OUTER: + case HiveSql.T_OVER: + case HiveSql.T_OVERWRITE: + case HiveSql.T_OWNER: + case HiveSql.T_PACKAGE: + case HiveSql.T_PARTITION: + case HiveSql.T_PCTFREE: + case HiveSql.T_PCTUSED: + case HiveSql.T_PRECISION: + case HiveSql.T_PRESERVE: + case HiveSql.T_PRIMARY: + case HiveSql.T_PRINT: + case HiveSql.T_PROC: + case HiveSql.T_PROCEDURE: + case HiveSql.T_QUALIFY: + case HiveSql.T_QUERY_BAND: + case HiveSql.T_QUIT: + case HiveSql.T_QUOTED_IDENTIFIER: + case HiveSql.T_RAISE: + case HiveSql.T_REAL: + case HiveSql.T_REFERENCES: + case HiveSql.T_REGEXP: + case HiveSql.T_REPLACE: + case HiveSql.T_RESIGNAL: + case HiveSql.T_RESTRICT: + case HiveSql.T_RESULT: + case HiveSql.T_RESULT_SET_LOCATOR: + case HiveSql.T_RETURN: + case HiveSql.T_RETURNS: + case HiveSql.T_REVERSE: + case HiveSql.T_RIGHT: + case HiveSql.T_RLIKE: + case HiveSql.T_ROLE: + case HiveSql.T_ROLLBACK: + case HiveSql.T_ROW: + case HiveSql.T_ROWS: + case HiveSql.T_ROW_COUNT: + case HiveSql.T_RR: + case HiveSql.T_RS: + case HiveSql.T_PWD: + case HiveSql.T_TRIM: + case HiveSql.T_SCHEMA: + case HiveSql.T_SECOND: + case HiveSql.T_SECONDS: + case HiveSql.T_SECURITY: + case HiveSql.T_SEGMENT: + case HiveSql.T_SEL: + case HiveSql.T_SELECT: + case HiveSql.T_SET: + case HiveSql.T_SESSION: + case HiveSql.T_SESSIONS: + case HiveSql.T_SETS: + case HiveSql.T_SHARE: + case HiveSql.T_SIGNAL: + case HiveSql.T_SIMPLE_DOUBLE: + case HiveSql.T_SIMPLE_FLOAT: + case HiveSql.T_SMALLDATETIME: + case HiveSql.T_SMALLINT: + case HiveSql.T_SQL: + case HiveSql.T_SQLEXCEPTION: + case HiveSql.T_SQLINSERT: + case HiveSql.T_SQLSTATE: + case HiveSql.T_SQLWARNING: + case HiveSql.T_STATS: + case HiveSql.T_STATISTICS: + case HiveSql.T_STEP: + case HiveSql.T_STORAGE: + case HiveSql.T_STORED: + case HiveSql.T_STRING: + case HiveSql.T_SUBDIR: + case HiveSql.T_SUBSTRING: + case HiveSql.T_SUM: + case HiveSql.T_SUMMARY: + case HiveSql.T_SYS_REFCURSOR: + case HiveSql.T_TABLE: + case HiveSql.T_TABLESPACE: + case HiveSql.T_TEMPORARY: + case HiveSql.T_TERMINATED: + case HiveSql.T_TEXTIMAGE_ON: + case HiveSql.T_THEN: + case HiveSql.T_TIMESTAMP: + case HiveSql.T_TITLE: + case HiveSql.T_TO: + case HiveSql.T_TOP: + case HiveSql.T_TRANSACTION: + case HiveSql.T_TRUE: + case HiveSql.T_TRUNCATE: + case HiveSql.T_UNIQUE: + case HiveSql.T_UPDATE: + case HiveSql.T_UR: + case HiveSql.T_USE: + case HiveSql.T_USING: + case HiveSql.T_VALUE: + case HiveSql.T_VALUES: + case HiveSql.T_VAR: + case HiveSql.T_VARCHAR: + case HiveSql.T_VARCHAR2: + case HiveSql.T_VARYING: + case HiveSql.T_VOLATILE: + case HiveSql.T_WHILE: + case HiveSql.T_WITH: + case HiveSql.T_WITHOUT: + case HiveSql.T_WORK: + case HiveSql.T_XACT_ABORT: + case HiveSql.T_XML: + case HiveSql.T_YES: + case HiveSql.T_ACTIVITY_COUNT: + case HiveSql.T_CUME_DIST: + case HiveSql.T_CURRENT_DATE: + case HiveSql.T_CURRENT_TIMESTAMP: + case HiveSql.T_CURRENT_USER: + case HiveSql.T_DENSE_RANK: + case HiveSql.T_FIRST_VALUE: + case HiveSql.T_LAG: + case HiveSql.T_LAST_VALUE: + case HiveSql.T_LEAD: + case HiveSql.T_PART_COUNT: + case HiveSql.T_PART_LOC: + case HiveSql.T_RANK: + case HiveSql.T_ROW_NUMBER: + case HiveSql.T_STDEV: + case HiveSql.T_SYSDATE: + case HiveSql.T_VARIANCE: + case HiveSql.T_USER: + this.state = 3308; this.non_reserved_words(); break; default: throw new antlr4.error.NoViableAltException(this); } } - this.state = 3321; + this.state = 3315; this._errHandler.sync(this); - _alt = this._interp.adaptivePredict(this._input,420,this._ctx); + _alt = this._interp.adaptivePredict(this._input,419,this._ctx); } } catch (re) { @@ -35843,7 +35927,7 @@ function StringContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_string; + this.ruleIndex = HiveSql.RULE_string; return this; } @@ -35866,10 +35950,10 @@ function Double_quotedStringContext(parser, ctx) { Double_quotedStringContext.prototype = Object.create(StringContext.prototype); Double_quotedStringContext.prototype.constructor = Double_quotedStringContext; -HiveSqlParser.Double_quotedStringContext = Double_quotedStringContext; +HiveSql.Double_quotedStringContext = Double_quotedStringContext; Double_quotedStringContext.prototype.L_D_STRING = function() { - return this.getToken(HiveSqlParser.L_D_STRING, 0); + return this.getToken(HiveSql.L_D_STRING, 0); }; Double_quotedStringContext.prototype.enterRule = function(listener) { if(listener instanceof HiveSqlListener ) { @@ -35901,10 +35985,10 @@ function Single_quotedStringContext(parser, ctx) { Single_quotedStringContext.prototype = Object.create(StringContext.prototype); Single_quotedStringContext.prototype.constructor = Single_quotedStringContext; -HiveSqlParser.Single_quotedStringContext = Single_quotedStringContext; +HiveSql.Single_quotedStringContext = Single_quotedStringContext; Single_quotedStringContext.prototype.L_S_STRING = function() { - return this.getToken(HiveSqlParser.L_S_STRING, 0); + return this.getToken(HiveSql.L_S_STRING, 0); }; Single_quotedStringContext.prototype.enterRule = function(listener) { if(listener instanceof HiveSqlListener ) { @@ -35928,27 +36012,27 @@ Single_quotedStringContext.prototype.accept = function(visitor) { -HiveSqlParser.StringContext = StringContext; +HiveSql.StringContext = StringContext; -HiveSqlParser.prototype.string = function() { +HiveSql.prototype.string = function() { var localctx = new StringContext(this, this._ctx, this.state); - this.enterRule(localctx, 440, HiveSqlParser.RULE_string); + this.enterRule(localctx, 440, HiveSql.RULE_string); try { - this.state = 3324; + this.state = 3318; this._errHandler.sync(this); switch(this._input.LA(1)) { - case HiveSqlParser.L_S_STRING: + case HiveSql.L_S_STRING: localctx = new Single_quotedStringContext(this, localctx); this.enterOuterAlt(localctx, 1); - this.state = 3322; - this.match(HiveSqlParser.L_S_STRING); + this.state = 3316; + this.match(HiveSql.L_S_STRING); break; - case HiveSqlParser.L_D_STRING: + case HiveSql.L_D_STRING: localctx = new Double_quotedStringContext(this, localctx); this.enterOuterAlt(localctx, 2); - this.state = 3323; - this.match(HiveSqlParser.L_D_STRING); + this.state = 3317; + this.match(HiveSql.L_D_STRING); break; default: throw new antlr4.error.NoViableAltException(this); @@ -35977,7 +36061,7 @@ function Int_numberContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_int_number; + this.ruleIndex = HiveSql.RULE_int_number; return this; } @@ -35985,7 +36069,15 @@ Int_numberContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); Int_numberContext.prototype.constructor = Int_numberContext; Int_numberContext.prototype.L_INT = function() { - return this.getToken(HiveSqlParser.L_INT, 0); + return this.getToken(HiveSql.L_INT, 0); +}; + +Int_numberContext.prototype.T_SUB = function() { + return this.getToken(HiveSql.T_SUB, 0); +}; + +Int_numberContext.prototype.T_ADD = function() { + return this.getToken(HiveSql.T_ADD, 0); }; Int_numberContext.prototype.enterRule = function(listener) { @@ -36011,22 +36103,22 @@ Int_numberContext.prototype.accept = function(visitor) { -HiveSqlParser.Int_numberContext = Int_numberContext; +HiveSql.Int_numberContext = Int_numberContext; -HiveSqlParser.prototype.int_number = function() { +HiveSql.prototype.int_number = function() { var localctx = new Int_numberContext(this, this._ctx, this.state); - this.enterRule(localctx, 442, HiveSqlParser.RULE_int_number); + this.enterRule(localctx, 442, HiveSql.RULE_int_number); var _la = 0; // Token type try { this.enterOuterAlt(localctx, 1); - this.state = 3327; + this.state = 3321; this._errHandler.sync(this); _la = this._input.LA(1); - if(_la===HiveSqlParser.T__8 || _la===HiveSqlParser.T__9) { - this.state = 3326; + if(_la===HiveSql.T_ADD || _la===HiveSql.T_SUB) { + this.state = 3320; _la = this._input.LA(1); - if(!(_la===HiveSqlParser.T__8 || _la===HiveSqlParser.T__9)) { + if(!(_la===HiveSql.T_ADD || _la===HiveSql.T_SUB)) { this._errHandler.recoverInline(this); } else { @@ -36035,8 +36127,8 @@ HiveSqlParser.prototype.int_number = function() { } } - this.state = 3329; - this.match(HiveSqlParser.L_INT); + this.state = 3323; + this.match(HiveSql.L_INT); } catch (re) { if(re instanceof antlr4.error.RecognitionException) { localctx.exception = re; @@ -36061,7 +36153,7 @@ function Dec_numberContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_dec_number; + this.ruleIndex = HiveSql.RULE_dec_number; return this; } @@ -36069,7 +36161,15 @@ Dec_numberContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); Dec_numberContext.prototype.constructor = Dec_numberContext; Dec_numberContext.prototype.L_DEC = function() { - return this.getToken(HiveSqlParser.L_DEC, 0); + return this.getToken(HiveSql.L_DEC, 0); +}; + +Dec_numberContext.prototype.T_SUB = function() { + return this.getToken(HiveSql.T_SUB, 0); +}; + +Dec_numberContext.prototype.T_ADD = function() { + return this.getToken(HiveSql.T_ADD, 0); }; Dec_numberContext.prototype.enterRule = function(listener) { @@ -36095,22 +36195,22 @@ Dec_numberContext.prototype.accept = function(visitor) { -HiveSqlParser.Dec_numberContext = Dec_numberContext; +HiveSql.Dec_numberContext = Dec_numberContext; -HiveSqlParser.prototype.dec_number = function() { +HiveSql.prototype.dec_number = function() { var localctx = new Dec_numberContext(this, this._ctx, this.state); - this.enterRule(localctx, 444, HiveSqlParser.RULE_dec_number); + this.enterRule(localctx, 444, HiveSql.RULE_dec_number); var _la = 0; // Token type try { this.enterOuterAlt(localctx, 1); - this.state = 3332; + this.state = 3326; this._errHandler.sync(this); _la = this._input.LA(1); - if(_la===HiveSqlParser.T__8 || _la===HiveSqlParser.T__9) { - this.state = 3331; + if(_la===HiveSql.T_ADD || _la===HiveSql.T_SUB) { + this.state = 3325; _la = this._input.LA(1); - if(!(_la===HiveSqlParser.T__8 || _la===HiveSqlParser.T__9)) { + if(!(_la===HiveSql.T_ADD || _la===HiveSql.T_SUB)) { this._errHandler.recoverInline(this); } else { @@ -36119,8 +36219,8 @@ HiveSqlParser.prototype.dec_number = function() { } } - this.state = 3334; - this.match(HiveSqlParser.L_DEC); + this.state = 3328; + this.match(HiveSql.L_DEC); } catch (re) { if(re instanceof antlr4.error.RecognitionException) { localctx.exception = re; @@ -36145,7 +36245,7 @@ function Bool_literalContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_bool_literal; + this.ruleIndex = HiveSql.RULE_bool_literal; return this; } @@ -36153,11 +36253,11 @@ Bool_literalContext.prototype = Object.create(antlr4.ParserRuleContext.prototype Bool_literalContext.prototype.constructor = Bool_literalContext; Bool_literalContext.prototype.T_TRUE = function() { - return this.getToken(HiveSqlParser.T_TRUE, 0); + return this.getToken(HiveSql.T_TRUE, 0); }; Bool_literalContext.prototype.T_FALSE = function() { - return this.getToken(HiveSqlParser.T_FALSE, 0); + return this.getToken(HiveSql.T_FALSE, 0); }; Bool_literalContext.prototype.enterRule = function(listener) { @@ -36183,18 +36283,18 @@ Bool_literalContext.prototype.accept = function(visitor) { -HiveSqlParser.Bool_literalContext = Bool_literalContext; +HiveSql.Bool_literalContext = Bool_literalContext; -HiveSqlParser.prototype.bool_literal = function() { +HiveSql.prototype.bool_literal = function() { var localctx = new Bool_literalContext(this, this._ctx, this.state); - this.enterRule(localctx, 446, HiveSqlParser.RULE_bool_literal); + this.enterRule(localctx, 446, HiveSql.RULE_bool_literal); var _la = 0; // Token type try { this.enterOuterAlt(localctx, 1); - this.state = 3336; + this.state = 3330; _la = this._input.LA(1); - if(!(_la===HiveSqlParser.T_TRUE || _la===HiveSqlParser.T_FALSE)) { + if(!(_la===HiveSql.T_FALSE || _la===HiveSql.T_TRUE)) { this._errHandler.recoverInline(this); } else { @@ -36225,7 +36325,7 @@ function Null_constContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_null_const; + this.ruleIndex = HiveSql.RULE_null_const; return this; } @@ -36233,7 +36333,7 @@ Null_constContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); Null_constContext.prototype.constructor = Null_constContext; Null_constContext.prototype.T_NULL = function() { - return this.getToken(HiveSqlParser.T_NULL, 0); + return this.getToken(HiveSql.T_NULL, 0); }; Null_constContext.prototype.enterRule = function(listener) { @@ -36259,16 +36359,16 @@ Null_constContext.prototype.accept = function(visitor) { -HiveSqlParser.Null_constContext = Null_constContext; +HiveSql.Null_constContext = Null_constContext; -HiveSqlParser.prototype.null_const = function() { +HiveSql.prototype.null_const = function() { var localctx = new Null_constContext(this, this._ctx, this.state); - this.enterRule(localctx, 448, HiveSqlParser.RULE_null_const); + this.enterRule(localctx, 448, HiveSql.RULE_null_const); try { this.enterOuterAlt(localctx, 1); - this.state = 3338; - this.match(HiveSqlParser.T_NULL); + this.state = 3332; + this.match(HiveSql.T_NULL); } catch (re) { if(re instanceof antlr4.error.RecognitionException) { localctx.exception = re; @@ -36293,7 +36393,7 @@ function Non_reserved_wordsContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_non_reserved_words; + this.ruleIndex = HiveSql.RULE_non_reserved_words; return this; } @@ -36301,1275 +36401,1275 @@ Non_reserved_wordsContext.prototype = Object.create(antlr4.ParserRuleContext.pro Non_reserved_wordsContext.prototype.constructor = Non_reserved_wordsContext; Non_reserved_wordsContext.prototype.T_ACTION = function() { - return this.getToken(HiveSqlParser.T_ACTION, 0); + return this.getToken(HiveSql.T_ACTION, 0); }; Non_reserved_wordsContext.prototype.T_ACTIVITY_COUNT = function() { - return this.getToken(HiveSqlParser.T_ACTIVITY_COUNT, 0); + return this.getToken(HiveSql.T_ACTIVITY_COUNT, 0); }; Non_reserved_wordsContext.prototype.T_ADD2 = function() { - return this.getToken(HiveSqlParser.T_ADD2, 0); + return this.getToken(HiveSql.T_ADD2, 0); }; Non_reserved_wordsContext.prototype.T_ALL = function() { - return this.getToken(HiveSqlParser.T_ALL, 0); + return this.getToken(HiveSql.T_ALL, 0); }; Non_reserved_wordsContext.prototype.T_ALLOCATE = function() { - return this.getToken(HiveSqlParser.T_ALLOCATE, 0); + return this.getToken(HiveSql.T_ALLOCATE, 0); }; Non_reserved_wordsContext.prototype.T_ALTER = function() { - return this.getToken(HiveSqlParser.T_ALTER, 0); + return this.getToken(HiveSql.T_ALTER, 0); }; Non_reserved_wordsContext.prototype.T_AND = function() { - return this.getToken(HiveSqlParser.T_AND, 0); + return this.getToken(HiveSql.T_AND, 0); }; Non_reserved_wordsContext.prototype.T_ANSI_NULLS = function() { - return this.getToken(HiveSqlParser.T_ANSI_NULLS, 0); + return this.getToken(HiveSql.T_ANSI_NULLS, 0); }; Non_reserved_wordsContext.prototype.T_ANSI_PADDING = function() { - return this.getToken(HiveSqlParser.T_ANSI_PADDING, 0); + return this.getToken(HiveSql.T_ANSI_PADDING, 0); }; Non_reserved_wordsContext.prototype.T_AS = function() { - return this.getToken(HiveSqlParser.T_AS, 0); + return this.getToken(HiveSql.T_AS, 0); }; Non_reserved_wordsContext.prototype.T_ASC = function() { - return this.getToken(HiveSqlParser.T_ASC, 0); + return this.getToken(HiveSql.T_ASC, 0); }; Non_reserved_wordsContext.prototype.T_ASSOCIATE = function() { - return this.getToken(HiveSqlParser.T_ASSOCIATE, 0); + return this.getToken(HiveSql.T_ASSOCIATE, 0); }; Non_reserved_wordsContext.prototype.T_AT = function() { - return this.getToken(HiveSqlParser.T_AT, 0); + return this.getToken(HiveSql.T_AT, 0); }; Non_reserved_wordsContext.prototype.T_AUTO_INCREMENT = function() { - return this.getToken(HiveSqlParser.T_AUTO_INCREMENT, 0); + return this.getToken(HiveSql.T_AUTO_INCREMENT, 0); }; Non_reserved_wordsContext.prototype.T_AVG = function() { - return this.getToken(HiveSqlParser.T_AVG, 0); + return this.getToken(HiveSql.T_AVG, 0); }; Non_reserved_wordsContext.prototype.T_BATCHSIZE = function() { - return this.getToken(HiveSqlParser.T_BATCHSIZE, 0); + return this.getToken(HiveSql.T_BATCHSIZE, 0); }; Non_reserved_wordsContext.prototype.T_BEGIN = function() { - return this.getToken(HiveSqlParser.T_BEGIN, 0); + return this.getToken(HiveSql.T_BEGIN, 0); }; Non_reserved_wordsContext.prototype.T_BETWEEN = function() { - return this.getToken(HiveSqlParser.T_BETWEEN, 0); + return this.getToken(HiveSql.T_BETWEEN, 0); }; Non_reserved_wordsContext.prototype.T_BIGINT = function() { - return this.getToken(HiveSqlParser.T_BIGINT, 0); + return this.getToken(HiveSql.T_BIGINT, 0); }; Non_reserved_wordsContext.prototype.T_BINARY_DOUBLE = function() { - return this.getToken(HiveSqlParser.T_BINARY_DOUBLE, 0); + return this.getToken(HiveSql.T_BINARY_DOUBLE, 0); }; Non_reserved_wordsContext.prototype.T_BINARY_FLOAT = function() { - return this.getToken(HiveSqlParser.T_BINARY_FLOAT, 0); + return this.getToken(HiveSql.T_BINARY_FLOAT, 0); }; Non_reserved_wordsContext.prototype.T_BIT = function() { - return this.getToken(HiveSqlParser.T_BIT, 0); + return this.getToken(HiveSql.T_BIT, 0); }; Non_reserved_wordsContext.prototype.T_BODY = function() { - return this.getToken(HiveSqlParser.T_BODY, 0); + return this.getToken(HiveSql.T_BODY, 0); }; Non_reserved_wordsContext.prototype.T_BREAK = function() { - return this.getToken(HiveSqlParser.T_BREAK, 0); + return this.getToken(HiveSql.T_BREAK, 0); }; Non_reserved_wordsContext.prototype.T_BY = function() { - return this.getToken(HiveSqlParser.T_BY, 0); + return this.getToken(HiveSql.T_BY, 0); }; Non_reserved_wordsContext.prototype.T_BYTE = function() { - return this.getToken(HiveSqlParser.T_BYTE, 0); + return this.getToken(HiveSql.T_BYTE, 0); }; Non_reserved_wordsContext.prototype.T_CALL = function() { - return this.getToken(HiveSqlParser.T_CALL, 0); + return this.getToken(HiveSql.T_CALL, 0); }; Non_reserved_wordsContext.prototype.T_CALLER = function() { - return this.getToken(HiveSqlParser.T_CALLER, 0); + return this.getToken(HiveSql.T_CALLER, 0); }; Non_reserved_wordsContext.prototype.T_CASCADE = function() { - return this.getToken(HiveSqlParser.T_CASCADE, 0); + return this.getToken(HiveSql.T_CASCADE, 0); }; Non_reserved_wordsContext.prototype.T_CASE = function() { - return this.getToken(HiveSqlParser.T_CASE, 0); + return this.getToken(HiveSql.T_CASE, 0); }; Non_reserved_wordsContext.prototype.T_CASESPECIFIC = function() { - return this.getToken(HiveSqlParser.T_CASESPECIFIC, 0); + return this.getToken(HiveSql.T_CASESPECIFIC, 0); }; Non_reserved_wordsContext.prototype.T_CAST = function() { - return this.getToken(HiveSqlParser.T_CAST, 0); + return this.getToken(HiveSql.T_CAST, 0); }; Non_reserved_wordsContext.prototype.T_CHAR = function() { - return this.getToken(HiveSqlParser.T_CHAR, 0); + return this.getToken(HiveSql.T_CHAR, 0); }; Non_reserved_wordsContext.prototype.T_CHARACTER = function() { - return this.getToken(HiveSqlParser.T_CHARACTER, 0); + return this.getToken(HiveSql.T_CHARACTER, 0); }; Non_reserved_wordsContext.prototype.T_CHARSET = function() { - return this.getToken(HiveSqlParser.T_CHARSET, 0); + return this.getToken(HiveSql.T_CHARSET, 0); }; Non_reserved_wordsContext.prototype.T_CLIENT = function() { - return this.getToken(HiveSqlParser.T_CLIENT, 0); + return this.getToken(HiveSql.T_CLIENT, 0); }; Non_reserved_wordsContext.prototype.T_CLOSE = function() { - return this.getToken(HiveSqlParser.T_CLOSE, 0); + return this.getToken(HiveSql.T_CLOSE, 0); }; Non_reserved_wordsContext.prototype.T_CLUSTERED = function() { - return this.getToken(HiveSqlParser.T_CLUSTERED, 0); + return this.getToken(HiveSql.T_CLUSTERED, 0); }; Non_reserved_wordsContext.prototype.T_CMP = function() { - return this.getToken(HiveSqlParser.T_CMP, 0); + return this.getToken(HiveSql.T_CMP, 0); }; Non_reserved_wordsContext.prototype.T_COLLECT = function() { - return this.getToken(HiveSqlParser.T_COLLECT, 0); + return this.getToken(HiveSql.T_COLLECT, 0); }; Non_reserved_wordsContext.prototype.T_COLLECTION = function() { - return this.getToken(HiveSqlParser.T_COLLECTION, 0); + return this.getToken(HiveSql.T_COLLECTION, 0); }; Non_reserved_wordsContext.prototype.T_COLUMN = function() { - return this.getToken(HiveSqlParser.T_COLUMN, 0); + return this.getToken(HiveSql.T_COLUMN, 0); }; Non_reserved_wordsContext.prototype.T_COMMENT = function() { - return this.getToken(HiveSqlParser.T_COMMENT, 0); + return this.getToken(HiveSql.T_COMMENT, 0); }; Non_reserved_wordsContext.prototype.T_COMPRESS = function() { - return this.getToken(HiveSqlParser.T_COMPRESS, 0); + return this.getToken(HiveSql.T_COMPRESS, 0); }; Non_reserved_wordsContext.prototype.T_CONSTANT = function() { - return this.getToken(HiveSqlParser.T_CONSTANT, 0); + return this.getToken(HiveSql.T_CONSTANT, 0); }; Non_reserved_wordsContext.prototype.T_COPY = function() { - return this.getToken(HiveSqlParser.T_COPY, 0); + return this.getToken(HiveSql.T_COPY, 0); }; Non_reserved_wordsContext.prototype.T_COMMIT = function() { - return this.getToken(HiveSqlParser.T_COMMIT, 0); + return this.getToken(HiveSql.T_COMMIT, 0); }; Non_reserved_wordsContext.prototype.T_CONCAT = function() { - return this.getToken(HiveSqlParser.T_CONCAT, 0); + return this.getToken(HiveSql.T_CONCAT, 0); }; Non_reserved_wordsContext.prototype.T_CONDITION = function() { - return this.getToken(HiveSqlParser.T_CONDITION, 0); + return this.getToken(HiveSql.T_CONDITION, 0); }; Non_reserved_wordsContext.prototype.T_CONSTRAINT = function() { - return this.getToken(HiveSqlParser.T_CONSTRAINT, 0); + return this.getToken(HiveSql.T_CONSTRAINT, 0); }; Non_reserved_wordsContext.prototype.T_CONTINUE = function() { - return this.getToken(HiveSqlParser.T_CONTINUE, 0); + return this.getToken(HiveSql.T_CONTINUE, 0); }; Non_reserved_wordsContext.prototype.T_COUNT = function() { - return this.getToken(HiveSqlParser.T_COUNT, 0); + return this.getToken(HiveSql.T_COUNT, 0); }; Non_reserved_wordsContext.prototype.T_COUNT_BIG = function() { - return this.getToken(HiveSqlParser.T_COUNT_BIG, 0); + return this.getToken(HiveSql.T_COUNT_BIG, 0); }; Non_reserved_wordsContext.prototype.T_CREATE = function() { - return this.getToken(HiveSqlParser.T_CREATE, 0); + return this.getToken(HiveSql.T_CREATE, 0); }; Non_reserved_wordsContext.prototype.T_CREATION = function() { - return this.getToken(HiveSqlParser.T_CREATION, 0); + return this.getToken(HiveSql.T_CREATION, 0); }; Non_reserved_wordsContext.prototype.T_CREATOR = function() { - return this.getToken(HiveSqlParser.T_CREATOR, 0); + return this.getToken(HiveSql.T_CREATOR, 0); }; Non_reserved_wordsContext.prototype.T_CS = function() { - return this.getToken(HiveSqlParser.T_CS, 0); + return this.getToken(HiveSql.T_CS, 0); }; Non_reserved_wordsContext.prototype.T_CUME_DIST = function() { - return this.getToken(HiveSqlParser.T_CUME_DIST, 0); + return this.getToken(HiveSql.T_CUME_DIST, 0); }; Non_reserved_wordsContext.prototype.T_CURRENT = function() { - return this.getToken(HiveSqlParser.T_CURRENT, 0); + return this.getToken(HiveSql.T_CURRENT, 0); }; Non_reserved_wordsContext.prototype.T_CURRENT_DATE = function() { - return this.getToken(HiveSqlParser.T_CURRENT_DATE, 0); + return this.getToken(HiveSql.T_CURRENT_DATE, 0); }; Non_reserved_wordsContext.prototype.T_CURRENT_SCHEMA = function() { - return this.getToken(HiveSqlParser.T_CURRENT_SCHEMA, 0); + return this.getToken(HiveSql.T_CURRENT_SCHEMA, 0); }; Non_reserved_wordsContext.prototype.T_CURRENT_TIMESTAMP = function() { - return this.getToken(HiveSqlParser.T_CURRENT_TIMESTAMP, 0); + return this.getToken(HiveSql.T_CURRENT_TIMESTAMP, 0); }; Non_reserved_wordsContext.prototype.T_CURRENT_USER = function() { - return this.getToken(HiveSqlParser.T_CURRENT_USER, 0); + return this.getToken(HiveSql.T_CURRENT_USER, 0); }; Non_reserved_wordsContext.prototype.T_CURSOR = function() { - return this.getToken(HiveSqlParser.T_CURSOR, 0); + return this.getToken(HiveSql.T_CURSOR, 0); }; Non_reserved_wordsContext.prototype.T_DATA = function() { - return this.getToken(HiveSqlParser.T_DATA, 0); + return this.getToken(HiveSql.T_DATA, 0); }; Non_reserved_wordsContext.prototype.T_DATABASE = function() { - return this.getToken(HiveSqlParser.T_DATABASE, 0); + return this.getToken(HiveSql.T_DATABASE, 0); }; Non_reserved_wordsContext.prototype.T_DATE = function() { - return this.getToken(HiveSqlParser.T_DATE, 0); + return this.getToken(HiveSql.T_DATE, 0); }; Non_reserved_wordsContext.prototype.T_DATETIME = function() { - return this.getToken(HiveSqlParser.T_DATETIME, 0); + return this.getToken(HiveSql.T_DATETIME, 0); }; Non_reserved_wordsContext.prototype.T_DAY = function() { - return this.getToken(HiveSqlParser.T_DAY, 0); + return this.getToken(HiveSql.T_DAY, 0); }; Non_reserved_wordsContext.prototype.T_DAYS = function() { - return this.getToken(HiveSqlParser.T_DAYS, 0); + return this.getToken(HiveSql.T_DAYS, 0); }; Non_reserved_wordsContext.prototype.T_DEC = function() { - return this.getToken(HiveSqlParser.T_DEC, 0); + return this.getToken(HiveSql.T_DEC, 0); }; Non_reserved_wordsContext.prototype.T_DECIMAL = function() { - return this.getToken(HiveSqlParser.T_DECIMAL, 0); + return this.getToken(HiveSql.T_DECIMAL, 0); }; Non_reserved_wordsContext.prototype.T_DECLARE = function() { - return this.getToken(HiveSqlParser.T_DECLARE, 0); + return this.getToken(HiveSql.T_DECLARE, 0); }; Non_reserved_wordsContext.prototype.T_DEFAULT = function() { - return this.getToken(HiveSqlParser.T_DEFAULT, 0); + return this.getToken(HiveSql.T_DEFAULT, 0); }; Non_reserved_wordsContext.prototype.T_DEFERRED = function() { - return this.getToken(HiveSqlParser.T_DEFERRED, 0); + return this.getToken(HiveSql.T_DEFERRED, 0); }; Non_reserved_wordsContext.prototype.T_DEFINED = function() { - return this.getToken(HiveSqlParser.T_DEFINED, 0); + return this.getToken(HiveSql.T_DEFINED, 0); }; Non_reserved_wordsContext.prototype.T_DEFINER = function() { - return this.getToken(HiveSqlParser.T_DEFINER, 0); + return this.getToken(HiveSql.T_DEFINER, 0); }; Non_reserved_wordsContext.prototype.T_DEFINITION = function() { - return this.getToken(HiveSqlParser.T_DEFINITION, 0); + return this.getToken(HiveSql.T_DEFINITION, 0); }; Non_reserved_wordsContext.prototype.T_DELETE = function() { - return this.getToken(HiveSqlParser.T_DELETE, 0); + return this.getToken(HiveSql.T_DELETE, 0); }; Non_reserved_wordsContext.prototype.T_DELIMITED = function() { - return this.getToken(HiveSqlParser.T_DELIMITED, 0); + return this.getToken(HiveSql.T_DELIMITED, 0); }; Non_reserved_wordsContext.prototype.T_DELIMITER = function() { - return this.getToken(HiveSqlParser.T_DELIMITER, 0); + return this.getToken(HiveSql.T_DELIMITER, 0); }; Non_reserved_wordsContext.prototype.T_DENSE_RANK = function() { - return this.getToken(HiveSqlParser.T_DENSE_RANK, 0); + return this.getToken(HiveSql.T_DENSE_RANK, 0); }; Non_reserved_wordsContext.prototype.T_DESC = function() { - return this.getToken(HiveSqlParser.T_DESC, 0); + return this.getToken(HiveSql.T_DESC, 0); }; Non_reserved_wordsContext.prototype.T_DESCRIBE = function() { - return this.getToken(HiveSqlParser.T_DESCRIBE, 0); + return this.getToken(HiveSql.T_DESCRIBE, 0); }; Non_reserved_wordsContext.prototype.T_DIAGNOSTICS = function() { - return this.getToken(HiveSqlParser.T_DIAGNOSTICS, 0); + return this.getToken(HiveSql.T_DIAGNOSTICS, 0); }; Non_reserved_wordsContext.prototype.T_DIR = function() { - return this.getToken(HiveSqlParser.T_DIR, 0); + return this.getToken(HiveSql.T_DIR, 0); }; Non_reserved_wordsContext.prototype.T_DIRECTORY = function() { - return this.getToken(HiveSqlParser.T_DIRECTORY, 0); + return this.getToken(HiveSql.T_DIRECTORY, 0); }; Non_reserved_wordsContext.prototype.T_DISTINCT = function() { - return this.getToken(HiveSqlParser.T_DISTINCT, 0); + return this.getToken(HiveSql.T_DISTINCT, 0); }; Non_reserved_wordsContext.prototype.T_DISTRIBUTE = function() { - return this.getToken(HiveSqlParser.T_DISTRIBUTE, 0); + return this.getToken(HiveSql.T_DISTRIBUTE, 0); }; Non_reserved_wordsContext.prototype.T_DO = function() { - return this.getToken(HiveSqlParser.T_DO, 0); + return this.getToken(HiveSql.T_DO, 0); }; Non_reserved_wordsContext.prototype.T_DOUBLE = function() { - return this.getToken(HiveSqlParser.T_DOUBLE, 0); + return this.getToken(HiveSql.T_DOUBLE, 0); }; Non_reserved_wordsContext.prototype.T_DROP = function() { - return this.getToken(HiveSqlParser.T_DROP, 0); + return this.getToken(HiveSql.T_DROP, 0); }; Non_reserved_wordsContext.prototype.T_DYNAMIC = function() { - return this.getToken(HiveSqlParser.T_DYNAMIC, 0); + return this.getToken(HiveSql.T_DYNAMIC, 0); }; Non_reserved_wordsContext.prototype.T_ENABLE = function() { - return this.getToken(HiveSqlParser.T_ENABLE, 0); + return this.getToken(HiveSql.T_ENABLE, 0); }; Non_reserved_wordsContext.prototype.T_ENGINE = function() { - return this.getToken(HiveSqlParser.T_ENGINE, 0); + return this.getToken(HiveSql.T_ENGINE, 0); }; Non_reserved_wordsContext.prototype.T_ESCAPED = function() { - return this.getToken(HiveSqlParser.T_ESCAPED, 0); + return this.getToken(HiveSql.T_ESCAPED, 0); }; Non_reserved_wordsContext.prototype.T_EXCEPT = function() { - return this.getToken(HiveSqlParser.T_EXCEPT, 0); + return this.getToken(HiveSql.T_EXCEPT, 0); }; Non_reserved_wordsContext.prototype.T_EXEC = function() { - return this.getToken(HiveSqlParser.T_EXEC, 0); + return this.getToken(HiveSql.T_EXEC, 0); }; Non_reserved_wordsContext.prototype.T_EXECUTE = function() { - return this.getToken(HiveSqlParser.T_EXECUTE, 0); + return this.getToken(HiveSql.T_EXECUTE, 0); }; Non_reserved_wordsContext.prototype.T_EXCEPTION = function() { - return this.getToken(HiveSqlParser.T_EXCEPTION, 0); + return this.getToken(HiveSql.T_EXCEPTION, 0); }; Non_reserved_wordsContext.prototype.T_EXCLUSIVE = function() { - return this.getToken(HiveSqlParser.T_EXCLUSIVE, 0); + return this.getToken(HiveSql.T_EXCLUSIVE, 0); }; Non_reserved_wordsContext.prototype.T_EXISTS = function() { - return this.getToken(HiveSqlParser.T_EXISTS, 0); + return this.getToken(HiveSql.T_EXISTS, 0); }; Non_reserved_wordsContext.prototype.T_EXIT = function() { - return this.getToken(HiveSqlParser.T_EXIT, 0); + return this.getToken(HiveSql.T_EXIT, 0); }; Non_reserved_wordsContext.prototype.T_FALLBACK = function() { - return this.getToken(HiveSqlParser.T_FALLBACK, 0); + return this.getToken(HiveSql.T_FALLBACK, 0); }; Non_reserved_wordsContext.prototype.T_FALSE = function() { - return this.getToken(HiveSqlParser.T_FALSE, 0); + return this.getToken(HiveSql.T_FALSE, 0); }; Non_reserved_wordsContext.prototype.T_FETCH = function() { - return this.getToken(HiveSqlParser.T_FETCH, 0); + return this.getToken(HiveSql.T_FETCH, 0); }; Non_reserved_wordsContext.prototype.T_FIELDS = function() { - return this.getToken(HiveSqlParser.T_FIELDS, 0); + return this.getToken(HiveSql.T_FIELDS, 0); }; Non_reserved_wordsContext.prototype.T_FILE = function() { - return this.getToken(HiveSqlParser.T_FILE, 0); + return this.getToken(HiveSql.T_FILE, 0); }; Non_reserved_wordsContext.prototype.T_FILES = function() { - return this.getToken(HiveSqlParser.T_FILES, 0); + return this.getToken(HiveSql.T_FILES, 0); }; Non_reserved_wordsContext.prototype.T_FIRST_VALUE = function() { - return this.getToken(HiveSqlParser.T_FIRST_VALUE, 0); + return this.getToken(HiveSql.T_FIRST_VALUE, 0); }; Non_reserved_wordsContext.prototype.T_FLOAT = function() { - return this.getToken(HiveSqlParser.T_FLOAT, 0); + return this.getToken(HiveSql.T_FLOAT, 0); }; Non_reserved_wordsContext.prototype.T_FOR = function() { - return this.getToken(HiveSqlParser.T_FOR, 0); + return this.getToken(HiveSql.T_FOR, 0); }; Non_reserved_wordsContext.prototype.T_FOREIGN = function() { - return this.getToken(HiveSqlParser.T_FOREIGN, 0); + return this.getToken(HiveSql.T_FOREIGN, 0); }; Non_reserved_wordsContext.prototype.T_FORMAT = function() { - return this.getToken(HiveSqlParser.T_FORMAT, 0); + return this.getToken(HiveSql.T_FORMAT, 0); }; Non_reserved_wordsContext.prototype.T_FOUND = function() { - return this.getToken(HiveSqlParser.T_FOUND, 0); + return this.getToken(HiveSql.T_FOUND, 0); }; Non_reserved_wordsContext.prototype.T_FROM = function() { - return this.getToken(HiveSqlParser.T_FROM, 0); + return this.getToken(HiveSql.T_FROM, 0); }; Non_reserved_wordsContext.prototype.T_FULL = function() { - return this.getToken(HiveSqlParser.T_FULL, 0); + return this.getToken(HiveSql.T_FULL, 0); }; Non_reserved_wordsContext.prototype.T_FUNCTION = function() { - return this.getToken(HiveSqlParser.T_FUNCTION, 0); + return this.getToken(HiveSql.T_FUNCTION, 0); }; Non_reserved_wordsContext.prototype.T_GET = function() { - return this.getToken(HiveSqlParser.T_GET, 0); + return this.getToken(HiveSql.T_GET, 0); }; Non_reserved_wordsContext.prototype.T_GLOBAL = function() { - return this.getToken(HiveSqlParser.T_GLOBAL, 0); + return this.getToken(HiveSql.T_GLOBAL, 0); }; Non_reserved_wordsContext.prototype.T_GO = function() { - return this.getToken(HiveSqlParser.T_GO, 0); + return this.getToken(HiveSql.T_GO, 0); }; Non_reserved_wordsContext.prototype.T_GRANT = function() { - return this.getToken(HiveSqlParser.T_GRANT, 0); + return this.getToken(HiveSql.T_GRANT, 0); }; Non_reserved_wordsContext.prototype.T_GROUP = function() { - return this.getToken(HiveSqlParser.T_GROUP, 0); + return this.getToken(HiveSql.T_GROUP, 0); }; Non_reserved_wordsContext.prototype.T_HANDLER = function() { - return this.getToken(HiveSqlParser.T_HANDLER, 0); + return this.getToken(HiveSql.T_HANDLER, 0); }; Non_reserved_wordsContext.prototype.T_HASH = function() { - return this.getToken(HiveSqlParser.T_HASH, 0); + return this.getToken(HiveSql.T_HASH, 0); }; Non_reserved_wordsContext.prototype.T_HAVING = function() { - return this.getToken(HiveSqlParser.T_HAVING, 0); + return this.getToken(HiveSql.T_HAVING, 0); }; Non_reserved_wordsContext.prototype.T_HDFS = function() { - return this.getToken(HiveSqlParser.T_HDFS, 0); + return this.getToken(HiveSql.T_HDFS, 0); }; Non_reserved_wordsContext.prototype.T_HIVE = function() { - return this.getToken(HiveSqlParser.T_HIVE, 0); + return this.getToken(HiveSql.T_HIVE, 0); }; Non_reserved_wordsContext.prototype.T_HOST = function() { - return this.getToken(HiveSqlParser.T_HOST, 0); + return this.getToken(HiveSql.T_HOST, 0); }; Non_reserved_wordsContext.prototype.T_IDENTITY = function() { - return this.getToken(HiveSqlParser.T_IDENTITY, 0); + return this.getToken(HiveSql.T_IDENTITY, 0); }; Non_reserved_wordsContext.prototype.T_IF = function() { - return this.getToken(HiveSqlParser.T_IF, 0); + return this.getToken(HiveSql.T_IF, 0); }; Non_reserved_wordsContext.prototype.T_IGNORE = function() { - return this.getToken(HiveSqlParser.T_IGNORE, 0); + return this.getToken(HiveSql.T_IGNORE, 0); }; Non_reserved_wordsContext.prototype.T_IMMEDIATE = function() { - return this.getToken(HiveSqlParser.T_IMMEDIATE, 0); + return this.getToken(HiveSql.T_IMMEDIATE, 0); }; Non_reserved_wordsContext.prototype.T_IN = function() { - return this.getToken(HiveSqlParser.T_IN, 0); + return this.getToken(HiveSql.T_IN, 0); }; Non_reserved_wordsContext.prototype.T_INCLUDE = function() { - return this.getToken(HiveSqlParser.T_INCLUDE, 0); + return this.getToken(HiveSql.T_INCLUDE, 0); }; Non_reserved_wordsContext.prototype.T_INDEX = function() { - return this.getToken(HiveSqlParser.T_INDEX, 0); + return this.getToken(HiveSql.T_INDEX, 0); }; Non_reserved_wordsContext.prototype.T_INITRANS = function() { - return this.getToken(HiveSqlParser.T_INITRANS, 0); + return this.getToken(HiveSql.T_INITRANS, 0); }; Non_reserved_wordsContext.prototype.T_INNER = function() { - return this.getToken(HiveSqlParser.T_INNER, 0); + return this.getToken(HiveSql.T_INNER, 0); }; Non_reserved_wordsContext.prototype.T_INOUT = function() { - return this.getToken(HiveSqlParser.T_INOUT, 0); + return this.getToken(HiveSql.T_INOUT, 0); }; Non_reserved_wordsContext.prototype.T_INSERT = function() { - return this.getToken(HiveSqlParser.T_INSERT, 0); + return this.getToken(HiveSql.T_INSERT, 0); }; Non_reserved_wordsContext.prototype.T_INT = function() { - return this.getToken(HiveSqlParser.T_INT, 0); + return this.getToken(HiveSql.T_INT, 0); }; Non_reserved_wordsContext.prototype.T_INT2 = function() { - return this.getToken(HiveSqlParser.T_INT2, 0); + return this.getToken(HiveSql.T_INT2, 0); }; Non_reserved_wordsContext.prototype.T_INT4 = function() { - return this.getToken(HiveSqlParser.T_INT4, 0); + return this.getToken(HiveSql.T_INT4, 0); }; Non_reserved_wordsContext.prototype.T_INT8 = function() { - return this.getToken(HiveSqlParser.T_INT8, 0); + return this.getToken(HiveSql.T_INT8, 0); }; Non_reserved_wordsContext.prototype.T_INTEGER = function() { - return this.getToken(HiveSqlParser.T_INTEGER, 0); + return this.getToken(HiveSql.T_INTEGER, 0); }; Non_reserved_wordsContext.prototype.T_INTERSECT = function() { - return this.getToken(HiveSqlParser.T_INTERSECT, 0); + return this.getToken(HiveSql.T_INTERSECT, 0); }; Non_reserved_wordsContext.prototype.T_INTERVAL = function() { - return this.getToken(HiveSqlParser.T_INTERVAL, 0); + return this.getToken(HiveSql.T_INTERVAL, 0); }; Non_reserved_wordsContext.prototype.T_INTO = function() { - return this.getToken(HiveSqlParser.T_INTO, 0); + return this.getToken(HiveSql.T_INTO, 0); }; Non_reserved_wordsContext.prototype.T_INVOKER = function() { - return this.getToken(HiveSqlParser.T_INVOKER, 0); + return this.getToken(HiveSql.T_INVOKER, 0); }; Non_reserved_wordsContext.prototype.T_ITEMS = function() { - return this.getToken(HiveSqlParser.T_ITEMS, 0); + return this.getToken(HiveSql.T_ITEMS, 0); }; Non_reserved_wordsContext.prototype.T_IS = function() { - return this.getToken(HiveSqlParser.T_IS, 0); + return this.getToken(HiveSql.T_IS, 0); }; Non_reserved_wordsContext.prototype.T_ISOPEN = function() { - return this.getToken(HiveSqlParser.T_ISOPEN, 0); + return this.getToken(HiveSql.T_ISOPEN, 0); }; Non_reserved_wordsContext.prototype.T_JOIN = function() { - return this.getToken(HiveSqlParser.T_JOIN, 0); + return this.getToken(HiveSql.T_JOIN, 0); }; Non_reserved_wordsContext.prototype.T_KEEP = function() { - return this.getToken(HiveSqlParser.T_KEEP, 0); + return this.getToken(HiveSql.T_KEEP, 0); }; Non_reserved_wordsContext.prototype.T_KEY = function() { - return this.getToken(HiveSqlParser.T_KEY, 0); + return this.getToken(HiveSql.T_KEY, 0); }; Non_reserved_wordsContext.prototype.T_KEYS = function() { - return this.getToken(HiveSqlParser.T_KEYS, 0); + return this.getToken(HiveSql.T_KEYS, 0); }; Non_reserved_wordsContext.prototype.T_LAG = function() { - return this.getToken(HiveSqlParser.T_LAG, 0); + return this.getToken(HiveSql.T_LAG, 0); }; Non_reserved_wordsContext.prototype.T_LANGUAGE = function() { - return this.getToken(HiveSqlParser.T_LANGUAGE, 0); + return this.getToken(HiveSql.T_LANGUAGE, 0); }; Non_reserved_wordsContext.prototype.T_LAST_VALUE = function() { - return this.getToken(HiveSqlParser.T_LAST_VALUE, 0); + return this.getToken(HiveSql.T_LAST_VALUE, 0); }; Non_reserved_wordsContext.prototype.T_LEAD = function() { - return this.getToken(HiveSqlParser.T_LEAD, 0); + return this.getToken(HiveSql.T_LEAD, 0); }; Non_reserved_wordsContext.prototype.T_LEAVE = function() { - return this.getToken(HiveSqlParser.T_LEAVE, 0); + return this.getToken(HiveSql.T_LEAVE, 0); }; Non_reserved_wordsContext.prototype.T_LEFT = function() { - return this.getToken(HiveSqlParser.T_LEFT, 0); + return this.getToken(HiveSql.T_LEFT, 0); }; Non_reserved_wordsContext.prototype.T_LIKE = function() { - return this.getToken(HiveSqlParser.T_LIKE, 0); + return this.getToken(HiveSql.T_LIKE, 0); }; Non_reserved_wordsContext.prototype.T_LIMIT = function() { - return this.getToken(HiveSqlParser.T_LIMIT, 0); + return this.getToken(HiveSql.T_LIMIT, 0); }; Non_reserved_wordsContext.prototype.T_LINES = function() { - return this.getToken(HiveSqlParser.T_LINES, 0); + return this.getToken(HiveSql.T_LINES, 0); }; Non_reserved_wordsContext.prototype.T_LOCAL = function() { - return this.getToken(HiveSqlParser.T_LOCAL, 0); + return this.getToken(HiveSql.T_LOCAL, 0); }; Non_reserved_wordsContext.prototype.T_LOCATION = function() { - return this.getToken(HiveSqlParser.T_LOCATION, 0); + return this.getToken(HiveSql.T_LOCATION, 0); }; Non_reserved_wordsContext.prototype.T_LOCATOR = function() { - return this.getToken(HiveSqlParser.T_LOCATOR, 0); + return this.getToken(HiveSql.T_LOCATOR, 0); }; Non_reserved_wordsContext.prototype.T_LOCATORS = function() { - return this.getToken(HiveSqlParser.T_LOCATORS, 0); + return this.getToken(HiveSql.T_LOCATORS, 0); }; Non_reserved_wordsContext.prototype.T_LOCKS = function() { - return this.getToken(HiveSqlParser.T_LOCKS, 0); + return this.getToken(HiveSql.T_LOCKS, 0); }; Non_reserved_wordsContext.prototype.T_LOG = function() { - return this.getToken(HiveSqlParser.T_LOG, 0); + return this.getToken(HiveSql.T_LOG, 0); }; Non_reserved_wordsContext.prototype.T_LOGGED = function() { - return this.getToken(HiveSqlParser.T_LOGGED, 0); + return this.getToken(HiveSql.T_LOGGED, 0); }; Non_reserved_wordsContext.prototype.T_LOGGING = function() { - return this.getToken(HiveSqlParser.T_LOGGING, 0); + return this.getToken(HiveSql.T_LOGGING, 0); }; Non_reserved_wordsContext.prototype.T_LOOP = function() { - return this.getToken(HiveSqlParser.T_LOOP, 0); + return this.getToken(HiveSql.T_LOOP, 0); }; Non_reserved_wordsContext.prototype.T_MAP = function() { - return this.getToken(HiveSqlParser.T_MAP, 0); + return this.getToken(HiveSql.T_MAP, 0); }; Non_reserved_wordsContext.prototype.T_MATCHED = function() { - return this.getToken(HiveSqlParser.T_MATCHED, 0); + return this.getToken(HiveSql.T_MATCHED, 0); }; Non_reserved_wordsContext.prototype.T_MAX = function() { - return this.getToken(HiveSqlParser.T_MAX, 0); + return this.getToken(HiveSql.T_MAX, 0); }; Non_reserved_wordsContext.prototype.T_MAXTRANS = function() { - return this.getToken(HiveSqlParser.T_MAXTRANS, 0); + return this.getToken(HiveSql.T_MAXTRANS, 0); }; Non_reserved_wordsContext.prototype.T_MERGE = function() { - return this.getToken(HiveSqlParser.T_MERGE, 0); + return this.getToken(HiveSql.T_MERGE, 0); }; Non_reserved_wordsContext.prototype.T_MESSAGE_TEXT = function() { - return this.getToken(HiveSqlParser.T_MESSAGE_TEXT, 0); + return this.getToken(HiveSql.T_MESSAGE_TEXT, 0); }; Non_reserved_wordsContext.prototype.T_MICROSECOND = function() { - return this.getToken(HiveSqlParser.T_MICROSECOND, 0); + return this.getToken(HiveSql.T_MICROSECOND, 0); }; Non_reserved_wordsContext.prototype.T_MICROSECONDS = function() { - return this.getToken(HiveSqlParser.T_MICROSECONDS, 0); + return this.getToken(HiveSql.T_MICROSECONDS, 0); }; Non_reserved_wordsContext.prototype.T_MIN = function() { - return this.getToken(HiveSqlParser.T_MIN, 0); + return this.getToken(HiveSql.T_MIN, 0); }; Non_reserved_wordsContext.prototype.T_MULTISET = function() { - return this.getToken(HiveSqlParser.T_MULTISET, 0); + return this.getToken(HiveSql.T_MULTISET, 0); }; Non_reserved_wordsContext.prototype.T_NCHAR = function() { - return this.getToken(HiveSqlParser.T_NCHAR, 0); + return this.getToken(HiveSql.T_NCHAR, 0); }; Non_reserved_wordsContext.prototype.T_NEW = function() { - return this.getToken(HiveSqlParser.T_NEW, 0); + return this.getToken(HiveSql.T_NEW, 0); }; Non_reserved_wordsContext.prototype.T_NVARCHAR = function() { - return this.getToken(HiveSqlParser.T_NVARCHAR, 0); + return this.getToken(HiveSql.T_NVARCHAR, 0); }; Non_reserved_wordsContext.prototype.T_NO = function() { - return this.getToken(HiveSqlParser.T_NO, 0); + return this.getToken(HiveSql.T_NO, 0); }; Non_reserved_wordsContext.prototype.T_NOCOMPRESS = function() { - return this.getToken(HiveSqlParser.T_NOCOMPRESS, 0); + return this.getToken(HiveSql.T_NOCOMPRESS, 0); }; Non_reserved_wordsContext.prototype.T_NOCOUNT = function() { - return this.getToken(HiveSqlParser.T_NOCOUNT, 0); + return this.getToken(HiveSql.T_NOCOUNT, 0); }; Non_reserved_wordsContext.prototype.T_NOLOGGING = function() { - return this.getToken(HiveSqlParser.T_NOLOGGING, 0); + return this.getToken(HiveSql.T_NOLOGGING, 0); }; Non_reserved_wordsContext.prototype.T_NONE = function() { - return this.getToken(HiveSqlParser.T_NONE, 0); + return this.getToken(HiveSql.T_NONE, 0); }; Non_reserved_wordsContext.prototype.T_NOT = function() { - return this.getToken(HiveSqlParser.T_NOT, 0); + return this.getToken(HiveSql.T_NOT, 0); }; Non_reserved_wordsContext.prototype.T_NOTFOUND = function() { - return this.getToken(HiveSqlParser.T_NOTFOUND, 0); + return this.getToken(HiveSql.T_NOTFOUND, 0); }; Non_reserved_wordsContext.prototype.T_NUMERIC = function() { - return this.getToken(HiveSqlParser.T_NUMERIC, 0); + return this.getToken(HiveSql.T_NUMERIC, 0); }; Non_reserved_wordsContext.prototype.T_NUMBER = function() { - return this.getToken(HiveSqlParser.T_NUMBER, 0); + return this.getToken(HiveSql.T_NUMBER, 0); }; Non_reserved_wordsContext.prototype.T_OBJECT = function() { - return this.getToken(HiveSqlParser.T_OBJECT, 0); + return this.getToken(HiveSql.T_OBJECT, 0); }; Non_reserved_wordsContext.prototype.T_OFF = function() { - return this.getToken(HiveSqlParser.T_OFF, 0); + return this.getToken(HiveSql.T_OFF, 0); }; Non_reserved_wordsContext.prototype.T_ON = function() { - return this.getToken(HiveSqlParser.T_ON, 0); + return this.getToken(HiveSql.T_ON, 0); }; Non_reserved_wordsContext.prototype.T_ONLY = function() { - return this.getToken(HiveSqlParser.T_ONLY, 0); + return this.getToken(HiveSql.T_ONLY, 0); }; Non_reserved_wordsContext.prototype.T_OPEN = function() { - return this.getToken(HiveSqlParser.T_OPEN, 0); + return this.getToken(HiveSql.T_OPEN, 0); }; Non_reserved_wordsContext.prototype.T_OR = function() { - return this.getToken(HiveSqlParser.T_OR, 0); + return this.getToken(HiveSql.T_OR, 0); }; Non_reserved_wordsContext.prototype.T_ORDER = function() { - return this.getToken(HiveSqlParser.T_ORDER, 0); + return this.getToken(HiveSql.T_ORDER, 0); }; Non_reserved_wordsContext.prototype.T_OUT = function() { - return this.getToken(HiveSqlParser.T_OUT, 0); + return this.getToken(HiveSql.T_OUT, 0); }; Non_reserved_wordsContext.prototype.T_OUTER = function() { - return this.getToken(HiveSqlParser.T_OUTER, 0); + return this.getToken(HiveSql.T_OUTER, 0); }; Non_reserved_wordsContext.prototype.T_OVER = function() { - return this.getToken(HiveSqlParser.T_OVER, 0); + return this.getToken(HiveSql.T_OVER, 0); }; Non_reserved_wordsContext.prototype.T_OVERWRITE = function() { - return this.getToken(HiveSqlParser.T_OVERWRITE, 0); + return this.getToken(HiveSql.T_OVERWRITE, 0); }; Non_reserved_wordsContext.prototype.T_OWNER = function() { - return this.getToken(HiveSqlParser.T_OWNER, 0); + return this.getToken(HiveSql.T_OWNER, 0); }; Non_reserved_wordsContext.prototype.T_PACKAGE = function() { - return this.getToken(HiveSqlParser.T_PACKAGE, 0); + return this.getToken(HiveSql.T_PACKAGE, 0); }; Non_reserved_wordsContext.prototype.T_PART_COUNT = function() { - return this.getToken(HiveSqlParser.T_PART_COUNT, 0); + return this.getToken(HiveSql.T_PART_COUNT, 0); }; Non_reserved_wordsContext.prototype.T_PART_LOC = function() { - return this.getToken(HiveSqlParser.T_PART_LOC, 0); + return this.getToken(HiveSql.T_PART_LOC, 0); }; Non_reserved_wordsContext.prototype.T_PARTITION = function() { - return this.getToken(HiveSqlParser.T_PARTITION, 0); + return this.getToken(HiveSql.T_PARTITION, 0); }; Non_reserved_wordsContext.prototype.T_PCTFREE = function() { - return this.getToken(HiveSqlParser.T_PCTFREE, 0); + return this.getToken(HiveSql.T_PCTFREE, 0); }; Non_reserved_wordsContext.prototype.T_PCTUSED = function() { - return this.getToken(HiveSqlParser.T_PCTUSED, 0); + return this.getToken(HiveSql.T_PCTUSED, 0); }; Non_reserved_wordsContext.prototype.T_PRECISION = function() { - return this.getToken(HiveSqlParser.T_PRECISION, 0); + return this.getToken(HiveSql.T_PRECISION, 0); }; Non_reserved_wordsContext.prototype.T_PRESERVE = function() { - return this.getToken(HiveSqlParser.T_PRESERVE, 0); + return this.getToken(HiveSql.T_PRESERVE, 0); }; Non_reserved_wordsContext.prototype.T_PRIMARY = function() { - return this.getToken(HiveSqlParser.T_PRIMARY, 0); + return this.getToken(HiveSql.T_PRIMARY, 0); }; Non_reserved_wordsContext.prototype.T_PRINT = function() { - return this.getToken(HiveSqlParser.T_PRINT, 0); + return this.getToken(HiveSql.T_PRINT, 0); }; Non_reserved_wordsContext.prototype.T_PROC = function() { - return this.getToken(HiveSqlParser.T_PROC, 0); + return this.getToken(HiveSql.T_PROC, 0); }; Non_reserved_wordsContext.prototype.T_PROCEDURE = function() { - return this.getToken(HiveSqlParser.T_PROCEDURE, 0); + return this.getToken(HiveSql.T_PROCEDURE, 0); }; Non_reserved_wordsContext.prototype.T_PWD = function() { - return this.getToken(HiveSqlParser.T_PWD, 0); + return this.getToken(HiveSql.T_PWD, 0); }; Non_reserved_wordsContext.prototype.T_QUALIFY = function() { - return this.getToken(HiveSqlParser.T_QUALIFY, 0); + return this.getToken(HiveSql.T_QUALIFY, 0); }; Non_reserved_wordsContext.prototype.T_QUERY_BAND = function() { - return this.getToken(HiveSqlParser.T_QUERY_BAND, 0); + return this.getToken(HiveSql.T_QUERY_BAND, 0); }; Non_reserved_wordsContext.prototype.T_QUIT = function() { - return this.getToken(HiveSqlParser.T_QUIT, 0); + return this.getToken(HiveSql.T_QUIT, 0); }; Non_reserved_wordsContext.prototype.T_QUOTED_IDENTIFIER = function() { - return this.getToken(HiveSqlParser.T_QUOTED_IDENTIFIER, 0); + return this.getToken(HiveSql.T_QUOTED_IDENTIFIER, 0); }; Non_reserved_wordsContext.prototype.T_RAISE = function() { - return this.getToken(HiveSqlParser.T_RAISE, 0); + return this.getToken(HiveSql.T_RAISE, 0); }; Non_reserved_wordsContext.prototype.T_RANK = function() { - return this.getToken(HiveSqlParser.T_RANK, 0); + return this.getToken(HiveSql.T_RANK, 0); }; Non_reserved_wordsContext.prototype.T_REAL = function() { - return this.getToken(HiveSqlParser.T_REAL, 0); + return this.getToken(HiveSql.T_REAL, 0); }; Non_reserved_wordsContext.prototype.T_REFERENCES = function() { - return this.getToken(HiveSqlParser.T_REFERENCES, 0); + return this.getToken(HiveSql.T_REFERENCES, 0); }; Non_reserved_wordsContext.prototype.T_REGEXP = function() { - return this.getToken(HiveSqlParser.T_REGEXP, 0); + return this.getToken(HiveSql.T_REGEXP, 0); }; Non_reserved_wordsContext.prototype.T_RR = function() { - return this.getToken(HiveSqlParser.T_RR, 0); + return this.getToken(HiveSql.T_RR, 0); }; Non_reserved_wordsContext.prototype.T_REPLACE = function() { - return this.getToken(HiveSqlParser.T_REPLACE, 0); + return this.getToken(HiveSql.T_REPLACE, 0); }; Non_reserved_wordsContext.prototype.T_RESIGNAL = function() { - return this.getToken(HiveSqlParser.T_RESIGNAL, 0); + return this.getToken(HiveSql.T_RESIGNAL, 0); }; Non_reserved_wordsContext.prototype.T_RESTRICT = function() { - return this.getToken(HiveSqlParser.T_RESTRICT, 0); + return this.getToken(HiveSql.T_RESTRICT, 0); }; Non_reserved_wordsContext.prototype.T_RESULT = function() { - return this.getToken(HiveSqlParser.T_RESULT, 0); + return this.getToken(HiveSql.T_RESULT, 0); }; Non_reserved_wordsContext.prototype.T_RESULT_SET_LOCATOR = function() { - return this.getToken(HiveSqlParser.T_RESULT_SET_LOCATOR, 0); + return this.getToken(HiveSql.T_RESULT_SET_LOCATOR, 0); }; Non_reserved_wordsContext.prototype.T_RETURN = function() { - return this.getToken(HiveSqlParser.T_RETURN, 0); + return this.getToken(HiveSql.T_RETURN, 0); }; Non_reserved_wordsContext.prototype.T_RETURNS = function() { - return this.getToken(HiveSqlParser.T_RETURNS, 0); + return this.getToken(HiveSql.T_RETURNS, 0); }; Non_reserved_wordsContext.prototype.T_REVERSE = function() { - return this.getToken(HiveSqlParser.T_REVERSE, 0); + return this.getToken(HiveSql.T_REVERSE, 0); }; Non_reserved_wordsContext.prototype.T_RIGHT = function() { - return this.getToken(HiveSqlParser.T_RIGHT, 0); + return this.getToken(HiveSql.T_RIGHT, 0); }; Non_reserved_wordsContext.prototype.T_RLIKE = function() { - return this.getToken(HiveSqlParser.T_RLIKE, 0); + return this.getToken(HiveSql.T_RLIKE, 0); }; Non_reserved_wordsContext.prototype.T_RS = function() { - return this.getToken(HiveSqlParser.T_RS, 0); + return this.getToken(HiveSql.T_RS, 0); }; Non_reserved_wordsContext.prototype.T_ROLE = function() { - return this.getToken(HiveSqlParser.T_ROLE, 0); + return this.getToken(HiveSql.T_ROLE, 0); }; Non_reserved_wordsContext.prototype.T_ROLLBACK = function() { - return this.getToken(HiveSqlParser.T_ROLLBACK, 0); + return this.getToken(HiveSql.T_ROLLBACK, 0); }; Non_reserved_wordsContext.prototype.T_ROW = function() { - return this.getToken(HiveSqlParser.T_ROW, 0); + return this.getToken(HiveSql.T_ROW, 0); }; Non_reserved_wordsContext.prototype.T_ROWS = function() { - return this.getToken(HiveSqlParser.T_ROWS, 0); + return this.getToken(HiveSql.T_ROWS, 0); }; Non_reserved_wordsContext.prototype.T_ROW_COUNT = function() { - return this.getToken(HiveSqlParser.T_ROW_COUNT, 0); + return this.getToken(HiveSql.T_ROW_COUNT, 0); }; Non_reserved_wordsContext.prototype.T_ROW_NUMBER = function() { - return this.getToken(HiveSqlParser.T_ROW_NUMBER, 0); + return this.getToken(HiveSql.T_ROW_NUMBER, 0); }; Non_reserved_wordsContext.prototype.T_SCHEMA = function() { - return this.getToken(HiveSqlParser.T_SCHEMA, 0); + return this.getToken(HiveSql.T_SCHEMA, 0); }; Non_reserved_wordsContext.prototype.T_SECOND = function() { - return this.getToken(HiveSqlParser.T_SECOND, 0); + return this.getToken(HiveSql.T_SECOND, 0); }; Non_reserved_wordsContext.prototype.T_SECONDS = function() { - return this.getToken(HiveSqlParser.T_SECONDS, 0); + return this.getToken(HiveSql.T_SECONDS, 0); }; Non_reserved_wordsContext.prototype.T_SECURITY = function() { - return this.getToken(HiveSqlParser.T_SECURITY, 0); + return this.getToken(HiveSql.T_SECURITY, 0); }; Non_reserved_wordsContext.prototype.T_SEGMENT = function() { - return this.getToken(HiveSqlParser.T_SEGMENT, 0); + return this.getToken(HiveSql.T_SEGMENT, 0); }; Non_reserved_wordsContext.prototype.T_SEL = function() { - return this.getToken(HiveSqlParser.T_SEL, 0); + return this.getToken(HiveSql.T_SEL, 0); }; Non_reserved_wordsContext.prototype.T_SELECT = function() { - return this.getToken(HiveSqlParser.T_SELECT, 0); + return this.getToken(HiveSql.T_SELECT, 0); }; Non_reserved_wordsContext.prototype.T_SESSION = function() { - return this.getToken(HiveSqlParser.T_SESSION, 0); + return this.getToken(HiveSql.T_SESSION, 0); }; Non_reserved_wordsContext.prototype.T_SESSIONS = function() { - return this.getToken(HiveSqlParser.T_SESSIONS, 0); + return this.getToken(HiveSql.T_SESSIONS, 0); }; Non_reserved_wordsContext.prototype.T_SET = function() { - return this.getToken(HiveSqlParser.T_SET, 0); + return this.getToken(HiveSql.T_SET, 0); }; Non_reserved_wordsContext.prototype.T_SETS = function() { - return this.getToken(HiveSqlParser.T_SETS, 0); + return this.getToken(HiveSql.T_SETS, 0); }; Non_reserved_wordsContext.prototype.T_SHARE = function() { - return this.getToken(HiveSqlParser.T_SHARE, 0); + return this.getToken(HiveSql.T_SHARE, 0); }; Non_reserved_wordsContext.prototype.T_SIGNAL = function() { - return this.getToken(HiveSqlParser.T_SIGNAL, 0); + return this.getToken(HiveSql.T_SIGNAL, 0); }; Non_reserved_wordsContext.prototype.T_SIMPLE_DOUBLE = function() { - return this.getToken(HiveSqlParser.T_SIMPLE_DOUBLE, 0); + return this.getToken(HiveSql.T_SIMPLE_DOUBLE, 0); }; Non_reserved_wordsContext.prototype.T_SIMPLE_FLOAT = function() { - return this.getToken(HiveSqlParser.T_SIMPLE_FLOAT, 0); + return this.getToken(HiveSql.T_SIMPLE_FLOAT, 0); }; Non_reserved_wordsContext.prototype.T_SMALLDATETIME = function() { - return this.getToken(HiveSqlParser.T_SMALLDATETIME, 0); + return this.getToken(HiveSql.T_SMALLDATETIME, 0); }; Non_reserved_wordsContext.prototype.T_SMALLINT = function() { - return this.getToken(HiveSqlParser.T_SMALLINT, 0); + return this.getToken(HiveSql.T_SMALLINT, 0); }; Non_reserved_wordsContext.prototype.T_SQL = function() { - return this.getToken(HiveSqlParser.T_SQL, 0); + return this.getToken(HiveSql.T_SQL, 0); }; Non_reserved_wordsContext.prototype.T_SQLEXCEPTION = function() { - return this.getToken(HiveSqlParser.T_SQLEXCEPTION, 0); + return this.getToken(HiveSql.T_SQLEXCEPTION, 0); }; Non_reserved_wordsContext.prototype.T_SQLINSERT = function() { - return this.getToken(HiveSqlParser.T_SQLINSERT, 0); + return this.getToken(HiveSql.T_SQLINSERT, 0); }; Non_reserved_wordsContext.prototype.T_SQLSTATE = function() { - return this.getToken(HiveSqlParser.T_SQLSTATE, 0); + return this.getToken(HiveSql.T_SQLSTATE, 0); }; Non_reserved_wordsContext.prototype.T_SQLWARNING = function() { - return this.getToken(HiveSqlParser.T_SQLWARNING, 0); + return this.getToken(HiveSql.T_SQLWARNING, 0); }; Non_reserved_wordsContext.prototype.T_STATS = function() { - return this.getToken(HiveSqlParser.T_STATS, 0); + return this.getToken(HiveSql.T_STATS, 0); }; Non_reserved_wordsContext.prototype.T_STATISTICS = function() { - return this.getToken(HiveSqlParser.T_STATISTICS, 0); + return this.getToken(HiveSql.T_STATISTICS, 0); }; Non_reserved_wordsContext.prototype.T_STEP = function() { - return this.getToken(HiveSqlParser.T_STEP, 0); + return this.getToken(HiveSql.T_STEP, 0); }; Non_reserved_wordsContext.prototype.T_STDEV = function() { - return this.getToken(HiveSqlParser.T_STDEV, 0); + return this.getToken(HiveSql.T_STDEV, 0); }; Non_reserved_wordsContext.prototype.T_STORAGE = function() { - return this.getToken(HiveSqlParser.T_STORAGE, 0); + return this.getToken(HiveSql.T_STORAGE, 0); }; Non_reserved_wordsContext.prototype.T_STORED = function() { - return this.getToken(HiveSqlParser.T_STORED, 0); + return this.getToken(HiveSql.T_STORED, 0); }; Non_reserved_wordsContext.prototype.T_STRING = function() { - return this.getToken(HiveSqlParser.T_STRING, 0); + return this.getToken(HiveSql.T_STRING, 0); }; Non_reserved_wordsContext.prototype.T_SUBDIR = function() { - return this.getToken(HiveSqlParser.T_SUBDIR, 0); + return this.getToken(HiveSql.T_SUBDIR, 0); }; Non_reserved_wordsContext.prototype.T_SUBSTRING = function() { - return this.getToken(HiveSqlParser.T_SUBSTRING, 0); + return this.getToken(HiveSql.T_SUBSTRING, 0); }; Non_reserved_wordsContext.prototype.T_SUM = function() { - return this.getToken(HiveSqlParser.T_SUM, 0); + return this.getToken(HiveSql.T_SUM, 0); }; Non_reserved_wordsContext.prototype.T_SUMMARY = function() { - return this.getToken(HiveSqlParser.T_SUMMARY, 0); + return this.getToken(HiveSql.T_SUMMARY, 0); }; Non_reserved_wordsContext.prototype.T_SYSDATE = function() { - return this.getToken(HiveSqlParser.T_SYSDATE, 0); + return this.getToken(HiveSql.T_SYSDATE, 0); }; Non_reserved_wordsContext.prototype.T_SYS_REFCURSOR = function() { - return this.getToken(HiveSqlParser.T_SYS_REFCURSOR, 0); + return this.getToken(HiveSql.T_SYS_REFCURSOR, 0); }; Non_reserved_wordsContext.prototype.T_TABLE = function() { - return this.getToken(HiveSqlParser.T_TABLE, 0); + return this.getToken(HiveSql.T_TABLE, 0); }; Non_reserved_wordsContext.prototype.T_TABLESPACE = function() { - return this.getToken(HiveSqlParser.T_TABLESPACE, 0); + return this.getToken(HiveSql.T_TABLESPACE, 0); }; Non_reserved_wordsContext.prototype.T_TEMPORARY = function() { - return this.getToken(HiveSqlParser.T_TEMPORARY, 0); + return this.getToken(HiveSql.T_TEMPORARY, 0); }; Non_reserved_wordsContext.prototype.T_TERMINATED = function() { - return this.getToken(HiveSqlParser.T_TERMINATED, 0); + return this.getToken(HiveSql.T_TERMINATED, 0); }; Non_reserved_wordsContext.prototype.T_TEXTIMAGE_ON = function() { - return this.getToken(HiveSqlParser.T_TEXTIMAGE_ON, 0); + return this.getToken(HiveSql.T_TEXTIMAGE_ON, 0); }; Non_reserved_wordsContext.prototype.T_THEN = function() { - return this.getToken(HiveSqlParser.T_THEN, 0); + return this.getToken(HiveSql.T_THEN, 0); }; Non_reserved_wordsContext.prototype.T_TIMESTAMP = function() { - return this.getToken(HiveSqlParser.T_TIMESTAMP, 0); + return this.getToken(HiveSql.T_TIMESTAMP, 0); }; Non_reserved_wordsContext.prototype.T_TITLE = function() { - return this.getToken(HiveSqlParser.T_TITLE, 0); + return this.getToken(HiveSql.T_TITLE, 0); }; Non_reserved_wordsContext.prototype.T_TO = function() { - return this.getToken(HiveSqlParser.T_TO, 0); + return this.getToken(HiveSql.T_TO, 0); }; Non_reserved_wordsContext.prototype.T_TOP = function() { - return this.getToken(HiveSqlParser.T_TOP, 0); + return this.getToken(HiveSql.T_TOP, 0); }; Non_reserved_wordsContext.prototype.T_TRANSACTION = function() { - return this.getToken(HiveSqlParser.T_TRANSACTION, 0); + return this.getToken(HiveSql.T_TRANSACTION, 0); }; Non_reserved_wordsContext.prototype.T_TRIM = function() { - return this.getToken(HiveSqlParser.T_TRIM, 0); + return this.getToken(HiveSql.T_TRIM, 0); }; Non_reserved_wordsContext.prototype.T_TRUE = function() { - return this.getToken(HiveSqlParser.T_TRUE, 0); + return this.getToken(HiveSql.T_TRUE, 0); }; Non_reserved_wordsContext.prototype.T_TRUNCATE = function() { - return this.getToken(HiveSqlParser.T_TRUNCATE, 0); + return this.getToken(HiveSql.T_TRUNCATE, 0); }; Non_reserved_wordsContext.prototype.T_UNIQUE = function() { - return this.getToken(HiveSqlParser.T_UNIQUE, 0); + return this.getToken(HiveSql.T_UNIQUE, 0); }; Non_reserved_wordsContext.prototype.T_UPDATE = function() { - return this.getToken(HiveSqlParser.T_UPDATE, 0); + return this.getToken(HiveSql.T_UPDATE, 0); }; Non_reserved_wordsContext.prototype.T_UR = function() { - return this.getToken(HiveSqlParser.T_UR, 0); + return this.getToken(HiveSql.T_UR, 0); }; Non_reserved_wordsContext.prototype.T_USE = function() { - return this.getToken(HiveSqlParser.T_USE, 0); + return this.getToken(HiveSql.T_USE, 0); }; Non_reserved_wordsContext.prototype.T_USER = function() { - return this.getToken(HiveSqlParser.T_USER, 0); + return this.getToken(HiveSql.T_USER, 0); }; Non_reserved_wordsContext.prototype.T_USING = function() { - return this.getToken(HiveSqlParser.T_USING, 0); + return this.getToken(HiveSql.T_USING, 0); }; Non_reserved_wordsContext.prototype.T_VALUE = function() { - return this.getToken(HiveSqlParser.T_VALUE, 0); + return this.getToken(HiveSql.T_VALUE, 0); }; Non_reserved_wordsContext.prototype.T_VALUES = function() { - return this.getToken(HiveSqlParser.T_VALUES, 0); + return this.getToken(HiveSql.T_VALUES, 0); }; Non_reserved_wordsContext.prototype.T_VAR = function() { - return this.getToken(HiveSqlParser.T_VAR, 0); + return this.getToken(HiveSql.T_VAR, 0); }; Non_reserved_wordsContext.prototype.T_VARCHAR = function() { - return this.getToken(HiveSqlParser.T_VARCHAR, 0); + return this.getToken(HiveSql.T_VARCHAR, 0); }; Non_reserved_wordsContext.prototype.T_VARCHAR2 = function() { - return this.getToken(HiveSqlParser.T_VARCHAR2, 0); + return this.getToken(HiveSql.T_VARCHAR2, 0); }; Non_reserved_wordsContext.prototype.T_VARYING = function() { - return this.getToken(HiveSqlParser.T_VARYING, 0); + return this.getToken(HiveSql.T_VARYING, 0); }; Non_reserved_wordsContext.prototype.T_VARIANCE = function() { - return this.getToken(HiveSqlParser.T_VARIANCE, 0); + return this.getToken(HiveSql.T_VARIANCE, 0); }; Non_reserved_wordsContext.prototype.T_VOLATILE = function() { - return this.getToken(HiveSqlParser.T_VOLATILE, 0); + return this.getToken(HiveSql.T_VOLATILE, 0); }; Non_reserved_wordsContext.prototype.T_WHILE = function() { - return this.getToken(HiveSqlParser.T_WHILE, 0); + return this.getToken(HiveSql.T_WHILE, 0); }; Non_reserved_wordsContext.prototype.T_WITH = function() { - return this.getToken(HiveSqlParser.T_WITH, 0); + return this.getToken(HiveSql.T_WITH, 0); }; Non_reserved_wordsContext.prototype.T_WITHOUT = function() { - return this.getToken(HiveSqlParser.T_WITHOUT, 0); + return this.getToken(HiveSql.T_WITHOUT, 0); }; Non_reserved_wordsContext.prototype.T_WORK = function() { - return this.getToken(HiveSqlParser.T_WORK, 0); + return this.getToken(HiveSql.T_WORK, 0); }; Non_reserved_wordsContext.prototype.T_XACT_ABORT = function() { - return this.getToken(HiveSqlParser.T_XACT_ABORT, 0); + return this.getToken(HiveSql.T_XACT_ABORT, 0); }; Non_reserved_wordsContext.prototype.T_XML = function() { - return this.getToken(HiveSqlParser.T_XML, 0); + return this.getToken(HiveSql.T_XML, 0); }; Non_reserved_wordsContext.prototype.T_YES = function() { - return this.getToken(HiveSqlParser.T_YES, 0); + return this.getToken(HiveSql.T_YES, 0); }; Non_reserved_wordsContext.prototype.enterRule = function(listener) { @@ -37595,18 +37695,18 @@ Non_reserved_wordsContext.prototype.accept = function(visitor) { -HiveSqlParser.Non_reserved_wordsContext = Non_reserved_wordsContext; +HiveSql.Non_reserved_wordsContext = Non_reserved_wordsContext; -HiveSqlParser.prototype.non_reserved_words = function() { +HiveSql.prototype.non_reserved_words = function() { var localctx = new Non_reserved_wordsContext(this, this._ctx, this.state); - this.enterRule(localctx, 450, HiveSqlParser.RULE_non_reserved_words); + this.enterRule(localctx, 450, HiveSql.RULE_non_reserved_words); var _la = 0; // Token type try { this.enterOuterAlt(localctx, 1); - this.state = 3340; + this.state = 3334; _la = this._input.LA(1); - if(!((((_la) & ~0x1f) == 0 && ((1 << _la) & ((1 << HiveSqlParser.T_GO) | (1 << HiveSqlParser.T_BEGIN) | (1 << HiveSqlParser.T_EXCEPTION) | (1 << HiveSqlParser.T_THEN) | (1 << HiveSqlParser.T_SET) | (1 << HiveSqlParser.T_ALLOCATE) | (1 << HiveSqlParser.T_CURSOR) | (1 << HiveSqlParser.T_FOR) | (1 << HiveSqlParser.T_RESULT) | (1 << HiveSqlParser.T_PROCEDURE) | (1 << HiveSqlParser.T_ASSOCIATE))) !== 0) || ((((_la - 32)) & ~0x1f) == 0 && ((1 << (_la - 32)) & ((1 << (HiveSqlParser.T_LOCATOR - 32)) | (1 << (HiveSqlParser.T_LOCATORS - 32)) | (1 << (HiveSqlParser.T_WITH - 32)) | (1 << (HiveSqlParser.T_TRANSACTION - 32)) | (1 << (HiveSqlParser.T_BREAK - 32)) | (1 << (HiveSqlParser.T_CALL - 32)) | (1 << (HiveSqlParser.T_DECLARE - 32)) | (1 << (HiveSqlParser.T_AS - 32)) | (1 << (HiveSqlParser.T_CONSTANT - 32)) | (1 << (HiveSqlParser.T_CONDITION - 32)) | (1 << (HiveSqlParser.T_IS - 32)) | (1 << (HiveSqlParser.T_RETURN - 32)) | (1 << (HiveSqlParser.T_ONLY - 32)) | (1 << (HiveSqlParser.T_TO - 32)) | (1 << (HiveSqlParser.T_CALLER - 32)) | (1 << (HiveSqlParser.T_CLIENT - 32)) | (1 << (HiveSqlParser.T_WITHOUT - 32)) | (1 << (HiveSqlParser.T_CONTINUE - 32)) | (1 << (HiveSqlParser.T_EXIT - 32)) | (1 << (HiveSqlParser.T_HANDLER - 32)) | (1 << (HiveSqlParser.T_SQLEXCEPTION - 32)) | (1 << (HiveSqlParser.T_SQLWARNING - 32)) | (1 << (HiveSqlParser.T_NOT - 32)) | (1 << (HiveSqlParser.T_FOUND - 32)) | (1 << (HiveSqlParser.T_GLOBAL - 32)) | (1 << (HiveSqlParser.T_TEMPORARY - 32)) | (1 << (HiveSqlParser.T_TABLE - 32)) | (1 << (HiveSqlParser.T_CREATE - 32)) | (1 << (HiveSqlParser.T_IF - 32)) | (1 << (HiveSqlParser.T_EXISTS - 32)) | (1 << (HiveSqlParser.T_LOCAL - 32)) | (1 << (HiveSqlParser.T_MULTISET - 32)))) !== 0) || ((((_la - 64)) & ~0x1f) == 0 && ((1 << (_la - 64)) & ((1 << (HiveSqlParser.T_VOLATILE - 64)) | (1 << (HiveSqlParser.T_LIKE - 64)) | (1 << (HiveSqlParser.T_CONSTRAINT - 64)) | (1 << (HiveSqlParser.T_PRIMARY - 64)) | (1 << (HiveSqlParser.T_KEY - 64)) | (1 << (HiveSqlParser.T_UNIQUE - 64)) | (1 << (HiveSqlParser.T_REFERENCES - 64)) | (1 << (HiveSqlParser.T_IDENTITY - 64)) | (1 << (HiveSqlParser.T_AUTO_INCREMENT - 64)) | (1 << (HiveSqlParser.T_ENABLE - 64)) | (1 << (HiveSqlParser.T_CLUSTERED - 64)) | (1 << (HiveSqlParser.T_ASC - 64)) | (1 << (HiveSqlParser.T_DESC - 64)) | (1 << (HiveSqlParser.T_FOREIGN - 64)) | (1 << (HiveSqlParser.T_ON - 64)) | (1 << (HiveSqlParser.T_UPDATE - 64)) | (1 << (HiveSqlParser.T_DELETE - 64)) | (1 << (HiveSqlParser.T_NO - 64)) | (1 << (HiveSqlParser.T_ACTION - 64)) | (1 << (HiveSqlParser.T_RESTRICT - 64)) | (1 << (HiveSqlParser.T_DEFAULT - 64)) | (1 << (HiveSqlParser.T_CASCADE - 64)) | (1 << (HiveSqlParser.T_LOG - 64)) | (1 << (HiveSqlParser.T_FALLBACK - 64)) | (1 << (HiveSqlParser.T_COMMIT - 64)) | (1 << (HiveSqlParser.T_PRESERVE - 64)) | (1 << (HiveSqlParser.T_ROWS - 64)) | (1 << (HiveSqlParser.T_SEGMENT - 64)) | (1 << (HiveSqlParser.T_CREATION - 64)) | (1 << (HiveSqlParser.T_IMMEDIATE - 64)) | (1 << (HiveSqlParser.T_DEFERRED - 64)))) !== 0) || ((((_la - 96)) & ~0x1f) == 0 && ((1 << (_la - 96)) & ((1 << (HiveSqlParser.T_PCTFREE - 96)) | (1 << (HiveSqlParser.T_PCTUSED - 96)) | (1 << (HiveSqlParser.T_INITRANS - 96)) | (1 << (HiveSqlParser.T_MAXTRANS - 96)) | (1 << (HiveSqlParser.T_NOCOMPRESS - 96)) | (1 << (HiveSqlParser.T_LOGGING - 96)) | (1 << (HiveSqlParser.T_NOLOGGING - 96)) | (1 << (HiveSqlParser.T_STORAGE - 96)) | (1 << (HiveSqlParser.T_TABLESPACE - 96)) | (1 << (HiveSqlParser.T_INDEX - 96)) | (1 << (HiveSqlParser.T_IN - 96)) | (1 << (HiveSqlParser.T_REPLACE - 96)) | (1 << (HiveSqlParser.T_DISTRIBUTE - 96)) | (1 << (HiveSqlParser.T_BY - 96)) | (1 << (HiveSqlParser.T_HASH - 96)) | (1 << (HiveSqlParser.T_LOGGED - 96)) | (1 << (HiveSqlParser.T_COMPRESS - 96)) | (1 << (HiveSqlParser.T_YES - 96)) | (1 << (HiveSqlParser.T_DEFINITION - 96)) | (1 << (HiveSqlParser.T_DROP - 96)) | (1 << (HiveSqlParser.T_DATA - 96)) | (1 << (HiveSqlParser.T_STORED - 96)) | (1 << (HiveSqlParser.T_ROW - 96)) | (1 << (HiveSqlParser.T_FORMAT - 96)) | (1 << (HiveSqlParser.T_DELIMITED - 96)) | (1 << (HiveSqlParser.T_FIELDS - 96)) | (1 << (HiveSqlParser.T_TERMINATED - 96)) | (1 << (HiveSqlParser.T_ESCAPED - 96)) | (1 << (HiveSqlParser.T_COLLECTION - 96)) | (1 << (HiveSqlParser.T_ITEMS - 96)) | (1 << (HiveSqlParser.T_MAP - 96)) | (1 << (HiveSqlParser.T_KEYS - 96)))) !== 0) || ((((_la - 128)) & ~0x1f) == 0 && ((1 << (_la - 128)) & ((1 << (HiveSqlParser.T_LINES - 128)) | (1 << (HiveSqlParser.T_DEFINED - 128)) | (1 << (HiveSqlParser.T_TEXTIMAGE_ON - 128)) | (1 << (HiveSqlParser.T_COMMENT - 128)) | (1 << (HiveSqlParser.T_CHARACTER - 128)) | (1 << (HiveSqlParser.T_CHARSET - 128)) | (1 << (HiveSqlParser.T_ENGINE - 128)) | (1 << (HiveSqlParser.T_ALTER - 128)) | (1 << (HiveSqlParser.T_ADD2 - 128)) | (1 << (HiveSqlParser.T_CHAR - 128)) | (1 << (HiveSqlParser.T_BIGINT - 128)) | (1 << (HiveSqlParser.T_BINARY_DOUBLE - 128)) | (1 << (HiveSqlParser.T_BINARY_FLOAT - 128)) | (1 << (HiveSqlParser.T_BIT - 128)) | (1 << (HiveSqlParser.T_DATE - 128)) | (1 << (HiveSqlParser.T_DATETIME - 128)) | (1 << (HiveSqlParser.T_DEC - 128)) | (1 << (HiveSqlParser.T_DECIMAL - 128)) | (1 << (HiveSqlParser.T_DOUBLE - 128)) | (1 << (HiveSqlParser.T_PRECISION - 128)) | (1 << (HiveSqlParser.T_FLOAT - 128)) | (1 << (HiveSqlParser.T_INT - 128)) | (1 << (HiveSqlParser.T_INT2 - 128)) | (1 << (HiveSqlParser.T_INT4 - 128)) | (1 << (HiveSqlParser.T_INT8 - 128)) | (1 << (HiveSqlParser.T_INTEGER - 128)) | (1 << (HiveSqlParser.T_NCHAR - 128)) | (1 << (HiveSqlParser.T_NVARCHAR - 128)) | (1 << (HiveSqlParser.T_NUMBER - 128)) | (1 << (HiveSqlParser.T_NUMERIC - 128)))) !== 0) || ((((_la - 160)) & ~0x1f) == 0 && ((1 << (_la - 160)) & ((1 << (HiveSqlParser.T_REAL - 160)) | (1 << (HiveSqlParser.T_RESULT_SET_LOCATOR - 160)) | (1 << (HiveSqlParser.T_VARYING - 160)) | (1 << (HiveSqlParser.T_SIMPLE_FLOAT - 160)) | (1 << (HiveSqlParser.T_SIMPLE_DOUBLE - 160)) | (1 << (HiveSqlParser.T_SMALLINT - 160)) | (1 << (HiveSqlParser.T_SMALLDATETIME - 160)) | (1 << (HiveSqlParser.T_STRING - 160)) | (1 << (HiveSqlParser.T_SYS_REFCURSOR - 160)) | (1 << (HiveSqlParser.T_TIMESTAMP - 160)) | (1 << (HiveSqlParser.T_VARCHAR - 160)) | (1 << (HiveSqlParser.T_VARCHAR2 - 160)) | (1 << (HiveSqlParser.T_XML - 160)) | (1 << (HiveSqlParser.T_MAX - 160)) | (1 << (HiveSqlParser.T_BYTE - 160)) | (1 << (HiveSqlParser.T_CASESPECIFIC - 160)) | (1 << (HiveSqlParser.T_CS - 160)) | (1 << (HiveSqlParser.T_DATABASE - 160)) | (1 << (HiveSqlParser.T_SCHEMA - 160)) | (1 << (HiveSqlParser.T_LOCATION - 160)) | (1 << (HiveSqlParser.T_OR - 160)) | (1 << (HiveSqlParser.T_FUNCTION - 160)) | (1 << (HiveSqlParser.T_RETURNS - 160)) | (1 << (HiveSqlParser.T_PACKAGE - 160)) | (1 << (HiveSqlParser.T_PROC - 160)) | (1 << (HiveSqlParser.T_BODY - 160)) | (1 << (HiveSqlParser.T_OUT - 160)) | (1 << (HiveSqlParser.T_INOUT - 160)))) !== 0) || ((((_la - 192)) & ~0x1f) == 0 && ((1 << (_la - 192)) & ((1 << (HiveSqlParser.T_LANGUAGE - 192)) | (1 << (HiveSqlParser.T_SQL - 192)) | (1 << (HiveSqlParser.T_SECURITY - 192)) | (1 << (HiveSqlParser.T_CREATOR - 192)) | (1 << (HiveSqlParser.T_DEFINER - 192)) | (1 << (HiveSqlParser.T_INVOKER - 192)) | (1 << (HiveSqlParser.T_OWNER - 192)) | (1 << (HiveSqlParser.T_DYNAMIC - 192)) | (1 << (HiveSqlParser.T_SETS - 192)) | (1 << (HiveSqlParser.T_EXEC - 192)) | (1 << (HiveSqlParser.T_EXECUTE - 192)) | (1 << (HiveSqlParser.T_INTO - 192)) | (1 << (HiveSqlParser.T_INCLUDE - 192)) | (1 << (HiveSqlParser.T_INSERT - 192)) | (1 << (HiveSqlParser.T_OVERWRITE - 192)) | (1 << (HiveSqlParser.T_VALUES - 192)) | (1 << (HiveSqlParser.T_DIRECTORY - 192)) | (1 << (HiveSqlParser.T_GET - 192)) | (1 << (HiveSqlParser.T_DIAGNOSTICS - 192)) | (1 << (HiveSqlParser.T_MESSAGE_TEXT - 192)) | (1 << (HiveSqlParser.T_ROW_COUNT - 192)) | (1 << (HiveSqlParser.T_GRANT - 192)) | (1 << (HiveSqlParser.T_ROLE - 192)) | (1 << (HiveSqlParser.T_LEAVE - 192)) | (1 << (HiveSqlParser.T_OBJECT - 192)) | (1 << (HiveSqlParser.T_AT - 192)) | (1 << (HiveSqlParser.T_OPEN - 192)) | (1 << (HiveSqlParser.T_FETCH - 192)) | (1 << (HiveSqlParser.T_FROM - 192)))) !== 0) || ((((_la - 224)) & ~0x1f) == 0 && ((1 << (_la - 224)) & ((1 << (HiveSqlParser.T_COLLECT - 224)) | (1 << (HiveSqlParser.T_STATISTICS - 224)) | (1 << (HiveSqlParser.T_STATS - 224)) | (1 << (HiveSqlParser.T_COLUMN - 224)) | (1 << (HiveSqlParser.T_CLOSE - 224)) | (1 << (HiveSqlParser.T_CMP - 224)) | (1 << (HiveSqlParser.T_SUM - 224)) | (1 << (HiveSqlParser.T_COPY - 224)) | (1 << (HiveSqlParser.T_HDFS - 224)) | (1 << (HiveSqlParser.T_BATCHSIZE - 224)) | (1 << (HiveSqlParser.T_DELIMITER - 224)) | (1 << (HiveSqlParser.T_SQLINSERT - 224)) | (1 << (HiveSqlParser.T_IGNORE - 224)) | (1 << (HiveSqlParser.T_WORK - 224)) | (1 << (HiveSqlParser.T_PRINT - 224)) | (1 << (HiveSqlParser.T_QUIT - 224)) | (1 << (HiveSqlParser.T_RAISE - 224)) | (1 << (HiveSqlParser.T_RESIGNAL - 224)) | (1 << (HiveSqlParser.T_SQLSTATE - 224)) | (1 << (HiveSqlParser.T_VALUE - 224)) | (1 << (HiveSqlParser.T_ROLLBACK - 224)) | (1 << (HiveSqlParser.T_CURRENT - 224)) | (1 << (HiveSqlParser.T_CURRENT_SCHEMA - 224)) | (1 << (HiveSqlParser.T_ANSI_NULLS - 224)) | (1 << (HiveSqlParser.T_ANSI_PADDING - 224)) | (1 << (HiveSqlParser.T_NOCOUNT - 224)) | (1 << (HiveSqlParser.T_QUOTED_IDENTIFIER - 224)) | (1 << (HiveSqlParser.T_XACT_ABORT - 224)) | (1 << (HiveSqlParser.T_OFF - 224)) | (1 << (HiveSqlParser.T_QUERY_BAND - 224)) | (1 << (HiveSqlParser.T_NONE - 224)) | (1 << (HiveSqlParser.T_SESSION - 224)))) !== 0) || ((((_la - 256)) & ~0x1f) == 0 && ((1 << (_la - 256)) & ((1 << (HiveSqlParser.T_SIGNAL - 256)) | (1 << (HiveSqlParser.T_SUMMARY - 256)) | (1 << (HiveSqlParser.T_TOP - 256)) | (1 << (HiveSqlParser.T_LIMIT - 256)) | (1 << (HiveSqlParser.T_TRUNCATE - 256)) | (1 << (HiveSqlParser.T_USE - 256)) | (1 << (HiveSqlParser.T_WHILE - 256)) | (1 << (HiveSqlParser.T_DO - 256)) | (1 << (HiveSqlParser.T_LOOP - 256)) | (1 << (HiveSqlParser.T_REVERSE - 256)) | (1 << (HiveSqlParser.T_STEP - 256)) | (1 << (HiveSqlParser.T_USING - 256)) | (1 << (HiveSqlParser.T_ALL - 256)) | (1 << (HiveSqlParser.T_EXCEPT - 256)) | (1 << (HiveSqlParser.T_INTERSECT - 256)) | (1 << (HiveSqlParser.T_SELECT - 256)) | (1 << (HiveSqlParser.T_SEL - 256)) | (1 << (HiveSqlParser.T_DISTINCT - 256)) | (1 << (HiveSqlParser.T_TITLE - 256)) | (1 << (HiveSqlParser.T_INNER - 256)) | (1 << (HiveSqlParser.T_JOIN - 256)) | (1 << (HiveSqlParser.T_LEFT - 256)) | (1 << (HiveSqlParser.T_RIGHT - 256)) | (1 << (HiveSqlParser.T_FULL - 256)) | (1 << (HiveSqlParser.T_OUTER - 256)))) !== 0) || ((((_la - 288)) & ~0x1f) == 0 && ((1 << (_la - 288)) & ((1 << (HiveSqlParser.T_GROUP - 288)) | (1 << (HiveSqlParser.T_HAVING - 288)) | (1 << (HiveSqlParser.T_QUALIFY - 288)) | (1 << (HiveSqlParser.T_ORDER - 288)) | (1 << (HiveSqlParser.T_RR - 288)) | (1 << (HiveSqlParser.T_RS - 288)) | (1 << (HiveSqlParser.T_UR - 288)) | (1 << (HiveSqlParser.T_AND - 288)) | (1 << (HiveSqlParser.T_KEEP - 288)) | (1 << (HiveSqlParser.T_EXCLUSIVE - 288)) | (1 << (HiveSqlParser.T_SHARE - 288)) | (1 << (HiveSqlParser.T_LOCKS - 288)) | (1 << (HiveSqlParser.T_MERGE - 288)) | (1 << (HiveSqlParser.T_MATCHED - 288)) | (1 << (HiveSqlParser.T_DESCRIBE - 288)) | (1 << (HiveSqlParser.T_BETWEEN - 288)) | (1 << (HiveSqlParser.T_RLIKE - 288)) | (1 << (HiveSqlParser.T_REGEXP - 288)) | (1 << (HiveSqlParser.T_INTERVAL - 288)) | (1 << (HiveSqlParser.T_DAY - 288)) | (1 << (HiveSqlParser.T_DAYS - 288)) | (1 << (HiveSqlParser.T_MICROSECOND - 288)) | (1 << (HiveSqlParser.T_MICROSECONDS - 288)))) !== 0) || ((((_la - 320)) & ~0x1f) == 0 && ((1 << (_la - 320)) & ((1 << (HiveSqlParser.T_SECOND - 320)) | (1 << (HiveSqlParser.T_SECONDS - 320)) | (1 << (HiveSqlParser.T_CONCAT - 320)) | (1 << (HiveSqlParser.T_CASE - 320)) | (1 << (HiveSqlParser.T_ISOPEN - 320)) | (1 << (HiveSqlParser.T_NOTFOUND - 320)) | (1 << (HiveSqlParser.T_AVG - 320)) | (1 << (HiveSqlParser.T_COUNT - 320)) | (1 << (HiveSqlParser.T_COUNT_BIG - 320)) | (1 << (HiveSqlParser.T_CUME_DIST - 320)) | (1 << (HiveSqlParser.T_DENSE_RANK - 320)) | (1 << (HiveSqlParser.T_FIRST_VALUE - 320)) | (1 << (HiveSqlParser.T_LAG - 320)) | (1 << (HiveSqlParser.T_LAST_VALUE - 320)) | (1 << (HiveSqlParser.T_LEAD - 320)) | (1 << (HiveSqlParser.T_MIN - 320)) | (1 << (HiveSqlParser.T_RANK - 320)) | (1 << (HiveSqlParser.T_ROW_NUMBER - 320)) | (1 << (HiveSqlParser.T_STDEV - 320)) | (1 << (HiveSqlParser.T_VAR - 320)) | (1 << (HiveSqlParser.T_VARIANCE - 320)) | (1 << (HiveSqlParser.T_OVER - 320)) | (1 << (HiveSqlParser.T_PARTITION - 320)) | (1 << (HiveSqlParser.T_ACTIVITY_COUNT - 320)) | (1 << (HiveSqlParser.T_CAST - 320)) | (1 << (HiveSqlParser.T_CURRENT_DATE - 320)) | (1 << (HiveSqlParser.T_CURRENT_TIMESTAMP - 320)) | (1 << (HiveSqlParser.T_CURRENT_USER - 320)) | (1 << (HiveSqlParser.T_USER - 320)))) !== 0) || ((((_la - 356)) & ~0x1f) == 0 && ((1 << (_la - 356)) & ((1 << (HiveSqlParser.T_PART_COUNT - 356)) | (1 << (HiveSqlParser.T_PART_LOC - 356)) | (1 << (HiveSqlParser.T_TRIM - 356)) | (1 << (HiveSqlParser.T_SUBSTRING - 356)) | (1 << (HiveSqlParser.T_SYSDATE - 356)) | (1 << (HiveSqlParser.T_HIVE - 356)) | (1 << (HiveSqlParser.T_HOST - 356)) | (1 << (HiveSqlParser.T_TRUE - 356)) | (1 << (HiveSqlParser.T_FALSE - 356)) | (1 << (HiveSqlParser.T_DIR - 356)) | (1 << (HiveSqlParser.T_FILE - 356)) | (1 << (HiveSqlParser.T_FILES - 356)) | (1 << (HiveSqlParser.T_NEW - 356)) | (1 << (HiveSqlParser.T_PWD - 356)) | (1 << (HiveSqlParser.T_SESSIONS - 356)) | (1 << (HiveSqlParser.T_SUBDIR - 356)))) !== 0))) { + if(!((((_la) & ~0x1f) == 0 && ((1 << _la) & ((1 << HiveSql.T_ACTION) | (1 << HiveSql.T_ADD2) | (1 << HiveSql.T_ALL) | (1 << HiveSql.T_ALLOCATE) | (1 << HiveSql.T_ALTER) | (1 << HiveSql.T_AND) | (1 << HiveSql.T_ANSI_NULLS) | (1 << HiveSql.T_ANSI_PADDING) | (1 << HiveSql.T_AS) | (1 << HiveSql.T_ASC) | (1 << HiveSql.T_ASSOCIATE) | (1 << HiveSql.T_AT) | (1 << HiveSql.T_AUTO_INCREMENT) | (1 << HiveSql.T_AVG) | (1 << HiveSql.T_BATCHSIZE) | (1 << HiveSql.T_BEGIN) | (1 << HiveSql.T_BETWEEN) | (1 << HiveSql.T_BIGINT) | (1 << HiveSql.T_BINARY_DOUBLE) | (1 << HiveSql.T_BINARY_FLOAT) | (1 << HiveSql.T_BIT) | (1 << HiveSql.T_BODY) | (1 << HiveSql.T_BREAK) | (1 << HiveSql.T_BY) | (1 << HiveSql.T_BYTE) | (1 << HiveSql.T_CALL) | (1 << HiveSql.T_CALLER) | (1 << HiveSql.T_CASCADE) | (1 << HiveSql.T_CASE) | (1 << HiveSql.T_CASESPECIFIC))) !== 0) || ((((_la - 32)) & ~0x1f) == 0 && ((1 << (_la - 32)) & ((1 << (HiveSql.T_CAST - 32)) | (1 << (HiveSql.T_CHAR - 32)) | (1 << (HiveSql.T_CHARACTER - 32)) | (1 << (HiveSql.T_CHARSET - 32)) | (1 << (HiveSql.T_CLIENT - 32)) | (1 << (HiveSql.T_CLOSE - 32)) | (1 << (HiveSql.T_CLUSTERED - 32)) | (1 << (HiveSql.T_CMP - 32)) | (1 << (HiveSql.T_COLLECT - 32)) | (1 << (HiveSql.T_COLLECTION - 32)) | (1 << (HiveSql.T_COLUMN - 32)) | (1 << (HiveSql.T_COMMENT - 32)) | (1 << (HiveSql.T_CONSTANT - 32)) | (1 << (HiveSql.T_COMMIT - 32)) | (1 << (HiveSql.T_COMPRESS - 32)) | (1 << (HiveSql.T_CONCAT - 32)) | (1 << (HiveSql.T_CONDITION - 32)) | (1 << (HiveSql.T_CONSTRAINT - 32)) | (1 << (HiveSql.T_CONTINUE - 32)) | (1 << (HiveSql.T_COPY - 32)) | (1 << (HiveSql.T_COUNT - 32)) | (1 << (HiveSql.T_COUNT_BIG - 32)) | (1 << (HiveSql.T_CREATE - 32)) | (1 << (HiveSql.T_CREATION - 32)) | (1 << (HiveSql.T_CREATOR - 32)) | (1 << (HiveSql.T_CS - 32)) | (1 << (HiveSql.T_CURRENT - 32)) | (1 << (HiveSql.T_CURRENT_SCHEMA - 32)) | (1 << (HiveSql.T_CURSOR - 32)) | (1 << (HiveSql.T_DATABASE - 32)) | (1 << (HiveSql.T_DATA - 32)) | (1 << (HiveSql.T_DATE - 32)))) !== 0) || ((((_la - 64)) & ~0x1f) == 0 && ((1 << (_la - 64)) & ((1 << (HiveSql.T_DATETIME - 64)) | (1 << (HiveSql.T_DAY - 64)) | (1 << (HiveSql.T_DAYS - 64)) | (1 << (HiveSql.T_DEC - 64)) | (1 << (HiveSql.T_DECIMAL - 64)) | (1 << (HiveSql.T_DECLARE - 64)) | (1 << (HiveSql.T_DEFAULT - 64)) | (1 << (HiveSql.T_DEFERRED - 64)) | (1 << (HiveSql.T_DEFINED - 64)) | (1 << (HiveSql.T_DEFINER - 64)) | (1 << (HiveSql.T_DEFINITION - 64)) | (1 << (HiveSql.T_DELETE - 64)) | (1 << (HiveSql.T_DELIMITED - 64)) | (1 << (HiveSql.T_DELIMITER - 64)) | (1 << (HiveSql.T_DESC - 64)) | (1 << (HiveSql.T_DESCRIBE - 64)) | (1 << (HiveSql.T_DIAGNOSTICS - 64)) | (1 << (HiveSql.T_DIR - 64)) | (1 << (HiveSql.T_DIRECTORY - 64)) | (1 << (HiveSql.T_DISTINCT - 64)) | (1 << (HiveSql.T_DISTRIBUTE - 64)) | (1 << (HiveSql.T_DO - 64)) | (1 << (HiveSql.T_DOUBLE - 64)) | (1 << (HiveSql.T_DROP - 64)) | (1 << (HiveSql.T_DYNAMIC - 64)) | (1 << (HiveSql.T_ENABLE - 64)) | (1 << (HiveSql.T_ENGINE - 64)) | (1 << (HiveSql.T_ESCAPED - 64)))) !== 0) || ((((_la - 96)) & ~0x1f) == 0 && ((1 << (_la - 96)) & ((1 << (HiveSql.T_EXCEPT - 96)) | (1 << (HiveSql.T_EXEC - 96)) | (1 << (HiveSql.T_EXECUTE - 96)) | (1 << (HiveSql.T_EXCEPTION - 96)) | (1 << (HiveSql.T_EXCLUSIVE - 96)) | (1 << (HiveSql.T_EXISTS - 96)) | (1 << (HiveSql.T_EXIT - 96)) | (1 << (HiveSql.T_FALLBACK - 96)) | (1 << (HiveSql.T_FALSE - 96)) | (1 << (HiveSql.T_FETCH - 96)) | (1 << (HiveSql.T_FIELDS - 96)) | (1 << (HiveSql.T_FILE - 96)) | (1 << (HiveSql.T_FILES - 96)) | (1 << (HiveSql.T_FLOAT - 96)) | (1 << (HiveSql.T_FOR - 96)) | (1 << (HiveSql.T_FOREIGN - 96)) | (1 << (HiveSql.T_FORMAT - 96)) | (1 << (HiveSql.T_FOUND - 96)) | (1 << (HiveSql.T_FROM - 96)) | (1 << (HiveSql.T_FULL - 96)) | (1 << (HiveSql.T_FUNCTION - 96)) | (1 << (HiveSql.T_GET - 96)) | (1 << (HiveSql.T_GLOBAL - 96)) | (1 << (HiveSql.T_GO - 96)) | (1 << (HiveSql.T_GRANT - 96)) | (1 << (HiveSql.T_GROUP - 96)) | (1 << (HiveSql.T_HANDLER - 96)) | (1 << (HiveSql.T_HASH - 96)) | (1 << (HiveSql.T_HAVING - 96)) | (1 << (HiveSql.T_HDFS - 96)) | (1 << (HiveSql.T_HIVE - 96)) | (1 << (HiveSql.T_HOST - 96)))) !== 0) || ((((_la - 128)) & ~0x1f) == 0 && ((1 << (_la - 128)) & ((1 << (HiveSql.T_IDENTITY - 128)) | (1 << (HiveSql.T_IF - 128)) | (1 << (HiveSql.T_IGNORE - 128)) | (1 << (HiveSql.T_IMMEDIATE - 128)) | (1 << (HiveSql.T_IN - 128)) | (1 << (HiveSql.T_INCLUDE - 128)) | (1 << (HiveSql.T_INDEX - 128)) | (1 << (HiveSql.T_INITRANS - 128)) | (1 << (HiveSql.T_INNER - 128)) | (1 << (HiveSql.T_INOUT - 128)) | (1 << (HiveSql.T_INSERT - 128)) | (1 << (HiveSql.T_INT - 128)) | (1 << (HiveSql.T_INT2 - 128)) | (1 << (HiveSql.T_INT4 - 128)) | (1 << (HiveSql.T_INT8 - 128)) | (1 << (HiveSql.T_INTEGER - 128)) | (1 << (HiveSql.T_INTERSECT - 128)) | (1 << (HiveSql.T_INTERVAL - 128)) | (1 << (HiveSql.T_INTO - 128)) | (1 << (HiveSql.T_INVOKER - 128)) | (1 << (HiveSql.T_IS - 128)) | (1 << (HiveSql.T_ISOPEN - 128)) | (1 << (HiveSql.T_ITEMS - 128)) | (1 << (HiveSql.T_JOIN - 128)) | (1 << (HiveSql.T_KEEP - 128)) | (1 << (HiveSql.T_KEY - 128)) | (1 << (HiveSql.T_KEYS - 128)) | (1 << (HiveSql.T_LANGUAGE - 128)) | (1 << (HiveSql.T_LEAVE - 128)) | (1 << (HiveSql.T_LEFT - 128)) | (1 << (HiveSql.T_LIKE - 128)) | (1 << (HiveSql.T_LIMIT - 128)))) !== 0) || ((((_la - 160)) & ~0x1f) == 0 && ((1 << (_la - 160)) & ((1 << (HiveSql.T_LINES - 160)) | (1 << (HiveSql.T_LOCAL - 160)) | (1 << (HiveSql.T_LOCATION - 160)) | (1 << (HiveSql.T_LOCATOR - 160)) | (1 << (HiveSql.T_LOCATORS - 160)) | (1 << (HiveSql.T_LOCKS - 160)) | (1 << (HiveSql.T_LOG - 160)) | (1 << (HiveSql.T_LOGGED - 160)) | (1 << (HiveSql.T_LOGGING - 160)) | (1 << (HiveSql.T_LOOP - 160)) | (1 << (HiveSql.T_MAP - 160)) | (1 << (HiveSql.T_MATCHED - 160)) | (1 << (HiveSql.T_MAX - 160)) | (1 << (HiveSql.T_MAXTRANS - 160)) | (1 << (HiveSql.T_MERGE - 160)) | (1 << (HiveSql.T_MESSAGE_TEXT - 160)) | (1 << (HiveSql.T_MICROSECOND - 160)) | (1 << (HiveSql.T_MICROSECONDS - 160)) | (1 << (HiveSql.T_MIN - 160)) | (1 << (HiveSql.T_MULTISET - 160)) | (1 << (HiveSql.T_NCHAR - 160)) | (1 << (HiveSql.T_NEW - 160)) | (1 << (HiveSql.T_NVARCHAR - 160)) | (1 << (HiveSql.T_NO - 160)) | (1 << (HiveSql.T_NOCOUNT - 160)) | (1 << (HiveSql.T_NOCOMPRESS - 160)) | (1 << (HiveSql.T_NOLOGGING - 160)) | (1 << (HiveSql.T_NONE - 160)) | (1 << (HiveSql.T_NOT - 160)) | (1 << (HiveSql.T_NOTFOUND - 160)) | (1 << (HiveSql.T_NUMERIC - 160)))) !== 0) || ((((_la - 192)) & ~0x1f) == 0 && ((1 << (_la - 192)) & ((1 << (HiveSql.T_NUMBER - 192)) | (1 << (HiveSql.T_OBJECT - 192)) | (1 << (HiveSql.T_OFF - 192)) | (1 << (HiveSql.T_ON - 192)) | (1 << (HiveSql.T_ONLY - 192)) | (1 << (HiveSql.T_OPEN - 192)) | (1 << (HiveSql.T_OR - 192)) | (1 << (HiveSql.T_ORDER - 192)) | (1 << (HiveSql.T_OUT - 192)) | (1 << (HiveSql.T_OUTER - 192)) | (1 << (HiveSql.T_OVER - 192)) | (1 << (HiveSql.T_OVERWRITE - 192)) | (1 << (HiveSql.T_OWNER - 192)) | (1 << (HiveSql.T_PACKAGE - 192)) | (1 << (HiveSql.T_PARTITION - 192)) | (1 << (HiveSql.T_PCTFREE - 192)) | (1 << (HiveSql.T_PCTUSED - 192)) | (1 << (HiveSql.T_PRECISION - 192)) | (1 << (HiveSql.T_PRESERVE - 192)) | (1 << (HiveSql.T_PRIMARY - 192)) | (1 << (HiveSql.T_PRINT - 192)) | (1 << (HiveSql.T_PROC - 192)) | (1 << (HiveSql.T_PROCEDURE - 192)) | (1 << (HiveSql.T_QUALIFY - 192)) | (1 << (HiveSql.T_QUERY_BAND - 192)) | (1 << (HiveSql.T_QUIT - 192)) | (1 << (HiveSql.T_QUOTED_IDENTIFIER - 192)) | (1 << (HiveSql.T_RAISE - 192)) | (1 << (HiveSql.T_REAL - 192)) | (1 << (HiveSql.T_REFERENCES - 192)) | (1 << (HiveSql.T_REGEXP - 192)))) !== 0) || ((((_la - 224)) & ~0x1f) == 0 && ((1 << (_la - 224)) & ((1 << (HiveSql.T_REPLACE - 224)) | (1 << (HiveSql.T_RESIGNAL - 224)) | (1 << (HiveSql.T_RESTRICT - 224)) | (1 << (HiveSql.T_RESULT - 224)) | (1 << (HiveSql.T_RESULT_SET_LOCATOR - 224)) | (1 << (HiveSql.T_RETURN - 224)) | (1 << (HiveSql.T_RETURNS - 224)) | (1 << (HiveSql.T_REVERSE - 224)) | (1 << (HiveSql.T_RIGHT - 224)) | (1 << (HiveSql.T_RLIKE - 224)) | (1 << (HiveSql.T_ROLE - 224)) | (1 << (HiveSql.T_ROLLBACK - 224)) | (1 << (HiveSql.T_ROW - 224)) | (1 << (HiveSql.T_ROWS - 224)) | (1 << (HiveSql.T_ROW_COUNT - 224)) | (1 << (HiveSql.T_RR - 224)) | (1 << (HiveSql.T_RS - 224)) | (1 << (HiveSql.T_PWD - 224)) | (1 << (HiveSql.T_TRIM - 224)) | (1 << (HiveSql.T_SCHEMA - 224)) | (1 << (HiveSql.T_SECOND - 224)) | (1 << (HiveSql.T_SECONDS - 224)) | (1 << (HiveSql.T_SECURITY - 224)) | (1 << (HiveSql.T_SEGMENT - 224)) | (1 << (HiveSql.T_SEL - 224)) | (1 << (HiveSql.T_SELECT - 224)) | (1 << (HiveSql.T_SET - 224)) | (1 << (HiveSql.T_SESSION - 224)) | (1 << (HiveSql.T_SESSIONS - 224)) | (1 << (HiveSql.T_SETS - 224)) | (1 << (HiveSql.T_SHARE - 224)))) !== 0) || ((((_la - 256)) & ~0x1f) == 0 && ((1 << (_la - 256)) & ((1 << (HiveSql.T_SIGNAL - 256)) | (1 << (HiveSql.T_SIMPLE_DOUBLE - 256)) | (1 << (HiveSql.T_SIMPLE_FLOAT - 256)) | (1 << (HiveSql.T_SMALLDATETIME - 256)) | (1 << (HiveSql.T_SMALLINT - 256)) | (1 << (HiveSql.T_SQL - 256)) | (1 << (HiveSql.T_SQLEXCEPTION - 256)) | (1 << (HiveSql.T_SQLINSERT - 256)) | (1 << (HiveSql.T_SQLSTATE - 256)) | (1 << (HiveSql.T_SQLWARNING - 256)) | (1 << (HiveSql.T_STATS - 256)) | (1 << (HiveSql.T_STATISTICS - 256)) | (1 << (HiveSql.T_STEP - 256)) | (1 << (HiveSql.T_STORAGE - 256)) | (1 << (HiveSql.T_STORED - 256)) | (1 << (HiveSql.T_STRING - 256)) | (1 << (HiveSql.T_SUBDIR - 256)) | (1 << (HiveSql.T_SUBSTRING - 256)) | (1 << (HiveSql.T_SUM - 256)) | (1 << (HiveSql.T_SUMMARY - 256)) | (1 << (HiveSql.T_SYS_REFCURSOR - 256)) | (1 << (HiveSql.T_TABLE - 256)) | (1 << (HiveSql.T_TABLESPACE - 256)) | (1 << (HiveSql.T_TEMPORARY - 256)) | (1 << (HiveSql.T_TERMINATED - 256)) | (1 << (HiveSql.T_TEXTIMAGE_ON - 256)) | (1 << (HiveSql.T_THEN - 256)) | (1 << (HiveSql.T_TIMESTAMP - 256)) | (1 << (HiveSql.T_TITLE - 256)) | (1 << (HiveSql.T_TO - 256)))) !== 0) || ((((_la - 288)) & ~0x1f) == 0 && ((1 << (_la - 288)) & ((1 << (HiveSql.T_TOP - 288)) | (1 << (HiveSql.T_TRANSACTION - 288)) | (1 << (HiveSql.T_TRUE - 288)) | (1 << (HiveSql.T_TRUNCATE - 288)) | (1 << (HiveSql.T_UNIQUE - 288)) | (1 << (HiveSql.T_UPDATE - 288)) | (1 << (HiveSql.T_UR - 288)) | (1 << (HiveSql.T_USE - 288)) | (1 << (HiveSql.T_USING - 288)) | (1 << (HiveSql.T_VALUE - 288)) | (1 << (HiveSql.T_VALUES - 288)) | (1 << (HiveSql.T_VAR - 288)) | (1 << (HiveSql.T_VARCHAR - 288)) | (1 << (HiveSql.T_VARCHAR2 - 288)) | (1 << (HiveSql.T_VARYING - 288)) | (1 << (HiveSql.T_VOLATILE - 288)) | (1 << (HiveSql.T_WHILE - 288)) | (1 << (HiveSql.T_WITH - 288)) | (1 << (HiveSql.T_WITHOUT - 288)) | (1 << (HiveSql.T_WORK - 288)) | (1 << (HiveSql.T_XACT_ABORT - 288)) | (1 << (HiveSql.T_XML - 288)) | (1 << (HiveSql.T_YES - 288)) | (1 << (HiveSql.T_ACTIVITY_COUNT - 288)) | (1 << (HiveSql.T_CUME_DIST - 288)) | (1 << (HiveSql.T_CURRENT_DATE - 288)) | (1 << (HiveSql.T_CURRENT_TIMESTAMP - 288)) | (1 << (HiveSql.T_CURRENT_USER - 288)))) !== 0) || ((((_la - 320)) & ~0x1f) == 0 && ((1 << (_la - 320)) & ((1 << (HiveSql.T_DENSE_RANK - 320)) | (1 << (HiveSql.T_FIRST_VALUE - 320)) | (1 << (HiveSql.T_LAG - 320)) | (1 << (HiveSql.T_LAST_VALUE - 320)) | (1 << (HiveSql.T_LEAD - 320)) | (1 << (HiveSql.T_PART_COUNT - 320)) | (1 << (HiveSql.T_PART_LOC - 320)) | (1 << (HiveSql.T_RANK - 320)) | (1 << (HiveSql.T_ROW_NUMBER - 320)) | (1 << (HiveSql.T_STDEV - 320)) | (1 << (HiveSql.T_SYSDATE - 320)) | (1 << (HiveSql.T_VARIANCE - 320)) | (1 << (HiveSql.T_USER - 320)))) !== 0))) { this._errHandler.recoverInline(this); } else { @@ -37628,7 +37728,7 @@ HiveSqlParser.prototype.non_reserved_words = function() { }; -HiveSqlParser.prototype.sempred = function(localctx, ruleIndex, predIndex) { +HiveSql.prototype.sempred = function(localctx, ruleIndex, predIndex) { switch(ruleIndex) { case 4: return this.block_end_sempred(localctx, predIndex); @@ -37653,71 +37753,72 @@ HiveSqlParser.prototype.sempred = function(localctx, ruleIndex, predIndex) { } }; -HiveSqlParser.prototype.block_end_sempred = function(localctx, predIndex) { +HiveSql.prototype.block_end_sempred = function(localctx, predIndex) { switch(predIndex) { case 0: - return !this._input.LT(2).getText().equalsIgnoreCase("TRANSACTION"); + return !this._input.LT(2).text.toUpperCase() === "TRANSACTION"; default: throw "No predicate with index:" + predIndex; } }; -HiveSqlParser.prototype.expr_stmt_sempred = function(localctx, predIndex) { +HiveSql.prototype.expr_stmt_sempred = function(localctx, predIndex) { switch(predIndex) { case 1: - return !this._input.LT(1).getText().equalsIgnoreCase("GO"); + return this._input.LT(1).text.toUpperCase() !== "GO"; default: throw "No predicate with index:" + predIndex; } }; -HiveSqlParser.prototype.create_routine_params_sempred = function(localctx, predIndex) { +HiveSql.prototype.create_routine_params_sempred = function(localctx, predIndex) { switch(predIndex) { case 2: - return !this._input.LT(1).getText().equalsIgnoreCase("IS") && - !this._input.LT(1).getText().equalsIgnoreCase("AS") && - !(this._input.LT(1).getText().equalsIgnoreCase("DYNAMIC") && this._input.LT(2).getText().equalsIgnoreCase("RESULT")) + return this._input.LT(1).text.toUpperCase() !== "IS" && + this._input.LT(1).text.toUpperCase() !== "AS" && + !(this._input.LT(1).text.toUpperCase() ==="DYNAMIC" && this._input.LT(2).text.toUpperCase() === "RESULT") ; default: throw "No predicate with index:" + predIndex; } }; -HiveSqlParser.prototype.select_list_alias_sempred = function(localctx, predIndex) { +HiveSql.prototype.select_list_alias_sempred = function(localctx, predIndex) { switch(predIndex) { case 3: - return !this._input.LT(1).getText().equalsIgnoreCase("INTO") && !this._input.LT(1).getText().equalsIgnoreCase("FROM"); + return this._input.LT(1).text.toUpperCase() !== "INTO" && this._input.LT(1).text.toUpperCase() !== "FROM"; default: throw "No predicate with index:" + predIndex; } }; -HiveSqlParser.prototype.from_alias_clause_sempred = function(localctx, predIndex) { +HiveSql.prototype.from_alias_clause_sempred = function(localctx, predIndex) { switch(predIndex) { case 4: - return !this._input.LT(1).getText().equalsIgnoreCase("EXEC") && - !this._input.LT(1).getText().equalsIgnoreCase("EXECUTE") && - !this._input.LT(1).getText().equalsIgnoreCase("INNER") && - !this._input.LT(1).getText().equalsIgnoreCase("LEFT") && - !this._input.LT(1).getText().equalsIgnoreCase("GROUP") && - !this._input.LT(1).getText().equalsIgnoreCase("ORDER") && - !this._input.LT(1).getText().equalsIgnoreCase("LIMIT") && - !this._input.LT(1).getText().equalsIgnoreCase("WITH"); + return this._input.LT(1).text.toUpperCase() !== "EXEC" && + this._input.LT(1).text.toUpperCase() !== "EXECUTE" && + this._input.LT(1).text.toUpperCase() !== "INNER" && + this._input.LT(1).text.toUpperCase() !== "LEFT" && + this._input.LT(1).text.toUpperCase() !== "GROUP" && + this._input.LT(1).text.toUpperCase() !== "ORDER" && + this._input.LT(1).text.toUpperCase() !== "LIMIT" && + this._input.LT(1).text.toUpperCase() !== "WITH" && + this._input.LT(1).text.toUpperCase() !== "JOIN"; default: throw "No predicate with index:" + predIndex; } }; -HiveSqlParser.prototype.delete_alias_sempred = function(localctx, predIndex) { +HiveSql.prototype.delete_alias_sempred = function(localctx, predIndex) { switch(predIndex) { case 5: - return !this._input.LT(1).getText().equalsIgnoreCase("ALL"); + return this._input.LT(1).text.toUpperCase() !== "ALL"; default: throw "No predicate with index:" + predIndex; } }; -HiveSqlParser.prototype.bool_expr_sempred = function(localctx, predIndex) { +HiveSql.prototype.bool_expr_sempred = function(localctx, predIndex) { switch(predIndex) { case 6: return this.precpred(this._ctx, 2); @@ -37726,7 +37827,7 @@ HiveSqlParser.prototype.bool_expr_sempred = function(localctx, predIndex) { } }; -HiveSqlParser.prototype.expr_sempred = function(localctx, predIndex) { +HiveSql.prototype.expr_sempred = function(localctx, predIndex) { switch(predIndex) { case 7: return this.precpred(this._ctx, 14); @@ -37743,14 +37844,14 @@ HiveSqlParser.prototype.expr_sempred = function(localctx, predIndex) { } }; -HiveSqlParser.prototype.func_param_sempred = function(localctx, predIndex) { +HiveSql.prototype.func_param_sempred = function(localctx, predIndex) { switch(predIndex) { case 12: - return !this._input.LT(1).getText().equalsIgnoreCase("INTO"); + return this._input.LT(1).text.toUpperCase() !== "INTO"; default: throw "No predicate with index:" + predIndex; } }; -exports.HiveSqlParser = HiveSqlParser; +exports.HiveSql = HiveSql; diff --git a/src/lib/hive/HiveSql.tokens b/src/lib/hive/HiveSql.tokens index 7ce6027..f6acc0b 100644 --- a/src/lib/hive/HiveSql.tokens +++ b/src/lib/hive/HiveSql.tokens @@ -1,384 +1,404 @@ -T__0=1 -T__1=2 -T__2=3 -T__3=4 -T__4=5 -T__5=6 -T__6=7 -T__7=8 -T__8=9 -T__9=10 -T_GO=11 -T_BEGIN=12 -T_SEMICOLON=13 -T_END=14 -T_EXCEPTION=15 -T_WHEN=16 -L_ID=17 -T_THEN=18 -T_NULL=19 -T_SET=20 -T_COMMA=21 -T_COLON=22 -T_EQUAL=23 -T_OPEN_P=24 -T_CLOSE_P=25 -T_ALLOCATE=26 -T_CURSOR=27 -T_FOR=28 -T_RESULT=29 -T_PROCEDURE=30 -T_ASSOCIATE=31 -T_LOCATOR=32 -T_LOCATORS=33 -T_WITH=34 -T_TRANSACTION=35 -T_BREAK=36 -T_CALL=37 -T_DECLARE=38 -T_AS=39 -T_CONSTANT=40 -T_CONDITION=41 -T_IS=42 -T_RETURN=43 -T_ONLY=44 -T_TO=45 -T_CALLER=46 -T_CLIENT=47 -T_WITHOUT=48 -T_CONTINUE=49 -T_EXIT=50 -T_HANDLER=51 -T_SQLEXCEPTION=52 -T_SQLWARNING=53 -T_NOT=54 -T_FOUND=55 -T_GLOBAL=56 -T_TEMPORARY=57 -T_TABLE=58 -T_CREATE=59 -T_IF=60 -T_EXISTS=61 -T_LOCAL=62 -T_MULTISET=63 -T_VOLATILE=64 -T_LIKE=65 -T_CONSTRAINT=66 -T_PRIMARY=67 -T_KEY=68 -T_UNIQUE=69 -T_REFERENCES=70 -T_IDENTITY=71 -L_INT=72 -T_AUTO_INCREMENT=73 -T_ENABLE=74 -T_CLUSTERED=75 -T_ASC=76 -T_DESC=77 -T_FOREIGN=78 -T_ON=79 -T_UPDATE=80 -T_DELETE=81 -T_NO=82 -T_ACTION=83 -T_RESTRICT=84 -T_DEFAULT=85 -T_CASCADE=86 -T_LOG=87 -T_FALLBACK=88 -T_COMMIT=89 -T_PRESERVE=90 -T_ROWS=91 -T_SEGMENT=92 -T_CREATION=93 -T_IMMEDIATE=94 -T_DEFERRED=95 -T_PCTFREE=96 -T_PCTUSED=97 -T_INITRANS=98 -T_MAXTRANS=99 -T_NOCOMPRESS=100 -T_LOGGING=101 -T_NOLOGGING=102 -T_STORAGE=103 -T_TABLESPACE=104 -T_INDEX=105 -T_IN=106 -T_REPLACE=107 -T_DISTRIBUTE=108 -T_BY=109 -T_HASH=110 -T_LOGGED=111 -T_COMPRESS=112 -T_YES=113 -T_DEFINITION=114 -T_DROP=115 -T_DATA=116 -T_STORED=117 -T_ROW=118 -T_FORMAT=119 -T_DELIMITED=120 -T_FIELDS=121 -T_TERMINATED=122 -T_ESCAPED=123 -T_COLLECTION=124 -T_ITEMS=125 -T_MAP=126 -T_KEYS=127 -T_LINES=128 -T_DEFINED=129 -T_TEXTIMAGE_ON=130 -T_COMMENT=131 -T_CHARACTER=132 -T_CHARSET=133 -T_ENGINE=134 -T_ALTER=135 -T_ADD2=136 -T_CHAR=137 -T_BIGINT=138 -T_BINARY_DOUBLE=139 -T_BINARY_FLOAT=140 -T_BINARY_INTEGER=141 -T_BIT=142 -T_DATE=143 -T_DATETIME=144 -T_DEC=145 -T_DECIMAL=146 -T_DOUBLE=147 -T_PRECISION=148 -T_FLOAT=149 -T_INT=150 -T_INT2=151 -T_INT4=152 -T_INT8=153 -T_INTEGER=154 -T_NCHAR=155 -T_NVARCHAR=156 -T_NUMBER=157 -T_NUMERIC=158 -T_PLS_INTEGER=159 -T_REAL=160 -T_RESULT_SET_LOCATOR=161 -T_VARYING=162 -T_SIMPLE_FLOAT=163 -T_SIMPLE_DOUBLE=164 -T_SIMPLE_INTEGER=165 -T_SMALLINT=166 -T_SMALLDATETIME=167 -T_STRING=168 -T_SYS_REFCURSOR=169 -T_TIMESTAMP=170 -T_TINYINT=171 -T_VARCHAR=172 -T_VARCHAR2=173 -T_XML=174 -T_TYPE=175 -T_ROWTYPE=176 -T_MAX=177 -T_BYTE=178 -T_CASESPECIFIC=179 -T_CS=180 -T_DATABASE=181 -T_SCHEMA=182 -T_LOCATION=183 -T_OR=184 -T_FUNCTION=185 -T_RETURNS=186 -T_PACKAGE=187 -T_PROC=188 -T_BODY=189 -T_OUT=190 -T_INOUT=191 -T_LANGUAGE=192 -T_SQL=193 -T_SECURITY=194 -T_CREATOR=195 -T_DEFINER=196 -T_INVOKER=197 -T_OWNER=198 -T_DYNAMIC=199 -T_SETS=200 -T_EXEC=201 -T_EXECUTE=202 -T_INTO=203 -T_ELSE=204 -T_ELSIF=205 -T_ELSEIF=206 -T_INCLUDE=207 -T_INSERT=208 -T_OVERWRITE=209 -T_VALUES=210 -T_DIRECTORY=211 -T_GET=212 -T_DIAGNOSTICS=213 -T_MESSAGE_TEXT=214 -T_ROW_COUNT=215 -T_GRANT=216 -T_ROLE=217 -T_LEAVE=218 -T_OBJECT=219 -T_AT=220 -T_OPEN=221 -T_FETCH=222 -T_FROM=223 -T_COLLECT=224 -T_STATISTICS=225 -T_STATS=226 -T_COLUMN=227 -T_CLOSE=228 -T_CMP=229 -T_SUM=230 -T_COPY=231 -T_HDFS=232 -T_BATCHSIZE=233 -T_DELIMITER=234 -T_SQLINSERT=235 -T_IGNORE=236 -T_WORK=237 -T_PRINT=238 -T_QUIT=239 -T_RAISE=240 -T_RESIGNAL=241 -T_SQLSTATE=242 -T_VALUE=243 -T_ROLLBACK=244 -T_CURRENT=245 -T_CURRENT_SCHEMA=246 -T_ANSI_NULLS=247 -T_ANSI_PADDING=248 -T_NOCOUNT=249 -T_QUOTED_IDENTIFIER=250 -T_XACT_ABORT=251 -T_OFF=252 -T_QUERY_BAND=253 -T_NONE=254 -T_SESSION=255 +T_ACTION=1 +T_ADD2=2 +T_ALL=3 +T_ALLOCATE=4 +T_ALTER=5 +T_AND=6 +T_ANSI_NULLS=7 +T_ANSI_PADDING=8 +T_AS=9 +T_ASC=10 +T_ASSOCIATE=11 +T_AT=12 +T_AUTO_INCREMENT=13 +T_AVG=14 +T_BATCHSIZE=15 +T_BEGIN=16 +T_BETWEEN=17 +T_BIGINT=18 +T_BINARY_DOUBLE=19 +T_BINARY_FLOAT=20 +T_BINARY_INTEGER=21 +T_BIT=22 +T_BODY=23 +T_BREAK=24 +T_BY=25 +T_BYTE=26 +T_CALL=27 +T_CALLER=28 +T_CASCADE=29 +T_CASE=30 +T_CASESPECIFIC=31 +T_CAST=32 +T_CHAR=33 +T_CHARACTER=34 +T_CHARSET=35 +T_CLIENT=36 +T_CLOSE=37 +T_CLUSTERED=38 +T_CMP=39 +T_COLLECT=40 +T_COLLECTION=41 +T_COLUMN=42 +T_COMMENT=43 +T_CONSTANT=44 +T_COMMIT=45 +T_COMPRESS=46 +T_CONCAT=47 +T_CONDITION=48 +T_CONSTRAINT=49 +T_CONTINUE=50 +T_COPY=51 +T_COUNT=52 +T_COUNT_BIG=53 +T_CREATE=54 +T_CREATION=55 +T_CREATOR=56 +T_CS=57 +T_CURRENT=58 +T_CURRENT_SCHEMA=59 +T_CURSOR=60 +T_DATABASE=61 +T_DATA=62 +T_DATE=63 +T_DATETIME=64 +T_DAY=65 +T_DAYS=66 +T_DEC=67 +T_DECIMAL=68 +T_DECLARE=69 +T_DEFAULT=70 +T_DEFERRED=71 +T_DEFINED=72 +T_DEFINER=73 +T_DEFINITION=74 +T_DELETE=75 +T_DELIMITED=76 +T_DELIMITER=77 +T_DESC=78 +T_DESCRIBE=79 +T_DIAGNOSTICS=80 +T_DIR=81 +T_DIRECTORY=82 +T_DISTINCT=83 +T_DISTRIBUTE=84 +T_DO=85 +T_DOUBLE=86 +T_DROP=87 +T_DYNAMIC=88 +T_ELSE=89 +T_ELSEIF=90 +T_ELSIF=91 +T_ENABLE=92 +T_END=93 +T_ENGINE=94 +T_ESCAPED=95 +T_EXCEPT=96 +T_EXEC=97 +T_EXECUTE=98 +T_EXCEPTION=99 +T_EXCLUSIVE=100 +T_EXISTS=101 +T_EXIT=102 +T_FALLBACK=103 +T_FALSE=104 +T_FETCH=105 +T_FIELDS=106 +T_FILE=107 +T_FILES=108 +T_FLOAT=109 +T_FOR=110 +T_FOREIGN=111 +T_FORMAT=112 +T_FOUND=113 +T_FROM=114 +T_FULL=115 +T_FUNCTION=116 +T_GET=117 +T_GLOBAL=118 +T_GO=119 +T_GRANT=120 +T_GROUP=121 +T_HANDLER=122 +T_HASH=123 +T_HAVING=124 +T_HDFS=125 +T_HIVE=126 +T_HOST=127 +T_IDENTITY=128 +T_IF=129 +T_IGNORE=130 +T_IMMEDIATE=131 +T_IN=132 +T_INCLUDE=133 +T_INDEX=134 +T_INITRANS=135 +T_INNER=136 +T_INOUT=137 +T_INSERT=138 +T_INT=139 +T_INT2=140 +T_INT4=141 +T_INT8=142 +T_INTEGER=143 +T_INTERSECT=144 +T_INTERVAL=145 +T_INTO=146 +T_INVOKER=147 +T_IS=148 +T_ISOPEN=149 +T_ITEMS=150 +T_JOIN=151 +T_KEEP=152 +T_KEY=153 +T_KEYS=154 +T_LANGUAGE=155 +T_LEAVE=156 +T_LEFT=157 +T_LIKE=158 +T_LIMIT=159 +T_LINES=160 +T_LOCAL=161 +T_LOCATION=162 +T_LOCATOR=163 +T_LOCATORS=164 +T_LOCKS=165 +T_LOG=166 +T_LOGGED=167 +T_LOGGING=168 +T_LOOP=169 +T_MAP=170 +T_MATCHED=171 +T_MAX=172 +T_MAXTRANS=173 +T_MERGE=174 +T_MESSAGE_TEXT=175 +T_MICROSECOND=176 +T_MICROSECONDS=177 +T_MIN=178 +T_MULTISET=179 +T_NCHAR=180 +T_NEW=181 +T_NVARCHAR=182 +T_NO=183 +T_NOCOUNT=184 +T_NOCOMPRESS=185 +T_NOLOGGING=186 +T_NONE=187 +T_NOT=188 +T_NOTFOUND=189 +T_NULL=190 +T_NUMERIC=191 +T_NUMBER=192 +T_OBJECT=193 +T_OFF=194 +T_ON=195 +T_ONLY=196 +T_OPEN=197 +T_OR=198 +T_ORDER=199 +T_OUT=200 +T_OUTER=201 +T_OVER=202 +T_OVERWRITE=203 +T_OWNER=204 +T_PACKAGE=205 +T_PARTITION=206 +T_PCTFREE=207 +T_PCTUSED=208 +T_PLS_INTEGER=209 +T_PRECISION=210 +T_PRESERVE=211 +T_PRIMARY=212 +T_PRINT=213 +T_PROC=214 +T_PROCEDURE=215 +T_QUALIFY=216 +T_QUERY_BAND=217 +T_QUIT=218 +T_QUOTED_IDENTIFIER=219 +T_RAISE=220 +T_REAL=221 +T_REFERENCES=222 +T_REGEXP=223 +T_REPLACE=224 +T_RESIGNAL=225 +T_RESTRICT=226 +T_RESULT=227 +T_RESULT_SET_LOCATOR=228 +T_RETURN=229 +T_RETURNS=230 +T_REVERSE=231 +T_RIGHT=232 +T_RLIKE=233 +T_ROLE=234 +T_ROLLBACK=235 +T_ROW=236 +T_ROWS=237 +T_ROWTYPE=238 +T_ROW_COUNT=239 +T_RR=240 +T_RS=241 +T_PWD=242 +T_TRIM=243 +T_SCHEMA=244 +T_SECOND=245 +T_SECONDS=246 +T_SECURITY=247 +T_SEGMENT=248 +T_SEL=249 +T_SELECT=250 +T_SET=251 +T_SESSION=252 +T_SESSIONS=253 +T_SETS=254 +T_SHARE=255 T_SIGNAL=256 -T_SUMMARY=257 -T_TOP=258 -T_LIMIT=259 -T_TRUNCATE=260 -T_USE=261 -T_WHILE=262 -T_DO=263 -T_LOOP=264 -T_REVERSE=265 -T_DOT2=266 -T_STEP=267 -L_LABEL=268 -T_LESS=269 -T_GREATER=270 -T_USING=271 -T_UNION=272 -T_ALL=273 -T_EXCEPT=274 -T_INTERSECT=275 -T_SELECT=276 -T_SEL=277 -T_DISTINCT=278 -T_TITLE=279 -L_S_STRING=280 -T_INNER=281 -T_JOIN=282 -T_LEFT=283 -T_RIGHT=284 -T_FULL=285 -T_OUTER=286 -T_WHERE=287 -T_GROUP=288 -T_HAVING=289 -T_QUALIFY=290 -T_ORDER=291 -T_RR=292 -T_RS=293 -T_UR=294 -T_AND=295 -T_KEEP=296 -T_EXCLUSIVE=297 -T_SHARE=298 -T_LOCKS=299 -T_MERGE=300 -T_MATCHED=301 -T_DESCRIBE=302 -T_BETWEEN=303 -T_EQUAL2=304 -T_NOTEQUAL=305 -T_NOTEQUAL2=306 -T_LESSEQUAL=307 -T_GREATEREQUAL=308 -T_RLIKE=309 -T_REGEXP=310 -T_MUL=311 -T_DIV=312 -T_ADD=313 -T_SUB=314 -T_INTERVAL=315 -T_DAY=316 -T_DAYS=317 -T_MICROSECOND=318 -T_MICROSECONDS=319 -T_SECOND=320 -T_SECONDS=321 -T_PIPE=322 -T_CONCAT=323 -T_CASE=324 -T_ISOPEN=325 -T_NOTFOUND=326 -T_AVG=327 -T_COUNT=328 -T_COUNT_BIG=329 -T_CUME_DIST=330 -T_DENSE_RANK=331 -T_FIRST_VALUE=332 -T_LAG=333 -T_LAST_VALUE=334 -T_LEAD=335 -T_MIN=336 -T_RANK=337 -T_ROW_NUMBER=338 -T_STDEV=339 -T_VAR=340 -T_VARIANCE=341 -T_OVER=342 -T_PARTITION=343 -T_ACTIVITY_COUNT=344 -T_CAST=345 -T_CURRENT_DATE=346 -T_CURRENT_TIMESTAMP=347 -T_CURRENT_USER=348 -T_USER=349 -T_MAX_PART_STRING=350 -T_MIN_PART_STRING=351 -T_MAX_PART_INT=352 -T_MIN_PART_INT=353 -T_MAX_PART_DATE=354 -T_MIN_PART_DATE=355 -T_PART_COUNT=356 -T_PART_LOC=357 -T_TRIM=358 -T_SUBSTRING=359 -T_SYSDATE=360 -T_HIVE=361 -T_HOST=362 -L_FILE=363 -L_D_STRING=364 -L_DEC=365 -T_TRUE=366 -T_FALSE=367 -T_DIR=368 -T_FILE=369 -T_FILES=370 -T_NEW=371 -T_PWD=372 -T_SESSIONS=373 -T_SUBDIR=374 -'@'=1 -'#'=2 -'/'=3 -'%'=4 -'.'=5 -'*'=6 -'!'=7 -';'=8 -'-'=9 -'+'=10 +T_SIMPLE_DOUBLE=257 +T_SIMPLE_FLOAT=258 +T_SIMPLE_INTEGER=259 +T_SMALLDATETIME=260 +T_SMALLINT=261 +T_SQL=262 +T_SQLEXCEPTION=263 +T_SQLINSERT=264 +T_SQLSTATE=265 +T_SQLWARNING=266 +T_STATS=267 +T_STATISTICS=268 +T_STEP=269 +T_STORAGE=270 +T_STORED=271 +T_STRING=272 +T_SUBDIR=273 +T_SUBSTRING=274 +T_SUM=275 +T_SUMMARY=276 +T_SYS_REFCURSOR=277 +T_TABLE=278 +T_TABLESPACE=279 +T_TEMPORARY=280 +T_TERMINATED=281 +T_TEXTIMAGE_ON=282 +T_THEN=283 +T_TIMESTAMP=284 +T_TINYINT=285 +T_TITLE=286 +T_TO=287 +T_TOP=288 +T_TRANSACTION=289 +T_TRUE=290 +T_TRUNCATE=291 +T_TYPE=292 +T_UNION=293 +T_UNIQUE=294 +T_UPDATE=295 +T_UR=296 +T_USE=297 +T_USING=298 +T_VALUE=299 +T_VALUES=300 +T_VAR=301 +T_VARCHAR=302 +T_VARCHAR2=303 +T_VARYING=304 +T_VOLATILE=305 +T_WHEN=306 +T_WHERE=307 +T_WHILE=308 +T_WITH=309 +T_WITHOUT=310 +T_WORK=311 +T_XACT_ABORT=312 +T_XML=313 +T_YES=314 +T_ACTIVITY_COUNT=315 +T_CUME_DIST=316 +T_CURRENT_DATE=317 +T_CURRENT_TIMESTAMP=318 +T_CURRENT_USER=319 +T_DENSE_RANK=320 +T_FIRST_VALUE=321 +T_LAG=322 +T_LAST_VALUE=323 +T_LEAD=324 +T_MAX_PART_STRING=325 +T_MIN_PART_STRING=326 +T_MAX_PART_INT=327 +T_MIN_PART_INT=328 +T_MAX_PART_DATE=329 +T_MIN_PART_DATE=330 +T_PART_COUNT=331 +T_PART_LOC=332 +T_RANK=333 +T_ROW_NUMBER=334 +T_STDEV=335 +T_SYSDATE=336 +T_VARIANCE=337 +T_USER=338 +T_ADD=339 +T_COLON=340 +T_COMMA=341 +T_PIPE=342 +T_DIV=343 +T_DOT=344 +T_DOT2=345 +T_EQUAL=346 +T_EQUAL2=347 +T_SHARP=348 +T_NOTE=349 +T_NOTEQUAL=350 +T_NOTEQUAL2=351 +T_GREATER=352 +T_GREATEREQUAL=353 +T_LESS=354 +T_LESSEQUAL=355 +T_MUL=356 +T_PRECENT=357 +T_CALLS=358 +T_OPEN_B=359 +T_OPEN_P=360 +T_OPEN_SB=361 +T_CLOSE_B=362 +T_CLOSE_P=363 +T_CLOSE_SB=364 +T_SEMICOLON=365 +T_SUB=366 +L_ID=367 +L_S_STRING=368 +L_D_STRING=369 +L_INT=370 +L_DEC=371 +L_WS=372 +L_M_COMMENT=373 +L_S_COMMENT=374 +L_FILE=375 +L_LABEL=376 +'+'=339 +':'=340 +','=341 +'||'=342 +'/'=343 +'.'=344 +'..'=345 +'='=346 +'=='=347 +'#'=348 +'!'=349 +'<>'=350 +'!='=351 +'>'=352 +'>='=353 +'<'=354 +'<='=355 +'*'=356 +'%'=357 +'@'=358 +'{'=359 +'('=360 +'['=361 +'}'=362 +')'=363 +']'=364 +';'=365 +'-'=366 diff --git a/src/lib/hive/HiveSqlLexer.interp b/src/lib/hive/HiveSqlLexer.interp index 4a6bed6..bf8936f 100644 --- a/src/lib/hive/HiveSqlLexer.interp +++ b/src/lib/hive/HiveSqlLexer.interp @@ -1,40 +1,1168 @@ token literal names: null -'@' -'#' +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +'+' +':' +',' +'||' '/' -'%' '.' -'*' +'..' +'=' +'==' +'#' '!' +'<>' +'!=' +'>' +'>=' +'<' +'<=' +'*' +'%' +'@' +'{' +'(' +'[' +'}' +')' +']' ';' '-' -'+' +null +null +null +null +null +null +null +null +null +null token symbolic names: null -null -null -null -null -null -null -null -null -null -null +T_ACTION +T_ADD2 +T_ALL +T_ALLOCATE +T_ALTER +T_AND +T_ANSI_NULLS +T_ANSI_PADDING +T_AS +T_ASC +T_ASSOCIATE +T_AT +T_AUTO_INCREMENT +T_AVG +T_BATCHSIZE +T_BEGIN +T_BETWEEN +T_BIGINT +T_BINARY_DOUBLE +T_BINARY_FLOAT +T_BINARY_INTEGER +T_BIT +T_BODY +T_BREAK +T_BY +T_BYTE +T_CALL +T_CALLER +T_CASCADE +T_CASE +T_CASESPECIFIC +T_CAST +T_CHAR +T_CHARACTER +T_CHARSET +T_CLIENT +T_CLOSE +T_CLUSTERED +T_CMP +T_COLLECT +T_COLLECTION +T_COLUMN +T_COMMENT +T_CONSTANT +T_COMMIT +T_COMPRESS +T_CONCAT +T_CONDITION +T_CONSTRAINT +T_CONTINUE +T_COPY +T_COUNT +T_COUNT_BIG +T_CREATE +T_CREATION +T_CREATOR +T_CS +T_CURRENT +T_CURRENT_SCHEMA +T_CURSOR +T_DATABASE +T_DATA +T_DATE +T_DATETIME +T_DAY +T_DAYS +T_DEC +T_DECIMAL +T_DECLARE +T_DEFAULT +T_DEFERRED +T_DEFINED +T_DEFINER +T_DEFINITION +T_DELETE +T_DELIMITED +T_DELIMITER +T_DESC +T_DESCRIBE +T_DIAGNOSTICS +T_DIR +T_DIRECTORY +T_DISTINCT +T_DISTRIBUTE +T_DO +T_DOUBLE +T_DROP +T_DYNAMIC +T_ELSE +T_ELSEIF +T_ELSIF +T_ENABLE +T_END +T_ENGINE +T_ESCAPED +T_EXCEPT +T_EXEC +T_EXECUTE +T_EXCEPTION +T_EXCLUSIVE +T_EXISTS +T_EXIT +T_FALLBACK +T_FALSE +T_FETCH +T_FIELDS +T_FILE +T_FILES +T_FLOAT +T_FOR +T_FOREIGN +T_FORMAT +T_FOUND +T_FROM +T_FULL +T_FUNCTION +T_GET +T_GLOBAL +T_GO +T_GRANT +T_GROUP +T_HANDLER +T_HASH +T_HAVING +T_HDFS +T_HIVE +T_HOST +T_IDENTITY +T_IF +T_IGNORE +T_IMMEDIATE +T_IN +T_INCLUDE +T_INDEX +T_INITRANS +T_INNER +T_INOUT +T_INSERT +T_INT +T_INT2 +T_INT4 +T_INT8 +T_INTEGER +T_INTERSECT +T_INTERVAL +T_INTO +T_INVOKER +T_IS +T_ISOPEN +T_ITEMS +T_JOIN +T_KEEP +T_KEY +T_KEYS +T_LANGUAGE +T_LEAVE +T_LEFT +T_LIKE +T_LIMIT +T_LINES +T_LOCAL +T_LOCATION +T_LOCATOR +T_LOCATORS +T_LOCKS +T_LOG +T_LOGGED +T_LOGGING +T_LOOP +T_MAP +T_MATCHED +T_MAX +T_MAXTRANS +T_MERGE +T_MESSAGE_TEXT +T_MICROSECOND +T_MICROSECONDS +T_MIN +T_MULTISET +T_NCHAR +T_NEW +T_NVARCHAR +T_NO +T_NOCOUNT +T_NOCOMPRESS +T_NOLOGGING +T_NONE +T_NOT +T_NOTFOUND +T_NULL +T_NUMERIC +T_NUMBER +T_OBJECT +T_OFF +T_ON +T_ONLY +T_OPEN +T_OR +T_ORDER +T_OUT +T_OUTER +T_OVER +T_OVERWRITE +T_OWNER +T_PACKAGE +T_PARTITION +T_PCTFREE +T_PCTUSED +T_PLS_INTEGER +T_PRECISION +T_PRESERVE +T_PRIMARY +T_PRINT +T_PROC +T_PROCEDURE +T_QUALIFY +T_QUERY_BAND +T_QUIT +T_QUOTED_IDENTIFIER +T_RAISE +T_REAL +T_REFERENCES +T_REGEXP +T_REPLACE +T_RESIGNAL +T_RESTRICT +T_RESULT +T_RESULT_SET_LOCATOR +T_RETURN +T_RETURNS +T_REVERSE +T_RIGHT +T_RLIKE +T_ROLE +T_ROLLBACK +T_ROW +T_ROWS +T_ROWTYPE +T_ROW_COUNT +T_RR +T_RS +T_PWD +T_TRIM +T_SCHEMA +T_SECOND +T_SECONDS +T_SECURITY +T_SEGMENT +T_SEL +T_SELECT +T_SET +T_SESSION +T_SESSIONS +T_SETS +T_SHARE +T_SIGNAL +T_SIMPLE_DOUBLE +T_SIMPLE_FLOAT +T_SIMPLE_INTEGER +T_SMALLDATETIME +T_SMALLINT +T_SQL +T_SQLEXCEPTION +T_SQLINSERT +T_SQLSTATE +T_SQLWARNING +T_STATS +T_STATISTICS +T_STEP +T_STORAGE +T_STORED +T_STRING +T_SUBDIR +T_SUBSTRING +T_SUM +T_SUMMARY +T_SYS_REFCURSOR +T_TABLE +T_TABLESPACE +T_TEMPORARY +T_TERMINATED +T_TEXTIMAGE_ON +T_THEN +T_TIMESTAMP +T_TINYINT +T_TITLE +T_TO +T_TOP +T_TRANSACTION +T_TRUE +T_TRUNCATE +T_TYPE +T_UNION +T_UNIQUE +T_UPDATE +T_UR +T_USE +T_USING +T_VALUE +T_VALUES +T_VAR +T_VARCHAR +T_VARCHAR2 +T_VARYING +T_VOLATILE +T_WHEN +T_WHERE +T_WHILE +T_WITH +T_WITHOUT +T_WORK +T_XACT_ABORT +T_XML +T_YES +T_ACTIVITY_COUNT +T_CUME_DIST +T_CURRENT_DATE +T_CURRENT_TIMESTAMP +T_CURRENT_USER +T_DENSE_RANK +T_FIRST_VALUE +T_LAG +T_LAST_VALUE +T_LEAD +T_MAX_PART_STRING +T_MIN_PART_STRING +T_MAX_PART_INT +T_MIN_PART_INT +T_MAX_PART_DATE +T_MIN_PART_DATE +T_PART_COUNT +T_PART_LOC +T_RANK +T_ROW_NUMBER +T_STDEV +T_SYSDATE +T_VARIANCE +T_USER +T_ADD +T_COLON +T_COMMA +T_PIPE +T_DIV +T_DOT +T_DOT2 +T_EQUAL +T_EQUAL2 +T_SHARP +T_NOTE +T_NOTEQUAL +T_NOTEQUAL2 +T_GREATER +T_GREATEREQUAL +T_LESS +T_LESSEQUAL +T_MUL +T_PRECENT +T_CALLS +T_OPEN_B +T_OPEN_P +T_OPEN_SB +T_CLOSE_B +T_CLOSE_P +T_CLOSE_SB +T_SEMICOLON +T_SUB +L_ID +L_S_STRING +L_D_STRING +L_INT +L_DEC +L_WS +L_M_COMMENT +L_S_COMMENT +L_FILE +L_LABEL rule names: -T__0 -T__1 -T__2 -T__3 -T__4 -T__5 -T__6 -T__7 -T__8 -T__9 +T_ACTION +T_ADD2 +T_ALL +T_ALLOCATE +T_ALTER +T_AND +T_ANSI_NULLS +T_ANSI_PADDING +T_AS +T_ASC +T_ASSOCIATE +T_AT +T_AUTO_INCREMENT +T_AVG +T_BATCHSIZE +T_BEGIN +T_BETWEEN +T_BIGINT +T_BINARY_DOUBLE +T_BINARY_FLOAT +T_BINARY_INTEGER +T_BIT +T_BODY +T_BREAK +T_BY +T_BYTE +T_CALL +T_CALLER +T_CASCADE +T_CASE +T_CASESPECIFIC +T_CAST +T_CHAR +T_CHARACTER +T_CHARSET +T_CLIENT +T_CLOSE +T_CLUSTERED +T_CMP +T_COLLECT +T_COLLECTION +T_COLUMN +T_COMMENT +T_CONSTANT +T_COMMIT +T_COMPRESS +T_CONCAT +T_CONDITION +T_CONSTRAINT +T_CONTINUE +T_COPY +T_COUNT +T_COUNT_BIG +T_CREATE +T_CREATION +T_CREATOR +T_CS +T_CURRENT +T_CURRENT_SCHEMA +T_CURSOR +T_DATABASE +T_DATA +T_DATE +T_DATETIME +T_DAY +T_DAYS +T_DEC +T_DECIMAL +T_DECLARE +T_DEFAULT +T_DEFERRED +T_DEFINED +T_DEFINER +T_DEFINITION +T_DELETE +T_DELIMITED +T_DELIMITER +T_DESC +T_DESCRIBE +T_DIAGNOSTICS +T_DIR +T_DIRECTORY +T_DISTINCT +T_DISTRIBUTE +T_DO +T_DOUBLE +T_DROP +T_DYNAMIC +T_ELSE +T_ELSEIF +T_ELSIF +T_ENABLE +T_END +T_ENGINE +T_ESCAPED +T_EXCEPT +T_EXEC +T_EXECUTE +T_EXCEPTION +T_EXCLUSIVE +T_EXISTS +T_EXIT +T_FALLBACK +T_FALSE +T_FETCH +T_FIELDS +T_FILE +T_FILES +T_FLOAT +T_FOR +T_FOREIGN +T_FORMAT +T_FOUND +T_FROM +T_FULL +T_FUNCTION +T_GET +T_GLOBAL +T_GO +T_GRANT +T_GROUP +T_HANDLER +T_HASH +T_HAVING +T_HDFS +T_HIVE +T_HOST +T_IDENTITY +T_IF +T_IGNORE +T_IMMEDIATE +T_IN +T_INCLUDE +T_INDEX +T_INITRANS +T_INNER +T_INOUT +T_INSERT +T_INT +T_INT2 +T_INT4 +T_INT8 +T_INTEGER +T_INTERSECT +T_INTERVAL +T_INTO +T_INVOKER +T_IS +T_ISOPEN +T_ITEMS +T_JOIN +T_KEEP +T_KEY +T_KEYS +T_LANGUAGE +T_LEAVE +T_LEFT +T_LIKE +T_LIMIT +T_LINES +T_LOCAL +T_LOCATION +T_LOCATOR +T_LOCATORS +T_LOCKS +T_LOG +T_LOGGED +T_LOGGING +T_LOOP +T_MAP +T_MATCHED +T_MAX +T_MAXTRANS +T_MERGE +T_MESSAGE_TEXT +T_MICROSECOND +T_MICROSECONDS +T_MIN +T_MULTISET +T_NCHAR +T_NEW +T_NVARCHAR +T_NO +T_NOCOUNT +T_NOCOMPRESS +T_NOLOGGING +T_NONE +T_NOT +T_NOTFOUND +T_NULL +T_NUMERIC +T_NUMBER +T_OBJECT +T_OFF +T_ON +T_ONLY +T_OPEN +T_OR +T_ORDER +T_OUT +T_OUTER +T_OVER +T_OVERWRITE +T_OWNER +T_PACKAGE +T_PARTITION +T_PCTFREE +T_PCTUSED +T_PLS_INTEGER +T_PRECISION +T_PRESERVE +T_PRIMARY +T_PRINT +T_PROC +T_PROCEDURE +T_QUALIFY +T_QUERY_BAND +T_QUIT +T_QUOTED_IDENTIFIER +T_RAISE +T_REAL +T_REFERENCES +T_REGEXP +T_REPLACE +T_RESIGNAL +T_RESTRICT +T_RESULT +T_RESULT_SET_LOCATOR +T_RETURN +T_RETURNS +T_REVERSE +T_RIGHT +T_RLIKE +T_ROLE +T_ROLLBACK +T_ROW +T_ROWS +T_ROWTYPE +T_ROW_COUNT +T_RR +T_RS +T_PWD +T_TRIM +T_SCHEMA +T_SECOND +T_SECONDS +T_SECURITY +T_SEGMENT +T_SEL +T_SELECT +T_SET +T_SESSION +T_SESSIONS +T_SETS +T_SHARE +T_SIGNAL +T_SIMPLE_DOUBLE +T_SIMPLE_FLOAT +T_SIMPLE_INTEGER +T_SMALLDATETIME +T_SMALLINT +T_SQL +T_SQLEXCEPTION +T_SQLINSERT +T_SQLSTATE +T_SQLWARNING +T_STATS +T_STATISTICS +T_STEP +T_STORAGE +T_STORED +T_STRING +T_SUBDIR +T_SUBSTRING +T_SUM +T_SUMMARY +T_SYS_REFCURSOR +T_TABLE +T_TABLESPACE +T_TEMPORARY +T_TERMINATED +T_TEXTIMAGE_ON +T_THEN +T_TIMESTAMP +T_TINYINT +T_TITLE +T_TO +T_TOP +T_TRANSACTION +T_TRUE +T_TRUNCATE +T_TYPE +T_UNION +T_UNIQUE +T_UPDATE +T_UR +T_USE +T_USING +T_VALUE +T_VALUES +T_VAR +T_VARCHAR +T_VARCHAR2 +T_VARYING +T_VOLATILE +T_WHEN +T_WHERE +T_WHILE +T_WITH +T_WITHOUT +T_WORK +T_XACT_ABORT +T_XML +T_YES +T_ACTIVITY_COUNT +T_CUME_DIST +T_CURRENT_DATE +T_CURRENT_TIMESTAMP +T_CURRENT_USER +T_DENSE_RANK +T_FIRST_VALUE +T_LAG +T_LAST_VALUE +T_LEAD +T_MAX_PART_STRING +T_MIN_PART_STRING +T_MAX_PART_INT +T_MIN_PART_INT +T_MAX_PART_DATE +T_MIN_PART_DATE +T_PART_COUNT +T_PART_LOC +T_RANK +T_ROW_NUMBER +T_STDEV +T_SYSDATE +T_VARIANCE +T_USER +T_ADD +T_COLON +T_COMMA +T_PIPE +T_DIV +T_DOT +T_DOT2 +T_EQUAL +T_EQUAL2 +T_SHARP +T_NOTE +T_NOTEQUAL +T_NOTEQUAL2 +T_GREATER +T_GREATEREQUAL +T_LESS +T_LESSEQUAL +T_MUL +T_PRECENT +T_CALLS +T_OPEN_B +T_OPEN_P +T_OPEN_SB +T_CLOSE_B +T_CLOSE_P +T_CLOSE_SB +T_SEMICOLON +T_SUB +L_ID +L_S_STRING +L_D_STRING +L_INT +L_DEC +L_WS +L_M_COMMENT +L_S_COMMENT +L_FILE +L_LABEL +L_ID_PART +L_STR_ESC_D +L_DIGIT +L_BLANK +A +B +C +D +E +F +G +H +I +J +K +L +M +N +O +P +Q +R +S +T +U +V +W +X +Y +Z channel names: DEFAULT_TOKEN_CHANNEL @@ -44,4 +1172,4 @@ mode names: DEFAULT_MODE atn: -[3, 24715, 42794, 33075, 47597, 16764, 15335, 30598, 22884, 2, 12, 43, 8, 1, 4, 2, 9, 2, 4, 3, 9, 3, 4, 4, 9, 4, 4, 5, 9, 5, 4, 6, 9, 6, 4, 7, 9, 7, 4, 8, 9, 8, 4, 9, 9, 9, 4, 10, 9, 10, 4, 11, 9, 11, 3, 2, 3, 2, 3, 3, 3, 3, 3, 4, 3, 4, 3, 5, 3, 5, 3, 6, 3, 6, 3, 7, 3, 7, 3, 8, 3, 8, 3, 9, 3, 9, 3, 10, 3, 10, 3, 11, 3, 11, 2, 2, 12, 3, 3, 5, 4, 7, 5, 9, 6, 11, 7, 13, 8, 15, 9, 17, 10, 19, 11, 21, 12, 3, 2, 2, 2, 42, 2, 3, 3, 2, 2, 2, 2, 5, 3, 2, 2, 2, 2, 7, 3, 2, 2, 2, 2, 9, 3, 2, 2, 2, 2, 11, 3, 2, 2, 2, 2, 13, 3, 2, 2, 2, 2, 15, 3, 2, 2, 2, 2, 17, 3, 2, 2, 2, 2, 19, 3, 2, 2, 2, 2, 21, 3, 2, 2, 2, 3, 23, 3, 2, 2, 2, 5, 25, 3, 2, 2, 2, 7, 27, 3, 2, 2, 2, 9, 29, 3, 2, 2, 2, 11, 31, 3, 2, 2, 2, 13, 33, 3, 2, 2, 2, 15, 35, 3, 2, 2, 2, 17, 37, 3, 2, 2, 2, 19, 39, 3, 2, 2, 2, 21, 41, 3, 2, 2, 2, 23, 24, 7, 66, 2, 2, 24, 4, 3, 2, 2, 2, 25, 26, 7, 37, 2, 2, 26, 6, 3, 2, 2, 2, 27, 28, 7, 49, 2, 2, 28, 8, 3, 2, 2, 2, 29, 30, 7, 39, 2, 2, 30, 10, 3, 2, 2, 2, 31, 32, 7, 48, 2, 2, 32, 12, 3, 2, 2, 2, 33, 34, 7, 44, 2, 2, 34, 14, 3, 2, 2, 2, 35, 36, 7, 35, 2, 2, 36, 16, 3, 2, 2, 2, 37, 38, 7, 61, 2, 2, 38, 18, 3, 2, 2, 2, 39, 40, 7, 47, 2, 2, 40, 20, 3, 2, 2, 2, 41, 42, 7, 45, 2, 2, 42, 22, 3, 2, 2, 2, 3, 2, 2] \ No newline at end of file +[3, 24715, 42794, 33075, 47597, 16764, 15335, 30598, 22884, 2, 378, 3641, 8, 1, 4, 2, 9, 2, 4, 3, 9, 3, 4, 4, 9, 4, 4, 5, 9, 5, 4, 6, 9, 6, 4, 7, 9, 7, 4, 8, 9, 8, 4, 9, 9, 9, 4, 10, 9, 10, 4, 11, 9, 11, 4, 12, 9, 12, 4, 13, 9, 13, 4, 14, 9, 14, 4, 15, 9, 15, 4, 16, 9, 16, 4, 17, 9, 17, 4, 18, 9, 18, 4, 19, 9, 19, 4, 20, 9, 20, 4, 21, 9, 21, 4, 22, 9, 22, 4, 23, 9, 23, 4, 24, 9, 24, 4, 25, 9, 25, 4, 26, 9, 26, 4, 27, 9, 27, 4, 28, 9, 28, 4, 29, 9, 29, 4, 30, 9, 30, 4, 31, 9, 31, 4, 32, 9, 32, 4, 33, 9, 33, 4, 34, 9, 34, 4, 35, 9, 35, 4, 36, 9, 36, 4, 37, 9, 37, 4, 38, 9, 38, 4, 39, 9, 39, 4, 40, 9, 40, 4, 41, 9, 41, 4, 42, 9, 42, 4, 43, 9, 43, 4, 44, 9, 44, 4, 45, 9, 45, 4, 46, 9, 46, 4, 47, 9, 47, 4, 48, 9, 48, 4, 49, 9, 49, 4, 50, 9, 50, 4, 51, 9, 51, 4, 52, 9, 52, 4, 53, 9, 53, 4, 54, 9, 54, 4, 55, 9, 55, 4, 56, 9, 56, 4, 57, 9, 57, 4, 58, 9, 58, 4, 59, 9, 59, 4, 60, 9, 60, 4, 61, 9, 61, 4, 62, 9, 62, 4, 63, 9, 63, 4, 64, 9, 64, 4, 65, 9, 65, 4, 66, 9, 66, 4, 67, 9, 67, 4, 68, 9, 68, 4, 69, 9, 69, 4, 70, 9, 70, 4, 71, 9, 71, 4, 72, 9, 72, 4, 73, 9, 73, 4, 74, 9, 74, 4, 75, 9, 75, 4, 76, 9, 76, 4, 77, 9, 77, 4, 78, 9, 78, 4, 79, 9, 79, 4, 80, 9, 80, 4, 81, 9, 81, 4, 82, 9, 82, 4, 83, 9, 83, 4, 84, 9, 84, 4, 85, 9, 85, 4, 86, 9, 86, 4, 87, 9, 87, 4, 88, 9, 88, 4, 89, 9, 89, 4, 90, 9, 90, 4, 91, 9, 91, 4, 92, 9, 92, 4, 93, 9, 93, 4, 94, 9, 94, 4, 95, 9, 95, 4, 96, 9, 96, 4, 97, 9, 97, 4, 98, 9, 98, 4, 99, 9, 99, 4, 100, 9, 100, 4, 101, 9, 101, 4, 102, 9, 102, 4, 103, 9, 103, 4, 104, 9, 104, 4, 105, 9, 105, 4, 106, 9, 106, 4, 107, 9, 107, 4, 108, 9, 108, 4, 109, 9, 109, 4, 110, 9, 110, 4, 111, 9, 111, 4, 112, 9, 112, 4, 113, 9, 113, 4, 114, 9, 114, 4, 115, 9, 115, 4, 116, 9, 116, 4, 117, 9, 117, 4, 118, 9, 118, 4, 119, 9, 119, 4, 120, 9, 120, 4, 121, 9, 121, 4, 122, 9, 122, 4, 123, 9, 123, 4, 124, 9, 124, 4, 125, 9, 125, 4, 126, 9, 126, 4, 127, 9, 127, 4, 128, 9, 128, 4, 129, 9, 129, 4, 130, 9, 130, 4, 131, 9, 131, 4, 132, 9, 132, 4, 133, 9, 133, 4, 134, 9, 134, 4, 135, 9, 135, 4, 136, 9, 136, 4, 137, 9, 137, 4, 138, 9, 138, 4, 139, 9, 139, 4, 140, 9, 140, 4, 141, 9, 141, 4, 142, 9, 142, 4, 143, 9, 143, 4, 144, 9, 144, 4, 145, 9, 145, 4, 146, 9, 146, 4, 147, 9, 147, 4, 148, 9, 148, 4, 149, 9, 149, 4, 150, 9, 150, 4, 151, 9, 151, 4, 152, 9, 152, 4, 153, 9, 153, 4, 154, 9, 154, 4, 155, 9, 155, 4, 156, 9, 156, 4, 157, 9, 157, 4, 158, 9, 158, 4, 159, 9, 159, 4, 160, 9, 160, 4, 161, 9, 161, 4, 162, 9, 162, 4, 163, 9, 163, 4, 164, 9, 164, 4, 165, 9, 165, 4, 166, 9, 166, 4, 167, 9, 167, 4, 168, 9, 168, 4, 169, 9, 169, 4, 170, 9, 170, 4, 171, 9, 171, 4, 172, 9, 172, 4, 173, 9, 173, 4, 174, 9, 174, 4, 175, 9, 175, 4, 176, 9, 176, 4, 177, 9, 177, 4, 178, 9, 178, 4, 179, 9, 179, 4, 180, 9, 180, 4, 181, 9, 181, 4, 182, 9, 182, 4, 183, 9, 183, 4, 184, 9, 184, 4, 185, 9, 185, 4, 186, 9, 186, 4, 187, 9, 187, 4, 188, 9, 188, 4, 189, 9, 189, 4, 190, 9, 190, 4, 191, 9, 191, 4, 192, 9, 192, 4, 193, 9, 193, 4, 194, 9, 194, 4, 195, 9, 195, 4, 196, 9, 196, 4, 197, 9, 197, 4, 198, 9, 198, 4, 199, 9, 199, 4, 200, 9, 200, 4, 201, 9, 201, 4, 202, 9, 202, 4, 203, 9, 203, 4, 204, 9, 204, 4, 205, 9, 205, 4, 206, 9, 206, 4, 207, 9, 207, 4, 208, 9, 208, 4, 209, 9, 209, 4, 210, 9, 210, 4, 211, 9, 211, 4, 212, 9, 212, 4, 213, 9, 213, 4, 214, 9, 214, 4, 215, 9, 215, 4, 216, 9, 216, 4, 217, 9, 217, 4, 218, 9, 218, 4, 219, 9, 219, 4, 220, 9, 220, 4, 221, 9, 221, 4, 222, 9, 222, 4, 223, 9, 223, 4, 224, 9, 224, 4, 225, 9, 225, 4, 226, 9, 226, 4, 227, 9, 227, 4, 228, 9, 228, 4, 229, 9, 229, 4, 230, 9, 230, 4, 231, 9, 231, 4, 232, 9, 232, 4, 233, 9, 233, 4, 234, 9, 234, 4, 235, 9, 235, 4, 236, 9, 236, 4, 237, 9, 237, 4, 238, 9, 238, 4, 239, 9, 239, 4, 240, 9, 240, 4, 241, 9, 241, 4, 242, 9, 242, 4, 243, 9, 243, 4, 244, 9, 244, 4, 245, 9, 245, 4, 246, 9, 246, 4, 247, 9, 247, 4, 248, 9, 248, 4, 249, 9, 249, 4, 250, 9, 250, 4, 251, 9, 251, 4, 252, 9, 252, 4, 253, 9, 253, 4, 254, 9, 254, 4, 255, 9, 255, 4, 256, 9, 256, 4, 257, 9, 257, 4, 258, 9, 258, 4, 259, 9, 259, 4, 260, 9, 260, 4, 261, 9, 261, 4, 262, 9, 262, 4, 263, 9, 263, 4, 264, 9, 264, 4, 265, 9, 265, 4, 266, 9, 266, 4, 267, 9, 267, 4, 268, 9, 268, 4, 269, 9, 269, 4, 270, 9, 270, 4, 271, 9, 271, 4, 272, 9, 272, 4, 273, 9, 273, 4, 274, 9, 274, 4, 275, 9, 275, 4, 276, 9, 276, 4, 277, 9, 277, 4, 278, 9, 278, 4, 279, 9, 279, 4, 280, 9, 280, 4, 281, 9, 281, 4, 282, 9, 282, 4, 283, 9, 283, 4, 284, 9, 284, 4, 285, 9, 285, 4, 286, 9, 286, 4, 287, 9, 287, 4, 288, 9, 288, 4, 289, 9, 289, 4, 290, 9, 290, 4, 291, 9, 291, 4, 292, 9, 292, 4, 293, 9, 293, 4, 294, 9, 294, 4, 295, 9, 295, 4, 296, 9, 296, 4, 297, 9, 297, 4, 298, 9, 298, 4, 299, 9, 299, 4, 300, 9, 300, 4, 301, 9, 301, 4, 302, 9, 302, 4, 303, 9, 303, 4, 304, 9, 304, 4, 305, 9, 305, 4, 306, 9, 306, 4, 307, 9, 307, 4, 308, 9, 308, 4, 309, 9, 309, 4, 310, 9, 310, 4, 311, 9, 311, 4, 312, 9, 312, 4, 313, 9, 313, 4, 314, 9, 314, 4, 315, 9, 315, 4, 316, 9, 316, 4, 317, 9, 317, 4, 318, 9, 318, 4, 319, 9, 319, 4, 320, 9, 320, 4, 321, 9, 321, 4, 322, 9, 322, 4, 323, 9, 323, 4, 324, 9, 324, 4, 325, 9, 325, 4, 326, 9, 326, 4, 327, 9, 327, 4, 328, 9, 328, 4, 329, 9, 329, 4, 330, 9, 330, 4, 331, 9, 331, 4, 332, 9, 332, 4, 333, 9, 333, 4, 334, 9, 334, 4, 335, 9, 335, 4, 336, 9, 336, 4, 337, 9, 337, 4, 338, 9, 338, 4, 339, 9, 339, 4, 340, 9, 340, 4, 341, 9, 341, 4, 342, 9, 342, 4, 343, 9, 343, 4, 344, 9, 344, 4, 345, 9, 345, 4, 346, 9, 346, 4, 347, 9, 347, 4, 348, 9, 348, 4, 349, 9, 349, 4, 350, 9, 350, 4, 351, 9, 351, 4, 352, 9, 352, 4, 353, 9, 353, 4, 354, 9, 354, 4, 355, 9, 355, 4, 356, 9, 356, 4, 357, 9, 357, 4, 358, 9, 358, 4, 359, 9, 359, 4, 360, 9, 360, 4, 361, 9, 361, 4, 362, 9, 362, 4, 363, 9, 363, 4, 364, 9, 364, 4, 365, 9, 365, 4, 366, 9, 366, 4, 367, 9, 367, 4, 368, 9, 368, 4, 369, 9, 369, 4, 370, 9, 370, 4, 371, 9, 371, 4, 372, 9, 372, 4, 373, 9, 373, 4, 374, 9, 374, 4, 375, 9, 375, 4, 376, 9, 376, 4, 377, 9, 377, 4, 378, 9, 378, 4, 379, 9, 379, 4, 380, 9, 380, 4, 381, 9, 381, 4, 382, 9, 382, 4, 383, 9, 383, 4, 384, 9, 384, 4, 385, 9, 385, 4, 386, 9, 386, 4, 387, 9, 387, 4, 388, 9, 388, 4, 389, 9, 389, 4, 390, 9, 390, 4, 391, 9, 391, 4, 392, 9, 392, 4, 393, 9, 393, 4, 394, 9, 394, 4, 395, 9, 395, 4, 396, 9, 396, 4, 397, 9, 397, 4, 398, 9, 398, 4, 399, 9, 399, 4, 400, 9, 400, 4, 401, 9, 401, 4, 402, 9, 402, 4, 403, 9, 403, 4, 404, 9, 404, 4, 405, 9, 405, 4, 406, 9, 406, 4, 407, 9, 407, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 4, 3, 4, 3, 4, 3, 4, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 7, 3, 7, 3, 7, 3, 7, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 9, 3, 9, 3, 9, 3, 9, 3, 9, 3, 9, 3, 9, 3, 9, 3, 9, 3, 9, 3, 9, 3, 9, 3, 9, 3, 10, 3, 10, 3, 10, 3, 11, 3, 11, 3, 11, 3, 11, 3, 12, 3, 12, 3, 12, 3, 12, 3, 12, 3, 12, 3, 12, 3, 12, 3, 12, 3, 12, 3, 13, 3, 13, 3, 13, 3, 14, 3, 14, 3, 14, 3, 14, 3, 14, 3, 14, 3, 14, 3, 14, 3, 14, 3, 14, 3, 14, 3, 14, 3, 14, 3, 14, 3, 14, 3, 15, 3, 15, 3, 15, 3, 15, 3, 16, 3, 16, 3, 16, 3, 16, 3, 16, 3, 16, 3, 16, 3, 16, 3, 16, 3, 16, 3, 17, 3, 17, 3, 17, 3, 17, 3, 17, 3, 17, 3, 18, 3, 18, 3, 18, 3, 18, 3, 18, 3, 18, 3, 18, 3, 18, 3, 19, 3, 19, 3, 19, 3, 19, 3, 19, 3, 19, 3, 19, 3, 20, 3, 20, 3, 20, 3, 20, 3, 20, 3, 20, 3, 20, 3, 20, 3, 20, 3, 20, 3, 20, 3, 20, 3, 20, 3, 20, 3, 21, 3, 21, 3, 21, 3, 21, 3, 21, 3, 21, 3, 21, 3, 21, 3, 21, 3, 21, 3, 21, 3, 21, 3, 21, 3, 22, 3, 22, 3, 22, 3, 22, 3, 22, 3, 22, 3, 22, 3, 22, 3, 22, 3, 22, 3, 22, 3, 22, 3, 22, 3, 22, 3, 22, 3, 23, 3, 23, 3, 23, 3, 23, 3, 24, 3, 24, 3, 24, 3, 24, 3, 24, 3, 25, 3, 25, 3, 25, 3, 25, 3, 25, 3, 25, 3, 26, 3, 26, 3, 26, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 29, 3, 29, 3, 29, 3, 29, 3, 29, 3, 29, 3, 29, 3, 30, 3, 30, 3, 30, 3, 30, 3, 30, 3, 30, 3, 30, 3, 30, 3, 31, 3, 31, 3, 31, 3, 31, 3, 31, 3, 32, 3, 32, 3, 32, 3, 32, 3, 32, 3, 32, 3, 32, 3, 32, 3, 32, 3, 32, 3, 32, 3, 32, 3, 32, 3, 33, 3, 33, 3, 33, 3, 33, 3, 33, 3, 34, 3, 34, 3, 34, 3, 34, 3, 34, 3, 35, 3, 35, 3, 35, 3, 35, 3, 35, 3, 35, 3, 35, 3, 35, 3, 35, 3, 35, 3, 36, 3, 36, 3, 36, 3, 36, 3, 36, 3, 36, 3, 36, 3, 36, 3, 37, 3, 37, 3, 37, 3, 37, 3, 37, 3, 37, 3, 37, 3, 38, 3, 38, 3, 38, 3, 38, 3, 38, 3, 38, 3, 39, 3, 39, 3, 39, 3, 39, 3, 39, 3, 39, 3, 39, 3, 39, 3, 39, 3, 39, 3, 40, 3, 40, 3, 40, 3, 40, 3, 41, 3, 41, 3, 41, 3, 41, 3, 41, 3, 41, 3, 41, 3, 41, 3, 42, 3, 42, 3, 42, 3, 42, 3, 42, 3, 42, 3, 42, 3, 42, 3, 42, 3, 42, 3, 42, 3, 43, 3, 43, 3, 43, 3, 43, 3, 43, 3, 43, 3, 43, 3, 44, 3, 44, 3, 44, 3, 44, 3, 44, 3, 44, 3, 44, 3, 44, 3, 45, 3, 45, 3, 45, 3, 45, 3, 45, 3, 45, 3, 45, 3, 45, 3, 45, 3, 46, 3, 46, 3, 46, 3, 46, 3, 46, 3, 46, 3, 46, 3, 47, 3, 47, 3, 47, 3, 47, 3, 47, 3, 47, 3, 47, 3, 47, 3, 47, 3, 48, 3, 48, 3, 48, 3, 48, 3, 48, 3, 48, 3, 48, 3, 49, 3, 49, 3, 49, 3, 49, 3, 49, 3, 49, 3, 49, 3, 49, 3, 49, 3, 49, 3, 50, 3, 50, 3, 50, 3, 50, 3, 50, 3, 50, 3, 50, 3, 50, 3, 50, 3, 50, 3, 50, 3, 51, 3, 51, 3, 51, 3, 51, 3, 51, 3, 51, 3, 51, 3, 51, 3, 51, 3, 52, 3, 52, 3, 52, 3, 52, 3, 52, 3, 53, 3, 53, 3, 53, 3, 53, 3, 53, 3, 53, 3, 54, 3, 54, 3, 54, 3, 54, 3, 54, 3, 54, 3, 54, 3, 54, 3, 54, 3, 54, 3, 55, 3, 55, 3, 55, 3, 55, 3, 55, 3, 55, 3, 55, 3, 56, 3, 56, 3, 56, 3, 56, 3, 56, 3, 56, 3, 56, 3, 56, 3, 56, 3, 57, 3, 57, 3, 57, 3, 57, 3, 57, 3, 57, 3, 57, 3, 57, 3, 58, 3, 58, 3, 58, 3, 59, 3, 59, 3, 59, 3, 59, 3, 59, 3, 59, 3, 59, 3, 59, 3, 60, 3, 60, 3, 60, 3, 60, 3, 60, 3, 60, 3, 60, 3, 60, 3, 60, 3, 60, 3, 60, 3, 60, 3, 60, 3, 60, 3, 60, 3, 61, 3, 61, 3, 61, 3, 61, 3, 61, 3, 61, 3, 61, 3, 62, 3, 62, 3, 62, 3, 62, 3, 62, 3, 62, 3, 62, 3, 62, 3, 62, 3, 63, 3, 63, 3, 63, 3, 63, 3, 63, 3, 64, 3, 64, 3, 64, 3, 64, 3, 64, 3, 65, 3, 65, 3, 65, 3, 65, 3, 65, 3, 65, 3, 65, 3, 65, 3, 65, 3, 66, 3, 66, 3, 66, 3, 66, 3, 67, 3, 67, 3, 67, 3, 67, 3, 67, 3, 68, 3, 68, 3, 68, 3, 68, 3, 69, 3, 69, 3, 69, 3, 69, 3, 69, 3, 69, 3, 69, 3, 69, 3, 70, 3, 70, 3, 70, 3, 70, 3, 70, 3, 70, 3, 70, 3, 70, 3, 71, 3, 71, 3, 71, 3, 71, 3, 71, 3, 71, 3, 71, 3, 71, 3, 72, 3, 72, 3, 72, 3, 72, 3, 72, 3, 72, 3, 72, 3, 72, 3, 72, 3, 73, 3, 73, 3, 73, 3, 73, 3, 73, 3, 73, 3, 73, 3, 73, 3, 74, 3, 74, 3, 74, 3, 74, 3, 74, 3, 74, 3, 74, 3, 74, 3, 75, 3, 75, 3, 75, 3, 75, 3, 75, 3, 75, 3, 75, 3, 75, 3, 75, 3, 75, 3, 75, 3, 76, 3, 76, 3, 76, 3, 76, 3, 76, 3, 76, 3, 76, 3, 77, 3, 77, 3, 77, 3, 77, 3, 77, 3, 77, 3, 77, 3, 77, 3, 77, 3, 77, 3, 78, 3, 78, 3, 78, 3, 78, 3, 78, 3, 78, 3, 78, 3, 78, 3, 78, 3, 78, 3, 79, 3, 79, 3, 79, 3, 79, 3, 79, 3, 80, 3, 80, 3, 80, 3, 80, 3, 80, 3, 80, 3, 80, 3, 80, 3, 80, 3, 81, 3, 81, 3, 81, 3, 81, 3, 81, 3, 81, 3, 81, 3, 81, 3, 81, 3, 81, 3, 81, 3, 81, 3, 82, 3, 82, 3, 82, 3, 82, 3, 83, 3, 83, 3, 83, 3, 83, 3, 83, 3, 83, 3, 83, 3, 83, 3, 83, 3, 83, 3, 84, 3, 84, 3, 84, 3, 84, 3, 84, 3, 84, 3, 84, 3, 84, 3, 84, 3, 85, 3, 85, 3, 85, 3, 85, 3, 85, 3, 85, 3, 85, 3, 85, 3, 85, 3, 85, 3, 85, 3, 86, 3, 86, 3, 86, 3, 87, 3, 87, 3, 87, 3, 87, 3, 87, 3, 87, 3, 87, 3, 88, 3, 88, 3, 88, 3, 88, 3, 88, 3, 89, 3, 89, 3, 89, 3, 89, 3, 89, 3, 89, 3, 89, 3, 89, 3, 90, 3, 90, 3, 90, 3, 90, 3, 90, 3, 91, 3, 91, 3, 91, 3, 91, 3, 91, 3, 91, 3, 91, 3, 92, 3, 92, 3, 92, 3, 92, 3, 92, 3, 92, 3, 93, 3, 93, 3, 93, 3, 93, 3, 93, 3, 93, 3, 93, 3, 94, 3, 94, 3, 94, 3, 94, 3, 95, 3, 95, 3, 95, 3, 95, 3, 95, 3, 95, 3, 95, 3, 96, 3, 96, 3, 96, 3, 96, 3, 96, 3, 96, 3, 96, 3, 96, 3, 97, 3, 97, 3, 97, 3, 97, 3, 97, 3, 97, 3, 97, 3, 98, 3, 98, 3, 98, 3, 98, 3, 98, 3, 99, 3, 99, 3, 99, 3, 99, 3, 99, 3, 99, 3, 99, 3, 99, 3, 100, 3, 100, 3, 100, 3, 100, 3, 100, 3, 100, 3, 100, 3, 100, 3, 100, 3, 100, 3, 101, 3, 101, 3, 101, 3, 101, 3, 101, 3, 101, 3, 101, 3, 101, 3, 101, 3, 101, 3, 102, 3, 102, 3, 102, 3, 102, 3, 102, 3, 102, 3, 102, 3, 103, 3, 103, 3, 103, 3, 103, 3, 103, 3, 104, 3, 104, 3, 104, 3, 104, 3, 104, 3, 104, 3, 104, 3, 104, 3, 104, 3, 105, 3, 105, 3, 105, 3, 105, 3, 105, 3, 105, 3, 106, 3, 106, 3, 106, 3, 106, 3, 106, 3, 106, 3, 107, 3, 107, 3, 107, 3, 107, 3, 107, 3, 107, 3, 107, 3, 108, 3, 108, 3, 108, 3, 108, 3, 108, 3, 109, 3, 109, 3, 109, 3, 109, 3, 109, 3, 109, 3, 110, 3, 110, 3, 110, 3, 110, 3, 110, 3, 110, 3, 111, 3, 111, 3, 111, 3, 111, 3, 112, 3, 112, 3, 112, 3, 112, 3, 112, 3, 112, 3, 112, 3, 112, 3, 113, 3, 113, 3, 113, 3, 113, 3, 113, 3, 113, 3, 113, 3, 114, 3, 114, 3, 114, 3, 114, 3, 114, 3, 114, 3, 115, 3, 115, 3, 115, 3, 115, 3, 115, 3, 116, 3, 116, 3, 116, 3, 116, 3, 116, 3, 117, 3, 117, 3, 117, 3, 117, 3, 117, 3, 117, 3, 117, 3, 117, 3, 117, 3, 118, 3, 118, 3, 118, 3, 118, 3, 119, 3, 119, 3, 119, 3, 119, 3, 119, 3, 119, 3, 119, 3, 120, 3, 120, 3, 120, 3, 121, 3, 121, 3, 121, 3, 121, 3, 121, 3, 121, 3, 122, 3, 122, 3, 122, 3, 122, 3, 122, 3, 122, 3, 123, 3, 123, 3, 123, 3, 123, 3, 123, 3, 123, 3, 123, 3, 123, 3, 124, 3, 124, 3, 124, 3, 124, 3, 124, 3, 125, 3, 125, 3, 125, 3, 125, 3, 125, 3, 125, 3, 125, 3, 126, 3, 126, 3, 126, 3, 126, 3, 126, 3, 127, 3, 127, 3, 127, 3, 127, 3, 127, 3, 128, 3, 128, 3, 128, 3, 128, 3, 128, 3, 129, 3, 129, 3, 129, 3, 129, 3, 129, 3, 129, 3, 129, 3, 129, 3, 129, 3, 130, 3, 130, 3, 130, 3, 131, 3, 131, 3, 131, 3, 131, 3, 131, 3, 131, 3, 131, 3, 132, 3, 132, 3, 132, 3, 132, 3, 132, 3, 132, 3, 132, 3, 132, 3, 132, 3, 132, 3, 133, 3, 133, 3, 133, 3, 134, 3, 134, 3, 134, 3, 134, 3, 134, 3, 134, 3, 134, 3, 134, 3, 135, 3, 135, 3, 135, 3, 135, 3, 135, 3, 135, 3, 136, 3, 136, 3, 136, 3, 136, 3, 136, 3, 136, 3, 136, 3, 136, 3, 136, 3, 137, 3, 137, 3, 137, 3, 137, 3, 137, 3, 137, 3, 138, 3, 138, 3, 138, 3, 138, 3, 138, 3, 138, 3, 139, 3, 139, 3, 139, 3, 139, 3, 139, 3, 139, 3, 139, 3, 140, 3, 140, 3, 140, 3, 140, 3, 141, 3, 141, 3, 141, 3, 141, 3, 141, 3, 142, 3, 142, 3, 142, 3, 142, 3, 142, 3, 143, 3, 143, 3, 143, 3, 143, 3, 143, 3, 144, 3, 144, 3, 144, 3, 144, 3, 144, 3, 144, 3, 144, 3, 144, 3, 145, 3, 145, 3, 145, 3, 145, 3, 145, 3, 145, 3, 145, 3, 145, 3, 145, 3, 145, 3, 146, 3, 146, 3, 146, 3, 146, 3, 146, 3, 146, 3, 146, 3, 146, 3, 146, 3, 147, 3, 147, 3, 147, 3, 147, 3, 147, 3, 148, 3, 148, 3, 148, 3, 148, 3, 148, 3, 148, 3, 148, 3, 148, 3, 149, 3, 149, 3, 149, 3, 150, 3, 150, 3, 150, 3, 150, 3, 150, 3, 150, 3, 150, 3, 151, 3, 151, 3, 151, 3, 151, 3, 151, 3, 151, 3, 152, 3, 152, 3, 152, 3, 152, 3, 152, 3, 153, 3, 153, 3, 153, 3, 153, 3, 153, 3, 154, 3, 154, 3, 154, 3, 154, 3, 155, 3, 155, 3, 155, 3, 155, 3, 155, 3, 156, 3, 156, 3, 156, 3, 156, 3, 156, 3, 156, 3, 156, 3, 156, 3, 156, 3, 157, 3, 157, 3, 157, 3, 157, 3, 157, 3, 157, 3, 158, 3, 158, 3, 158, 3, 158, 3, 158, 3, 159, 3, 159, 3, 159, 3, 159, 3, 159, 3, 160, 3, 160, 3, 160, 3, 160, 3, 160, 3, 160, 3, 161, 3, 161, 3, 161, 3, 161, 3, 161, 3, 161, 3, 162, 3, 162, 3, 162, 3, 162, 3, 162, 3, 162, 3, 163, 3, 163, 3, 163, 3, 163, 3, 163, 3, 163, 3, 163, 3, 163, 3, 163, 3, 164, 3, 164, 3, 164, 3, 164, 3, 164, 3, 164, 3, 164, 3, 164, 3, 165, 3, 165, 3, 165, 3, 165, 3, 165, 3, 165, 3, 165, 3, 165, 3, 165, 3, 166, 3, 166, 3, 166, 3, 166, 3, 166, 3, 166, 3, 167, 3, 167, 3, 167, 3, 167, 3, 168, 3, 168, 3, 168, 3, 168, 3, 168, 3, 168, 3, 168, 3, 169, 3, 169, 3, 169, 3, 169, 3, 169, 3, 169, 3, 169, 3, 169, 3, 170, 3, 170, 3, 170, 3, 170, 3, 170, 3, 171, 3, 171, 3, 171, 3, 171, 3, 172, 3, 172, 3, 172, 3, 172, 3, 172, 3, 172, 3, 172, 3, 172, 3, 173, 3, 173, 3, 173, 3, 173, 3, 174, 3, 174, 3, 174, 3, 174, 3, 174, 3, 174, 3, 174, 3, 174, 3, 174, 3, 175, 3, 175, 3, 175, 3, 175, 3, 175, 3, 175, 3, 176, 3, 176, 3, 176, 3, 176, 3, 176, 3, 176, 3, 176, 3, 176, 3, 176, 3, 176, 3, 176, 3, 176, 3, 176, 3, 177, 3, 177, 3, 177, 3, 177, 3, 177, 3, 177, 3, 177, 3, 177, 3, 177, 3, 177, 3, 177, 3, 177, 3, 178, 3, 178, 3, 178, 3, 178, 3, 178, 3, 178, 3, 178, 3, 178, 3, 178, 3, 178, 3, 178, 3, 178, 3, 178, 3, 179, 3, 179, 3, 179, 3, 179, 3, 180, 3, 180, 3, 180, 3, 180, 3, 180, 3, 180, 3, 180, 3, 180, 3, 180, 3, 181, 3, 181, 3, 181, 3, 181, 3, 181, 3, 181, 3, 182, 3, 182, 3, 182, 3, 182, 3, 183, 3, 183, 3, 183, 3, 183, 3, 183, 3, 183, 3, 183, 3, 183, 3, 183, 3, 184, 3, 184, 3, 184, 3, 185, 3, 185, 3, 185, 3, 185, 3, 185, 3, 185, 3, 185, 3, 185, 3, 186, 3, 186, 3, 186, 3, 186, 3, 186, 3, 186, 3, 186, 3, 186, 3, 186, 3, 186, 3, 186, 3, 187, 3, 187, 3, 187, 3, 187, 3, 187, 3, 187, 3, 187, 3, 187, 3, 187, 3, 187, 3, 188, 3, 188, 3, 188, 3, 188, 3, 188, 3, 189, 3, 189, 3, 189, 3, 189, 3, 190, 3, 190, 3, 190, 3, 190, 3, 190, 3, 190, 3, 190, 3, 190, 3, 190, 3, 191, 3, 191, 3, 191, 3, 191, 3, 191, 3, 192, 3, 192, 3, 192, 3, 192, 3, 192, 3, 192, 3, 192, 3, 192, 3, 193, 3, 193, 3, 193, 3, 193, 3, 193, 3, 193, 3, 193, 3, 194, 3, 194, 3, 194, 3, 194, 3, 194, 3, 194, 3, 194, 3, 195, 3, 195, 3, 195, 3, 195, 3, 196, 3, 196, 3, 196, 3, 197, 3, 197, 3, 197, 3, 197, 3, 197, 3, 198, 3, 198, 3, 198, 3, 198, 3, 198, 3, 199, 3, 199, 3, 199, 3, 200, 3, 200, 3, 200, 3, 200, 3, 200, 3, 200, 3, 201, 3, 201, 3, 201, 3, 201, 3, 202, 3, 202, 3, 202, 3, 202, 3, 202, 3, 202, 3, 203, 3, 203, 3, 203, 3, 203, 3, 203, 3, 204, 3, 204, 3, 204, 3, 204, 3, 204, 3, 204, 3, 204, 3, 204, 3, 204, 3, 204, 3, 205, 3, 205, 3, 205, 3, 205, 3, 205, 3, 205, 3, 206, 3, 206, 3, 206, 3, 206, 3, 206, 3, 206, 3, 206, 3, 206, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 208, 3, 208, 3, 208, 3, 208, 3, 208, 3, 208, 3, 208, 3, 208, 3, 209, 3, 209, 3, 209, 3, 209, 3, 209, 3, 209, 3, 209, 3, 209, 3, 210, 3, 210, 3, 210, 3, 210, 3, 210, 3, 210, 3, 210, 3, 210, 3, 210, 3, 210, 3, 210, 3, 210, 3, 211, 3, 211, 3, 211, 3, 211, 3, 211, 3, 211, 3, 211, 3, 211, 3, 211, 3, 211, 3, 212, 3, 212, 3, 212, 3, 212, 3, 212, 3, 212, 3, 212, 3, 212, 3, 212, 3, 213, 3, 213, 3, 213, 3, 213, 3, 213, 3, 213, 3, 213, 3, 213, 3, 214, 3, 214, 3, 214, 3, 214, 3, 214, 3, 214, 3, 215, 3, 215, 3, 215, 3, 215, 3, 215, 3, 216, 3, 216, 3, 216, 3, 216, 3, 216, 3, 216, 3, 216, 3, 216, 3, 216, 3, 216, 3, 217, 3, 217, 3, 217, 3, 217, 3, 217, 3, 217, 3, 217, 3, 217, 3, 218, 3, 218, 3, 218, 3, 218, 3, 218, 3, 218, 3, 218, 3, 218, 3, 218, 3, 218, 3, 218, 3, 219, 3, 219, 3, 219, 3, 219, 3, 219, 3, 220, 3, 220, 3, 220, 3, 220, 3, 220, 3, 220, 3, 220, 3, 220, 3, 220, 3, 220, 3, 220, 3, 220, 3, 220, 3, 220, 3, 220, 3, 220, 3, 220, 3, 220, 3, 221, 3, 221, 3, 221, 3, 221, 3, 221, 3, 221, 3, 222, 3, 222, 3, 222, 3, 222, 3, 222, 3, 223, 3, 223, 3, 223, 3, 223, 3, 223, 3, 223, 3, 223, 3, 223, 3, 223, 3, 223, 3, 223, 3, 224, 3, 224, 3, 224, 3, 224, 3, 224, 3, 224, 3, 224, 3, 225, 3, 225, 3, 225, 3, 225, 3, 225, 3, 225, 3, 225, 3, 225, 3, 226, 3, 226, 3, 226, 3, 226, 3, 226, 3, 226, 3, 226, 3, 226, 3, 226, 3, 227, 3, 227, 3, 227, 3, 227, 3, 227, 3, 227, 3, 227, 3, 227, 3, 227, 3, 228, 3, 228, 3, 228, 3, 228, 3, 228, 3, 228, 3, 228, 3, 229, 3, 229, 3, 229, 3, 229, 3, 229, 3, 229, 3, 229, 3, 229, 3, 229, 3, 229, 3, 229, 3, 229, 3, 229, 3, 229, 3, 229, 3, 229, 3, 229, 3, 229, 3, 229, 3, 230, 3, 230, 3, 230, 3, 230, 3, 230, 3, 230, 3, 230, 3, 231, 3, 231, 3, 231, 3, 231, 3, 231, 3, 231, 3, 231, 3, 231, 3, 232, 3, 232, 3, 232, 3, 232, 3, 232, 3, 232, 3, 232, 3, 232, 3, 233, 3, 233, 3, 233, 3, 233, 3, 233, 3, 233, 3, 234, 3, 234, 3, 234, 3, 234, 3, 234, 3, 234, 3, 235, 3, 235, 3, 235, 3, 235, 3, 235, 3, 236, 3, 236, 3, 236, 3, 236, 3, 236, 3, 236, 3, 236, 3, 236, 3, 236, 3, 237, 3, 237, 3, 237, 3, 237, 3, 238, 3, 238, 3, 238, 3, 238, 3, 238, 3, 239, 3, 239, 3, 239, 3, 239, 3, 239, 3, 239, 3, 239, 3, 239, 3, 240, 3, 240, 3, 240, 3, 240, 3, 240, 3, 240, 3, 240, 3, 240, 3, 240, 3, 240, 3, 241, 3, 241, 3, 241, 3, 242, 3, 242, 3, 242, 3, 243, 3, 243, 3, 243, 3, 243, 3, 244, 3, 244, 3, 244, 3, 244, 3, 244, 3, 245, 3, 245, 3, 245, 3, 245, 3, 245, 3, 245, 3, 245, 3, 246, 3, 246, 3, 246, 3, 246, 3, 246, 3, 246, 3, 246, 3, 247, 3, 247, 3, 247, 3, 247, 3, 247, 3, 247, 3, 247, 3, 247, 3, 248, 3, 248, 3, 248, 3, 248, 3, 248, 3, 248, 3, 248, 3, 248, 3, 248, 3, 249, 3, 249, 3, 249, 3, 249, 3, 249, 3, 249, 3, 249, 3, 249, 3, 250, 3, 250, 3, 250, 3, 250, 3, 251, 3, 251, 3, 251, 3, 251, 3, 251, 3, 251, 3, 251, 3, 252, 3, 252, 3, 252, 3, 252, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 254, 3, 254, 3, 254, 3, 254, 3, 254, 3, 254, 3, 254, 3, 254, 3, 254, 3, 255, 3, 255, 3, 255, 3, 255, 3, 255, 3, 256, 3, 256, 3, 256, 3, 256, 3, 256, 3, 256, 3, 257, 3, 257, 3, 257, 3, 257, 3, 257, 3, 257, 3, 257, 3, 258, 3, 258, 3, 258, 3, 258, 3, 258, 3, 258, 3, 258, 3, 258, 3, 258, 3, 258, 3, 258, 3, 258, 3, 258, 3, 258, 3, 259, 3, 259, 3, 259, 3, 259, 3, 259, 3, 259, 3, 259, 3, 259, 3, 259, 3, 259, 3, 259, 3, 259, 3, 259, 3, 260, 3, 260, 3, 260, 3, 260, 3, 260, 3, 260, 3, 260, 3, 260, 3, 260, 3, 260, 3, 260, 3, 260, 3, 260, 3, 260, 3, 260, 3, 261, 3, 261, 3, 261, 3, 261, 3, 261, 3, 261, 3, 261, 3, 261, 3, 261, 3, 261, 3, 261, 3, 261, 3, 261, 3, 261, 3, 262, 3, 262, 3, 262, 3, 262, 3, 262, 3, 262, 3, 262, 3, 262, 3, 262, 3, 263, 3, 263, 3, 263, 3, 263, 3, 264, 3, 264, 3, 264, 3, 264, 3, 264, 3, 264, 3, 264, 3, 264, 3, 264, 3, 264, 3, 264, 3, 264, 3, 264, 3, 265, 3, 265, 3, 265, 3, 265, 3, 265, 3, 265, 3, 265, 3, 265, 3, 265, 3, 265, 3, 266, 3, 266, 3, 266, 3, 266, 3, 266, 3, 266, 3, 266, 3, 266, 3, 266, 3, 267, 3, 267, 3, 267, 3, 267, 3, 267, 3, 267, 3, 267, 3, 267, 3, 267, 3, 267, 3, 267, 3, 268, 3, 268, 3, 268, 3, 268, 3, 268, 3, 268, 3, 269, 3, 269, 3, 269, 3, 269, 3, 269, 3, 269, 3, 269, 3, 269, 3, 269, 3, 269, 3, 269, 3, 270, 3, 270, 3, 270, 3, 270, 3, 270, 3, 271, 3, 271, 3, 271, 3, 271, 3, 271, 3, 271, 3, 271, 3, 271, 3, 272, 3, 272, 3, 272, 3, 272, 3, 272, 3, 272, 3, 272, 3, 273, 3, 273, 3, 273, 3, 273, 3, 273, 3, 273, 3, 273, 3, 274, 3, 274, 3, 274, 3, 274, 3, 274, 3, 274, 3, 274, 3, 275, 3, 275, 3, 275, 3, 275, 3, 275, 3, 275, 3, 275, 3, 275, 3, 275, 3, 275, 3, 276, 3, 276, 3, 276, 3, 276, 3, 277, 3, 277, 3, 277, 3, 277, 3, 277, 3, 277, 3, 277, 3, 277, 3, 278, 3, 278, 3, 278, 3, 278, 3, 278, 3, 278, 3, 278, 3, 278, 3, 278, 3, 278, 3, 278, 3, 278, 3, 278, 3, 278, 3, 279, 3, 279, 3, 279, 3, 279, 3, 279, 3, 279, 3, 280, 3, 280, 3, 280, 3, 280, 3, 280, 3, 280, 3, 280, 3, 280, 3, 280, 3, 280, 3, 280, 3, 281, 3, 281, 3, 281, 3, 281, 3, 281, 3, 281, 3, 281, 3, 281, 3, 281, 3, 281, 3, 282, 3, 282, 3, 282, 3, 282, 3, 282, 3, 282, 3, 282, 3, 282, 3, 282, 3, 282, 3, 282, 3, 283, 3, 283, 3, 283, 3, 283, 3, 283, 3, 283, 3, 283, 3, 283, 3, 283, 3, 283, 3, 283, 3, 283, 3, 283, 3, 284, 3, 284, 3, 284, 3, 284, 3, 284, 3, 285, 3, 285, 3, 285, 3, 285, 3, 285, 3, 285, 3, 285, 3, 285, 3, 285, 3, 285, 3, 286, 3, 286, 3, 286, 3, 286, 3, 286, 3, 286, 3, 286, 3, 286, 3, 287, 3, 287, 3, 287, 3, 287, 3, 287, 3, 287, 3, 288, 3, 288, 3, 288, 3, 289, 3, 289, 3, 289, 3, 289, 3, 290, 3, 290, 3, 290, 3, 290, 3, 290, 3, 290, 3, 290, 3, 290, 3, 290, 3, 290, 3, 290, 3, 290, 3, 291, 3, 291, 3, 291, 3, 291, 3, 291, 3, 292, 3, 292, 3, 292, 3, 292, 3, 292, 3, 292, 3, 292, 3, 292, 3, 292, 3, 293, 3, 293, 3, 293, 3, 293, 3, 293, 3, 294, 3, 294, 3, 294, 3, 294, 3, 294, 3, 294, 3, 295, 3, 295, 3, 295, 3, 295, 3, 295, 3, 295, 3, 295, 3, 296, 3, 296, 3, 296, 3, 296, 3, 296, 3, 296, 3, 296, 3, 297, 3, 297, 3, 297, 3, 298, 3, 298, 3, 298, 3, 298, 3, 299, 3, 299, 3, 299, 3, 299, 3, 299, 3, 299, 3, 300, 3, 300, 3, 300, 3, 300, 3, 300, 3, 300, 3, 301, 3, 301, 3, 301, 3, 301, 3, 301, 3, 301, 3, 301, 3, 302, 3, 302, 3, 302, 3, 302, 3, 303, 3, 303, 3, 303, 3, 303, 3, 303, 3, 303, 3, 303, 3, 303, 3, 304, 3, 304, 3, 304, 3, 304, 3, 304, 3, 304, 3, 304, 3, 304, 3, 304, 3, 305, 3, 305, 3, 305, 3, 305, 3, 305, 3, 305, 3, 305, 3, 305, 3, 306, 3, 306, 3, 306, 3, 306, 3, 306, 3, 306, 3, 306, 3, 306, 3, 306, 3, 307, 3, 307, 3, 307, 3, 307, 3, 307, 3, 308, 3, 308, 3, 308, 3, 308, 3, 308, 3, 308, 3, 309, 3, 309, 3, 309, 3, 309, 3, 309, 3, 309, 3, 310, 3, 310, 3, 310, 3, 310, 3, 310, 3, 311, 3, 311, 3, 311, 3, 311, 3, 311, 3, 311, 3, 311, 3, 311, 3, 312, 3, 312, 3, 312, 3, 312, 3, 312, 3, 313, 3, 313, 3, 313, 3, 313, 3, 313, 3, 313, 3, 313, 3, 313, 3, 313, 3, 313, 3, 313, 3, 314, 3, 314, 3, 314, 3, 314, 3, 315, 3, 315, 3, 315, 3, 315, 3, 316, 3, 316, 3, 316, 3, 316, 3, 316, 3, 316, 3, 316, 3, 316, 3, 316, 3, 316, 3, 316, 3, 316, 3, 316, 3, 316, 3, 316, 3, 317, 3, 317, 3, 317, 3, 317, 3, 317, 3, 317, 3, 317, 3, 317, 3, 317, 3, 317, 3, 318, 3, 318, 3, 318, 3, 318, 3, 318, 3, 318, 3, 318, 3, 318, 3, 318, 3, 318, 3, 318, 3, 318, 3, 318, 3, 319, 3, 319, 3, 319, 3, 319, 3, 319, 3, 319, 3, 319, 3, 319, 3, 319, 3, 319, 3, 319, 3, 319, 3, 319, 3, 319, 3, 319, 3, 319, 3, 319, 3, 319, 3, 320, 3, 320, 3, 320, 3, 320, 3, 320, 3, 320, 3, 320, 3, 320, 3, 320, 3, 320, 3, 320, 3, 320, 3, 320, 3, 321, 3, 321, 3, 321, 3, 321, 3, 321, 3, 321, 3, 321, 3, 321, 3, 321, 3, 321, 3, 321, 3, 322, 3, 322, 3, 322, 3, 322, 3, 322, 3, 322, 3, 322, 3, 322, 3, 322, 3, 322, 3, 322, 3, 322, 3, 323, 3, 323, 3, 323, 3, 323, 3, 324, 3, 324, 3, 324, 3, 324, 3, 324, 3, 324, 3, 324, 3, 324, 3, 324, 3, 324, 3, 324, 3, 325, 3, 325, 3, 325, 3, 325, 3, 325, 3, 326, 3, 326, 3, 326, 3, 326, 3, 326, 3, 326, 3, 326, 3, 326, 3, 326, 3, 326, 3, 326, 3, 326, 3, 326, 3, 326, 3, 326, 3, 326, 3, 327, 3, 327, 3, 327, 3, 327, 3, 327, 3, 327, 3, 327, 3, 327, 3, 327, 3, 327, 3, 327, 3, 327, 3, 327, 3, 327, 3, 327, 3, 327, 3, 328, 3, 328, 3, 328, 3, 328, 3, 328, 3, 328, 3, 328, 3, 328, 3, 328, 3, 328, 3, 328, 3, 328, 3, 328, 3, 329, 3, 329, 3, 329, 3, 329, 3, 329, 3, 329, 3, 329, 3, 329, 3, 329, 3, 329, 3, 329, 3, 329, 3, 329, 3, 330, 3, 330, 3, 330, 3, 330, 3, 330, 3, 330, 3, 330, 3, 330, 3, 330, 3, 330, 3, 330, 3, 330, 3, 330, 3, 330, 3, 331, 3, 331, 3, 331, 3, 331, 3, 331, 3, 331, 3, 331, 3, 331, 3, 331, 3, 331, 3, 331, 3, 331, 3, 331, 3, 331, 3, 332, 3, 332, 3, 332, 3, 332, 3, 332, 3, 332, 3, 332, 3, 332, 3, 332, 3, 332, 3, 332, 3, 333, 3, 333, 3, 333, 3, 333, 3, 333, 3, 333, 3, 333, 3, 333, 3, 333, 3, 334, 3, 334, 3, 334, 3, 334, 3, 334, 3, 335, 3, 335, 3, 335, 3, 335, 3, 335, 3, 335, 3, 335, 3, 335, 3, 335, 3, 335, 3, 335, 3, 336, 3, 336, 3, 336, 3, 336, 3, 336, 3, 336, 3, 337, 3, 337, 3, 337, 3, 337, 3, 337, 3, 337, 3, 337, 3, 337, 3, 338, 3, 338, 3, 338, 3, 338, 3, 338, 3, 338, 3, 338, 3, 338, 3, 338, 3, 339, 3, 339, 3, 339, 3, 339, 3, 339, 3, 340, 3, 340, 3, 341, 3, 341, 3, 342, 3, 342, 3, 343, 3, 343, 3, 343, 3, 344, 3, 344, 3, 345, 3, 345, 3, 346, 3, 346, 3, 346, 3, 347, 3, 347, 3, 348, 3, 348, 3, 348, 3, 349, 3, 349, 3, 350, 3, 350, 3, 351, 3, 351, 3, 351, 3, 352, 3, 352, 3, 352, 3, 353, 3, 353, 3, 354, 3, 354, 3, 354, 3, 355, 3, 355, 3, 356, 3, 356, 3, 356, 3, 357, 3, 357, 3, 358, 3, 358, 3, 359, 3, 359, 3, 360, 3, 360, 3, 361, 3, 361, 3, 362, 3, 362, 3, 363, 3, 363, 3, 364, 3, 364, 3, 365, 3, 365, 3, 366, 3, 366, 3, 367, 3, 367, 3, 368, 3, 368, 3, 369, 3, 369, 3, 369, 3, 369, 3, 369, 3, 369, 7, 369, 3420, 10, 369, 12, 369, 14, 369, 3423, 11, 369, 3, 369, 3, 369, 3, 370, 3, 370, 3, 370, 7, 370, 3430, 10, 370, 12, 370, 14, 370, 3433, 11, 370, 3, 370, 3, 370, 3, 371, 6, 371, 3438, 10, 371, 13, 371, 14, 371, 3439, 3, 372, 6, 372, 3443, 10, 372, 13, 372, 14, 372, 3444, 3, 372, 3, 372, 3, 372, 7, 372, 3450, 10, 372, 12, 372, 14, 372, 3453, 11, 372, 3, 372, 3, 372, 6, 372, 3457, 10, 372, 13, 372, 14, 372, 3458, 5, 372, 3461, 10, 372, 3, 373, 6, 373, 3464, 10, 373, 13, 373, 14, 373, 3465, 3, 373, 3, 373, 3, 374, 3, 374, 3, 374, 3, 374, 7, 374, 3474, 10, 374, 12, 374, 14, 374, 3477, 11, 374, 3, 374, 3, 374, 3, 374, 3, 374, 3, 374, 3, 375, 3, 375, 3, 375, 3, 375, 5, 375, 3488, 10, 375, 3, 375, 7, 375, 3491, 10, 375, 12, 375, 14, 375, 3494, 11, 375, 3, 375, 5, 375, 3497, 10, 375, 3, 375, 3, 375, 3, 375, 3, 375, 3, 376, 3, 376, 3, 376, 5, 376, 3506, 10, 376, 5, 376, 3508, 10, 376, 3, 376, 3, 376, 3, 376, 7, 376, 3513, 10, 376, 12, 376, 14, 376, 3516, 11, 376, 3, 377, 3, 377, 3, 377, 7, 377, 3521, 10, 377, 12, 377, 14, 377, 3524, 11, 377, 3, 377, 3, 377, 3, 378, 3, 378, 3, 378, 3, 378, 7, 378, 3532, 10, 378, 12, 378, 14, 378, 3535, 11, 378, 3, 378, 3, 378, 3, 378, 7, 378, 3540, 10, 378, 12, 378, 14, 378, 3543, 11, 378, 3, 378, 3, 378, 3, 378, 3, 378, 3, 378, 6, 378, 3550, 10, 378, 13, 378, 14, 378, 3551, 3, 378, 3, 378, 7, 378, 3556, 10, 378, 12, 378, 14, 378, 3559, 11, 378, 3, 378, 3, 378, 3, 378, 7, 378, 3564, 10, 378, 12, 378, 14, 378, 3567, 11, 378, 3, 378, 3, 378, 3, 378, 7, 378, 3572, 10, 378, 12, 378, 14, 378, 3575, 11, 378, 3, 378, 5, 378, 3578, 10, 378, 3, 379, 3, 379, 3, 379, 3, 379, 5, 379, 3584, 10, 379, 3, 380, 3, 380, 3, 381, 3, 381, 3, 382, 3, 382, 3, 383, 3, 383, 3, 384, 3, 384, 3, 385, 3, 385, 3, 386, 3, 386, 3, 387, 3, 387, 3, 388, 3, 388, 3, 389, 3, 389, 3, 390, 3, 390, 3, 391, 3, 391, 3, 392, 3, 392, 3, 393, 3, 393, 3, 394, 3, 394, 3, 395, 3, 395, 3, 396, 3, 396, 3, 397, 3, 397, 3, 398, 3, 398, 3, 399, 3, 399, 3, 400, 3, 400, 3, 401, 3, 401, 3, 402, 3, 402, 3, 403, 3, 403, 3, 404, 3, 404, 3, 405, 3, 405, 3, 406, 3, 406, 3, 407, 3, 407, 9, 3431, 3475, 3492, 3541, 3557, 3565, 3573, 2, 408, 3, 3, 5, 4, 7, 5, 9, 6, 11, 7, 13, 8, 15, 9, 17, 10, 19, 11, 21, 12, 23, 13, 25, 14, 27, 15, 29, 16, 31, 17, 33, 18, 35, 19, 37, 20, 39, 21, 41, 22, 43, 23, 45, 24, 47, 25, 49, 26, 51, 27, 53, 28, 55, 29, 57, 30, 59, 31, 61, 32, 63, 33, 65, 34, 67, 35, 69, 36, 71, 37, 73, 38, 75, 39, 77, 40, 79, 41, 81, 42, 83, 43, 85, 44, 87, 45, 89, 46, 91, 47, 93, 48, 95, 49, 97, 50, 99, 51, 101, 52, 103, 53, 105, 54, 107, 55, 109, 56, 111, 57, 113, 58, 115, 59, 117, 60, 119, 61, 121, 62, 123, 63, 125, 64, 127, 65, 129, 66, 131, 67, 133, 68, 135, 69, 137, 70, 139, 71, 141, 72, 143, 73, 145, 74, 147, 75, 149, 76, 151, 77, 153, 78, 155, 79, 157, 80, 159, 81, 161, 82, 163, 83, 165, 84, 167, 85, 169, 86, 171, 87, 173, 88, 175, 89, 177, 90, 179, 91, 181, 92, 183, 93, 185, 94, 187, 95, 189, 96, 191, 97, 193, 98, 195, 99, 197, 100, 199, 101, 201, 102, 203, 103, 205, 104, 207, 105, 209, 106, 211, 107, 213, 108, 215, 109, 217, 110, 219, 111, 221, 112, 223, 113, 225, 114, 227, 115, 229, 116, 231, 117, 233, 118, 235, 119, 237, 120, 239, 121, 241, 122, 243, 123, 245, 124, 247, 125, 249, 126, 251, 127, 253, 128, 255, 129, 257, 130, 259, 131, 261, 132, 263, 133, 265, 134, 267, 135, 269, 136, 271, 137, 273, 138, 275, 139, 277, 140, 279, 141, 281, 142, 283, 143, 285, 144, 287, 145, 289, 146, 291, 147, 293, 148, 295, 149, 297, 150, 299, 151, 301, 152, 303, 153, 305, 154, 307, 155, 309, 156, 311, 157, 313, 158, 315, 159, 317, 160, 319, 161, 321, 162, 323, 163, 325, 164, 327, 165, 329, 166, 331, 167, 333, 168, 335, 169, 337, 170, 339, 171, 341, 172, 343, 173, 345, 174, 347, 175, 349, 176, 351, 177, 353, 178, 355, 179, 357, 180, 359, 181, 361, 182, 363, 183, 365, 184, 367, 185, 369, 186, 371, 187, 373, 188, 375, 189, 377, 190, 379, 191, 381, 192, 383, 193, 385, 194, 387, 195, 389, 196, 391, 197, 393, 198, 395, 199, 397, 200, 399, 201, 401, 202, 403, 203, 405, 204, 407, 205, 409, 206, 411, 207, 413, 208, 415, 209, 417, 210, 419, 211, 421, 212, 423, 213, 425, 214, 427, 215, 429, 216, 431, 217, 433, 218, 435, 219, 437, 220, 439, 221, 441, 222, 443, 223, 445, 224, 447, 225, 449, 226, 451, 227, 453, 228, 455, 229, 457, 230, 459, 231, 461, 232, 463, 233, 465, 234, 467, 235, 469, 236, 471, 237, 473, 238, 475, 239, 477, 240, 479, 241, 481, 242, 483, 243, 485, 244, 487, 245, 489, 246, 491, 247, 493, 248, 495, 249, 497, 250, 499, 251, 501, 252, 503, 253, 505, 254, 507, 255, 509, 256, 511, 257, 513, 258, 515, 259, 517, 260, 519, 261, 521, 262, 523, 263, 525, 264, 527, 265, 529, 266, 531, 267, 533, 268, 535, 269, 537, 270, 539, 271, 541, 272, 543, 273, 545, 274, 547, 275, 549, 276, 551, 277, 553, 278, 555, 279, 557, 280, 559, 281, 561, 282, 563, 283, 565, 284, 567, 285, 569, 286, 571, 287, 573, 288, 575, 289, 577, 290, 579, 291, 581, 292, 583, 293, 585, 294, 587, 295, 589, 296, 591, 297, 593, 298, 595, 299, 597, 300, 599, 301, 601, 302, 603, 303, 605, 304, 607, 305, 609, 306, 611, 307, 613, 308, 615, 309, 617, 310, 619, 311, 621, 312, 623, 313, 625, 314, 627, 315, 629, 316, 631, 317, 633, 318, 635, 319, 637, 320, 639, 321, 641, 322, 643, 323, 645, 324, 647, 325, 649, 326, 651, 327, 653, 328, 655, 329, 657, 330, 659, 331, 661, 332, 663, 333, 665, 334, 667, 335, 669, 336, 671, 337, 673, 338, 675, 339, 677, 340, 679, 341, 681, 342, 683, 343, 685, 344, 687, 345, 689, 346, 691, 347, 693, 348, 695, 349, 697, 350, 699, 351, 701, 352, 703, 353, 705, 354, 707, 355, 709, 356, 711, 357, 713, 358, 715, 359, 717, 360, 719, 361, 721, 362, 723, 363, 725, 364, 727, 365, 729, 366, 731, 367, 733, 368, 735, 369, 737, 370, 739, 371, 741, 372, 743, 373, 745, 374, 747, 375, 749, 376, 751, 377, 753, 378, 755, 2, 757, 2, 759, 2, 761, 2, 763, 2, 765, 2, 767, 2, 769, 2, 771, 2, 773, 2, 775, 2, 777, 2, 779, 2, 781, 2, 783, 2, 785, 2, 787, 2, 789, 2, 791, 2, 793, 2, 795, 2, 797, 2, 799, 2, 801, 2, 803, 2, 805, 2, 807, 2, 809, 2, 811, 2, 813, 2, 3, 2, 34, 3, 2, 41, 41, 3, 2, 48, 48, 4, 2, 67, 92, 99, 124, 6, 2, 37, 38, 60, 60, 66, 66, 97, 97, 3, 2, 50, 59, 5, 2, 11, 12, 15, 15, 34, 34, 4, 2, 67, 67, 99, 99, 4, 2, 68, 68, 100, 100, 4, 2, 69, 69, 101, 101, 4, 2, 70, 70, 102, 102, 4, 2, 71, 71, 103, 103, 4, 2, 72, 72, 104, 104, 4, 2, 73, 73, 105, 105, 4, 2, 74, 74, 106, 106, 4, 2, 75, 75, 107, 107, 4, 2, 76, 76, 108, 108, 4, 2, 77, 77, 109, 109, 4, 2, 78, 78, 110, 110, 4, 2, 79, 79, 111, 111, 4, 2, 80, 80, 112, 112, 4, 2, 81, 81, 113, 113, 4, 2, 82, 82, 114, 114, 4, 2, 83, 83, 115, 115, 4, 2, 84, 84, 116, 116, 4, 2, 85, 85, 117, 117, 4, 2, 86, 86, 118, 118, 4, 2, 87, 87, 119, 119, 4, 2, 88, 88, 120, 120, 4, 2, 89, 89, 121, 121, 4, 2, 90, 90, 122, 122, 4, 2, 91, 91, 123, 123, 4, 2, 92, 92, 124, 124, 2, 3647, 2, 3, 3, 2, 2, 2, 2, 5, 3, 2, 2, 2, 2, 7, 3, 2, 2, 2, 2, 9, 3, 2, 2, 2, 2, 11, 3, 2, 2, 2, 2, 13, 3, 2, 2, 2, 2, 15, 3, 2, 2, 2, 2, 17, 3, 2, 2, 2, 2, 19, 3, 2, 2, 2, 2, 21, 3, 2, 2, 2, 2, 23, 3, 2, 2, 2, 2, 25, 3, 2, 2, 2, 2, 27, 3, 2, 2, 2, 2, 29, 3, 2, 2, 2, 2, 31, 3, 2, 2, 2, 2, 33, 3, 2, 2, 2, 2, 35, 3, 2, 2, 2, 2, 37, 3, 2, 2, 2, 2, 39, 3, 2, 2, 2, 2, 41, 3, 2, 2, 2, 2, 43, 3, 2, 2, 2, 2, 45, 3, 2, 2, 2, 2, 47, 3, 2, 2, 2, 2, 49, 3, 2, 2, 2, 2, 51, 3, 2, 2, 2, 2, 53, 3, 2, 2, 2, 2, 55, 3, 2, 2, 2, 2, 57, 3, 2, 2, 2, 2, 59, 3, 2, 2, 2, 2, 61, 3, 2, 2, 2, 2, 63, 3, 2, 2, 2, 2, 65, 3, 2, 2, 2, 2, 67, 3, 2, 2, 2, 2, 69, 3, 2, 2, 2, 2, 71, 3, 2, 2, 2, 2, 73, 3, 2, 2, 2, 2, 75, 3, 2, 2, 2, 2, 77, 3, 2, 2, 2, 2, 79, 3, 2, 2, 2, 2, 81, 3, 2, 2, 2, 2, 83, 3, 2, 2, 2, 2, 85, 3, 2, 2, 2, 2, 87, 3, 2, 2, 2, 2, 89, 3, 2, 2, 2, 2, 91, 3, 2, 2, 2, 2, 93, 3, 2, 2, 2, 2, 95, 3, 2, 2, 2, 2, 97, 3, 2, 2, 2, 2, 99, 3, 2, 2, 2, 2, 101, 3, 2, 2, 2, 2, 103, 3, 2, 2, 2, 2, 105, 3, 2, 2, 2, 2, 107, 3, 2, 2, 2, 2, 109, 3, 2, 2, 2, 2, 111, 3, 2, 2, 2, 2, 113, 3, 2, 2, 2, 2, 115, 3, 2, 2, 2, 2, 117, 3, 2, 2, 2, 2, 119, 3, 2, 2, 2, 2, 121, 3, 2, 2, 2, 2, 123, 3, 2, 2, 2, 2, 125, 3, 2, 2, 2, 2, 127, 3, 2, 2, 2, 2, 129, 3, 2, 2, 2, 2, 131, 3, 2, 2, 2, 2, 133, 3, 2, 2, 2, 2, 135, 3, 2, 2, 2, 2, 137, 3, 2, 2, 2, 2, 139, 3, 2, 2, 2, 2, 141, 3, 2, 2, 2, 2, 143, 3, 2, 2, 2, 2, 145, 3, 2, 2, 2, 2, 147, 3, 2, 2, 2, 2, 149, 3, 2, 2, 2, 2, 151, 3, 2, 2, 2, 2, 153, 3, 2, 2, 2, 2, 155, 3, 2, 2, 2, 2, 157, 3, 2, 2, 2, 2, 159, 3, 2, 2, 2, 2, 161, 3, 2, 2, 2, 2, 163, 3, 2, 2, 2, 2, 165, 3, 2, 2, 2, 2, 167, 3, 2, 2, 2, 2, 169, 3, 2, 2, 2, 2, 171, 3, 2, 2, 2, 2, 173, 3, 2, 2, 2, 2, 175, 3, 2, 2, 2, 2, 177, 3, 2, 2, 2, 2, 179, 3, 2, 2, 2, 2, 181, 3, 2, 2, 2, 2, 183, 3, 2, 2, 2, 2, 185, 3, 2, 2, 2, 2, 187, 3, 2, 2, 2, 2, 189, 3, 2, 2, 2, 2, 191, 3, 2, 2, 2, 2, 193, 3, 2, 2, 2, 2, 195, 3, 2, 2, 2, 2, 197, 3, 2, 2, 2, 2, 199, 3, 2, 2, 2, 2, 201, 3, 2, 2, 2, 2, 203, 3, 2, 2, 2, 2, 205, 3, 2, 2, 2, 2, 207, 3, 2, 2, 2, 2, 209, 3, 2, 2, 2, 2, 211, 3, 2, 2, 2, 2, 213, 3, 2, 2, 2, 2, 215, 3, 2, 2, 2, 2, 217, 3, 2, 2, 2, 2, 219, 3, 2, 2, 2, 2, 221, 3, 2, 2, 2, 2, 223, 3, 2, 2, 2, 2, 225, 3, 2, 2, 2, 2, 227, 3, 2, 2, 2, 2, 229, 3, 2, 2, 2, 2, 231, 3, 2, 2, 2, 2, 233, 3, 2, 2, 2, 2, 235, 3, 2, 2, 2, 2, 237, 3, 2, 2, 2, 2, 239, 3, 2, 2, 2, 2, 241, 3, 2, 2, 2, 2, 243, 3, 2, 2, 2, 2, 245, 3, 2, 2, 2, 2, 247, 3, 2, 2, 2, 2, 249, 3, 2, 2, 2, 2, 251, 3, 2, 2, 2, 2, 253, 3, 2, 2, 2, 2, 255, 3, 2, 2, 2, 2, 257, 3, 2, 2, 2, 2, 259, 3, 2, 2, 2, 2, 261, 3, 2, 2, 2, 2, 263, 3, 2, 2, 2, 2, 265, 3, 2, 2, 2, 2, 267, 3, 2, 2, 2, 2, 269, 3, 2, 2, 2, 2, 271, 3, 2, 2, 2, 2, 273, 3, 2, 2, 2, 2, 275, 3, 2, 2, 2, 2, 277, 3, 2, 2, 2, 2, 279, 3, 2, 2, 2, 2, 281, 3, 2, 2, 2, 2, 283, 3, 2, 2, 2, 2, 285, 3, 2, 2, 2, 2, 287, 3, 2, 2, 2, 2, 289, 3, 2, 2, 2, 2, 291, 3, 2, 2, 2, 2, 293, 3, 2, 2, 2, 2, 295, 3, 2, 2, 2, 2, 297, 3, 2, 2, 2, 2, 299, 3, 2, 2, 2, 2, 301, 3, 2, 2, 2, 2, 303, 3, 2, 2, 2, 2, 305, 3, 2, 2, 2, 2, 307, 3, 2, 2, 2, 2, 309, 3, 2, 2, 2, 2, 311, 3, 2, 2, 2, 2, 313, 3, 2, 2, 2, 2, 315, 3, 2, 2, 2, 2, 317, 3, 2, 2, 2, 2, 319, 3, 2, 2, 2, 2, 321, 3, 2, 2, 2, 2, 323, 3, 2, 2, 2, 2, 325, 3, 2, 2, 2, 2, 327, 3, 2, 2, 2, 2, 329, 3, 2, 2, 2, 2, 331, 3, 2, 2, 2, 2, 333, 3, 2, 2, 2, 2, 335, 3, 2, 2, 2, 2, 337, 3, 2, 2, 2, 2, 339, 3, 2, 2, 2, 2, 341, 3, 2, 2, 2, 2, 343, 3, 2, 2, 2, 2, 345, 3, 2, 2, 2, 2, 347, 3, 2, 2, 2, 2, 349, 3, 2, 2, 2, 2, 351, 3, 2, 2, 2, 2, 353, 3, 2, 2, 2, 2, 355, 3, 2, 2, 2, 2, 357, 3, 2, 2, 2, 2, 359, 3, 2, 2, 2, 2, 361, 3, 2, 2, 2, 2, 363, 3, 2, 2, 2, 2, 365, 3, 2, 2, 2, 2, 367, 3, 2, 2, 2, 2, 369, 3, 2, 2, 2, 2, 371, 3, 2, 2, 2, 2, 373, 3, 2, 2, 2, 2, 375, 3, 2, 2, 2, 2, 377, 3, 2, 2, 2, 2, 379, 3, 2, 2, 2, 2, 381, 3, 2, 2, 2, 2, 383, 3, 2, 2, 2, 2, 385, 3, 2, 2, 2, 2, 387, 3, 2, 2, 2, 2, 389, 3, 2, 2, 2, 2, 391, 3, 2, 2, 2, 2, 393, 3, 2, 2, 2, 2, 395, 3, 2, 2, 2, 2, 397, 3, 2, 2, 2, 2, 399, 3, 2, 2, 2, 2, 401, 3, 2, 2, 2, 2, 403, 3, 2, 2, 2, 2, 405, 3, 2, 2, 2, 2, 407, 3, 2, 2, 2, 2, 409, 3, 2, 2, 2, 2, 411, 3, 2, 2, 2, 2, 413, 3, 2, 2, 2, 2, 415, 3, 2, 2, 2, 2, 417, 3, 2, 2, 2, 2, 419, 3, 2, 2, 2, 2, 421, 3, 2, 2, 2, 2, 423, 3, 2, 2, 2, 2, 425, 3, 2, 2, 2, 2, 427, 3, 2, 2, 2, 2, 429, 3, 2, 2, 2, 2, 431, 3, 2, 2, 2, 2, 433, 3, 2, 2, 2, 2, 435, 3, 2, 2, 2, 2, 437, 3, 2, 2, 2, 2, 439, 3, 2, 2, 2, 2, 441, 3, 2, 2, 2, 2, 443, 3, 2, 2, 2, 2, 445, 3, 2, 2, 2, 2, 447, 3, 2, 2, 2, 2, 449, 3, 2, 2, 2, 2, 451, 3, 2, 2, 2, 2, 453, 3, 2, 2, 2, 2, 455, 3, 2, 2, 2, 2, 457, 3, 2, 2, 2, 2, 459, 3, 2, 2, 2, 2, 461, 3, 2, 2, 2, 2, 463, 3, 2, 2, 2, 2, 465, 3, 2, 2, 2, 2, 467, 3, 2, 2, 2, 2, 469, 3, 2, 2, 2, 2, 471, 3, 2, 2, 2, 2, 473, 3, 2, 2, 2, 2, 475, 3, 2, 2, 2, 2, 477, 3, 2, 2, 2, 2, 479, 3, 2, 2, 2, 2, 481, 3, 2, 2, 2, 2, 483, 3, 2, 2, 2, 2, 485, 3, 2, 2, 2, 2, 487, 3, 2, 2, 2, 2, 489, 3, 2, 2, 2, 2, 491, 3, 2, 2, 2, 2, 493, 3, 2, 2, 2, 2, 495, 3, 2, 2, 2, 2, 497, 3, 2, 2, 2, 2, 499, 3, 2, 2, 2, 2, 501, 3, 2, 2, 2, 2, 503, 3, 2, 2, 2, 2, 505, 3, 2, 2, 2, 2, 507, 3, 2, 2, 2, 2, 509, 3, 2, 2, 2, 2, 511, 3, 2, 2, 2, 2, 513, 3, 2, 2, 2, 2, 515, 3, 2, 2, 2, 2, 517, 3, 2, 2, 2, 2, 519, 3, 2, 2, 2, 2, 521, 3, 2, 2, 2, 2, 523, 3, 2, 2, 2, 2, 525, 3, 2, 2, 2, 2, 527, 3, 2, 2, 2, 2, 529, 3, 2, 2, 2, 2, 531, 3, 2, 2, 2, 2, 533, 3, 2, 2, 2, 2, 535, 3, 2, 2, 2, 2, 537, 3, 2, 2, 2, 2, 539, 3, 2, 2, 2, 2, 541, 3, 2, 2, 2, 2, 543, 3, 2, 2, 2, 2, 545, 3, 2, 2, 2, 2, 547, 3, 2, 2, 2, 2, 549, 3, 2, 2, 2, 2, 551, 3, 2, 2, 2, 2, 553, 3, 2, 2, 2, 2, 555, 3, 2, 2, 2, 2, 557, 3, 2, 2, 2, 2, 559, 3, 2, 2, 2, 2, 561, 3, 2, 2, 2, 2, 563, 3, 2, 2, 2, 2, 565, 3, 2, 2, 2, 2, 567, 3, 2, 2, 2, 2, 569, 3, 2, 2, 2, 2, 571, 3, 2, 2, 2, 2, 573, 3, 2, 2, 2, 2, 575, 3, 2, 2, 2, 2, 577, 3, 2, 2, 2, 2, 579, 3, 2, 2, 2, 2, 581, 3, 2, 2, 2, 2, 583, 3, 2, 2, 2, 2, 585, 3, 2, 2, 2, 2, 587, 3, 2, 2, 2, 2, 589, 3, 2, 2, 2, 2, 591, 3, 2, 2, 2, 2, 593, 3, 2, 2, 2, 2, 595, 3, 2, 2, 2, 2, 597, 3, 2, 2, 2, 2, 599, 3, 2, 2, 2, 2, 601, 3, 2, 2, 2, 2, 603, 3, 2, 2, 2, 2, 605, 3, 2, 2, 2, 2, 607, 3, 2, 2, 2, 2, 609, 3, 2, 2, 2, 2, 611, 3, 2, 2, 2, 2, 613, 3, 2, 2, 2, 2, 615, 3, 2, 2, 2, 2, 617, 3, 2, 2, 2, 2, 619, 3, 2, 2, 2, 2, 621, 3, 2, 2, 2, 2, 623, 3, 2, 2, 2, 2, 625, 3, 2, 2, 2, 2, 627, 3, 2, 2, 2, 2, 629, 3, 2, 2, 2, 2, 631, 3, 2, 2, 2, 2, 633, 3, 2, 2, 2, 2, 635, 3, 2, 2, 2, 2, 637, 3, 2, 2, 2, 2, 639, 3, 2, 2, 2, 2, 641, 3, 2, 2, 2, 2, 643, 3, 2, 2, 2, 2, 645, 3, 2, 2, 2, 2, 647, 3, 2, 2, 2, 2, 649, 3, 2, 2, 2, 2, 651, 3, 2, 2, 2, 2, 653, 3, 2, 2, 2, 2, 655, 3, 2, 2, 2, 2, 657, 3, 2, 2, 2, 2, 659, 3, 2, 2, 2, 2, 661, 3, 2, 2, 2, 2, 663, 3, 2, 2, 2, 2, 665, 3, 2, 2, 2, 2, 667, 3, 2, 2, 2, 2, 669, 3, 2, 2, 2, 2, 671, 3, 2, 2, 2, 2, 673, 3, 2, 2, 2, 2, 675, 3, 2, 2, 2, 2, 677, 3, 2, 2, 2, 2, 679, 3, 2, 2, 2, 2, 681, 3, 2, 2, 2, 2, 683, 3, 2, 2, 2, 2, 685, 3, 2, 2, 2, 2, 687, 3, 2, 2, 2, 2, 689, 3, 2, 2, 2, 2, 691, 3, 2, 2, 2, 2, 693, 3, 2, 2, 2, 2, 695, 3, 2, 2, 2, 2, 697, 3, 2, 2, 2, 2, 699, 3, 2, 2, 2, 2, 701, 3, 2, 2, 2, 2, 703, 3, 2, 2, 2, 2, 705, 3, 2, 2, 2, 2, 707, 3, 2, 2, 2, 2, 709, 3, 2, 2, 2, 2, 711, 3, 2, 2, 2, 2, 713, 3, 2, 2, 2, 2, 715, 3, 2, 2, 2, 2, 717, 3, 2, 2, 2, 2, 719, 3, 2, 2, 2, 2, 721, 3, 2, 2, 2, 2, 723, 3, 2, 2, 2, 2, 725, 3, 2, 2, 2, 2, 727, 3, 2, 2, 2, 2, 729, 3, 2, 2, 2, 2, 731, 3, 2, 2, 2, 2, 733, 3, 2, 2, 2, 2, 735, 3, 2, 2, 2, 2, 737, 3, 2, 2, 2, 2, 739, 3, 2, 2, 2, 2, 741, 3, 2, 2, 2, 2, 743, 3, 2, 2, 2, 2, 745, 3, 2, 2, 2, 2, 747, 3, 2, 2, 2, 2, 749, 3, 2, 2, 2, 2, 751, 3, 2, 2, 2, 2, 753, 3, 2, 2, 2, 3, 815, 3, 2, 2, 2, 5, 822, 3, 2, 2, 2, 7, 826, 3, 2, 2, 2, 9, 830, 3, 2, 2, 2, 11, 839, 3, 2, 2, 2, 13, 845, 3, 2, 2, 2, 15, 849, 3, 2, 2, 2, 17, 860, 3, 2, 2, 2, 19, 873, 3, 2, 2, 2, 21, 876, 3, 2, 2, 2, 23, 880, 3, 2, 2, 2, 25, 890, 3, 2, 2, 2, 27, 893, 3, 2, 2, 2, 29, 908, 3, 2, 2, 2, 31, 912, 3, 2, 2, 2, 33, 922, 3, 2, 2, 2, 35, 928, 3, 2, 2, 2, 37, 936, 3, 2, 2, 2, 39, 943, 3, 2, 2, 2, 41, 957, 3, 2, 2, 2, 43, 970, 3, 2, 2, 2, 45, 985, 3, 2, 2, 2, 47, 989, 3, 2, 2, 2, 49, 994, 3, 2, 2, 2, 51, 1000, 3, 2, 2, 2, 53, 1003, 3, 2, 2, 2, 55, 1008, 3, 2, 2, 2, 57, 1013, 3, 2, 2, 2, 59, 1020, 3, 2, 2, 2, 61, 1028, 3, 2, 2, 2, 63, 1033, 3, 2, 2, 2, 65, 1046, 3, 2, 2, 2, 67, 1051, 3, 2, 2, 2, 69, 1056, 3, 2, 2, 2, 71, 1066, 3, 2, 2, 2, 73, 1074, 3, 2, 2, 2, 75, 1081, 3, 2, 2, 2, 77, 1087, 3, 2, 2, 2, 79, 1097, 3, 2, 2, 2, 81, 1101, 3, 2, 2, 2, 83, 1109, 3, 2, 2, 2, 85, 1120, 3, 2, 2, 2, 87, 1127, 3, 2, 2, 2, 89, 1135, 3, 2, 2, 2, 91, 1144, 3, 2, 2, 2, 93, 1151, 3, 2, 2, 2, 95, 1160, 3, 2, 2, 2, 97, 1167, 3, 2, 2, 2, 99, 1177, 3, 2, 2, 2, 101, 1188, 3, 2, 2, 2, 103, 1197, 3, 2, 2, 2, 105, 1202, 3, 2, 2, 2, 107, 1208, 3, 2, 2, 2, 109, 1218, 3, 2, 2, 2, 111, 1225, 3, 2, 2, 2, 113, 1234, 3, 2, 2, 2, 115, 1242, 3, 2, 2, 2, 117, 1245, 3, 2, 2, 2, 119, 1253, 3, 2, 2, 2, 121, 1268, 3, 2, 2, 2, 123, 1275, 3, 2, 2, 2, 125, 1284, 3, 2, 2, 2, 127, 1289, 3, 2, 2, 2, 129, 1294, 3, 2, 2, 2, 131, 1303, 3, 2, 2, 2, 133, 1307, 3, 2, 2, 2, 135, 1312, 3, 2, 2, 2, 137, 1316, 3, 2, 2, 2, 139, 1324, 3, 2, 2, 2, 141, 1332, 3, 2, 2, 2, 143, 1340, 3, 2, 2, 2, 145, 1349, 3, 2, 2, 2, 147, 1357, 3, 2, 2, 2, 149, 1365, 3, 2, 2, 2, 151, 1376, 3, 2, 2, 2, 153, 1383, 3, 2, 2, 2, 155, 1393, 3, 2, 2, 2, 157, 1403, 3, 2, 2, 2, 159, 1408, 3, 2, 2, 2, 161, 1417, 3, 2, 2, 2, 163, 1429, 3, 2, 2, 2, 165, 1433, 3, 2, 2, 2, 167, 1443, 3, 2, 2, 2, 169, 1452, 3, 2, 2, 2, 171, 1463, 3, 2, 2, 2, 173, 1466, 3, 2, 2, 2, 175, 1473, 3, 2, 2, 2, 177, 1478, 3, 2, 2, 2, 179, 1486, 3, 2, 2, 2, 181, 1491, 3, 2, 2, 2, 183, 1498, 3, 2, 2, 2, 185, 1504, 3, 2, 2, 2, 187, 1511, 3, 2, 2, 2, 189, 1515, 3, 2, 2, 2, 191, 1522, 3, 2, 2, 2, 193, 1530, 3, 2, 2, 2, 195, 1537, 3, 2, 2, 2, 197, 1542, 3, 2, 2, 2, 199, 1550, 3, 2, 2, 2, 201, 1560, 3, 2, 2, 2, 203, 1570, 3, 2, 2, 2, 205, 1577, 3, 2, 2, 2, 207, 1582, 3, 2, 2, 2, 209, 1591, 3, 2, 2, 2, 211, 1597, 3, 2, 2, 2, 213, 1603, 3, 2, 2, 2, 215, 1610, 3, 2, 2, 2, 217, 1615, 3, 2, 2, 2, 219, 1621, 3, 2, 2, 2, 221, 1627, 3, 2, 2, 2, 223, 1631, 3, 2, 2, 2, 225, 1639, 3, 2, 2, 2, 227, 1646, 3, 2, 2, 2, 229, 1652, 3, 2, 2, 2, 231, 1657, 3, 2, 2, 2, 233, 1662, 3, 2, 2, 2, 235, 1671, 3, 2, 2, 2, 237, 1675, 3, 2, 2, 2, 239, 1682, 3, 2, 2, 2, 241, 1685, 3, 2, 2, 2, 243, 1691, 3, 2, 2, 2, 245, 1697, 3, 2, 2, 2, 247, 1705, 3, 2, 2, 2, 249, 1710, 3, 2, 2, 2, 251, 1717, 3, 2, 2, 2, 253, 1722, 3, 2, 2, 2, 255, 1727, 3, 2, 2, 2, 257, 1732, 3, 2, 2, 2, 259, 1741, 3, 2, 2, 2, 261, 1744, 3, 2, 2, 2, 263, 1751, 3, 2, 2, 2, 265, 1761, 3, 2, 2, 2, 267, 1764, 3, 2, 2, 2, 269, 1772, 3, 2, 2, 2, 271, 1778, 3, 2, 2, 2, 273, 1787, 3, 2, 2, 2, 275, 1793, 3, 2, 2, 2, 277, 1799, 3, 2, 2, 2, 279, 1806, 3, 2, 2, 2, 281, 1810, 3, 2, 2, 2, 283, 1815, 3, 2, 2, 2, 285, 1820, 3, 2, 2, 2, 287, 1825, 3, 2, 2, 2, 289, 1833, 3, 2, 2, 2, 291, 1843, 3, 2, 2, 2, 293, 1852, 3, 2, 2, 2, 295, 1857, 3, 2, 2, 2, 297, 1865, 3, 2, 2, 2, 299, 1868, 3, 2, 2, 2, 301, 1875, 3, 2, 2, 2, 303, 1881, 3, 2, 2, 2, 305, 1886, 3, 2, 2, 2, 307, 1891, 3, 2, 2, 2, 309, 1895, 3, 2, 2, 2, 311, 1900, 3, 2, 2, 2, 313, 1909, 3, 2, 2, 2, 315, 1915, 3, 2, 2, 2, 317, 1920, 3, 2, 2, 2, 319, 1925, 3, 2, 2, 2, 321, 1931, 3, 2, 2, 2, 323, 1937, 3, 2, 2, 2, 325, 1943, 3, 2, 2, 2, 327, 1952, 3, 2, 2, 2, 329, 1960, 3, 2, 2, 2, 331, 1969, 3, 2, 2, 2, 333, 1975, 3, 2, 2, 2, 335, 1979, 3, 2, 2, 2, 337, 1986, 3, 2, 2, 2, 339, 1994, 3, 2, 2, 2, 341, 1999, 3, 2, 2, 2, 343, 2003, 3, 2, 2, 2, 345, 2011, 3, 2, 2, 2, 347, 2015, 3, 2, 2, 2, 349, 2024, 3, 2, 2, 2, 351, 2030, 3, 2, 2, 2, 353, 2043, 3, 2, 2, 2, 355, 2055, 3, 2, 2, 2, 357, 2068, 3, 2, 2, 2, 359, 2072, 3, 2, 2, 2, 361, 2081, 3, 2, 2, 2, 363, 2087, 3, 2, 2, 2, 365, 2091, 3, 2, 2, 2, 367, 2100, 3, 2, 2, 2, 369, 2103, 3, 2, 2, 2, 371, 2111, 3, 2, 2, 2, 373, 2122, 3, 2, 2, 2, 375, 2132, 3, 2, 2, 2, 377, 2137, 3, 2, 2, 2, 379, 2141, 3, 2, 2, 2, 381, 2150, 3, 2, 2, 2, 383, 2155, 3, 2, 2, 2, 385, 2163, 3, 2, 2, 2, 387, 2170, 3, 2, 2, 2, 389, 2177, 3, 2, 2, 2, 391, 2181, 3, 2, 2, 2, 393, 2184, 3, 2, 2, 2, 395, 2189, 3, 2, 2, 2, 397, 2194, 3, 2, 2, 2, 399, 2197, 3, 2, 2, 2, 401, 2203, 3, 2, 2, 2, 403, 2207, 3, 2, 2, 2, 405, 2213, 3, 2, 2, 2, 407, 2218, 3, 2, 2, 2, 409, 2228, 3, 2, 2, 2, 411, 2234, 3, 2, 2, 2, 413, 2242, 3, 2, 2, 2, 415, 2252, 3, 2, 2, 2, 417, 2260, 3, 2, 2, 2, 419, 2268, 3, 2, 2, 2, 421, 2280, 3, 2, 2, 2, 423, 2290, 3, 2, 2, 2, 425, 2299, 3, 2, 2, 2, 427, 2307, 3, 2, 2, 2, 429, 2313, 3, 2, 2, 2, 431, 2318, 3, 2, 2, 2, 433, 2328, 3, 2, 2, 2, 435, 2336, 3, 2, 2, 2, 437, 2347, 3, 2, 2, 2, 439, 2352, 3, 2, 2, 2, 441, 2370, 3, 2, 2, 2, 443, 2376, 3, 2, 2, 2, 445, 2381, 3, 2, 2, 2, 447, 2392, 3, 2, 2, 2, 449, 2399, 3, 2, 2, 2, 451, 2407, 3, 2, 2, 2, 453, 2416, 3, 2, 2, 2, 455, 2425, 3, 2, 2, 2, 457, 2432, 3, 2, 2, 2, 459, 2451, 3, 2, 2, 2, 461, 2458, 3, 2, 2, 2, 463, 2466, 3, 2, 2, 2, 465, 2474, 3, 2, 2, 2, 467, 2480, 3, 2, 2, 2, 469, 2486, 3, 2, 2, 2, 471, 2491, 3, 2, 2, 2, 473, 2500, 3, 2, 2, 2, 475, 2504, 3, 2, 2, 2, 477, 2509, 3, 2, 2, 2, 479, 2517, 3, 2, 2, 2, 481, 2527, 3, 2, 2, 2, 483, 2530, 3, 2, 2, 2, 485, 2533, 3, 2, 2, 2, 487, 2537, 3, 2, 2, 2, 489, 2542, 3, 2, 2, 2, 491, 2549, 3, 2, 2, 2, 493, 2556, 3, 2, 2, 2, 495, 2564, 3, 2, 2, 2, 497, 2573, 3, 2, 2, 2, 499, 2581, 3, 2, 2, 2, 501, 2585, 3, 2, 2, 2, 503, 2592, 3, 2, 2, 2, 505, 2596, 3, 2, 2, 2, 507, 2604, 3, 2, 2, 2, 509, 2613, 3, 2, 2, 2, 511, 2618, 3, 2, 2, 2, 513, 2624, 3, 2, 2, 2, 515, 2631, 3, 2, 2, 2, 517, 2645, 3, 2, 2, 2, 519, 2658, 3, 2, 2, 2, 521, 2673, 3, 2, 2, 2, 523, 2687, 3, 2, 2, 2, 525, 2696, 3, 2, 2, 2, 527, 2700, 3, 2, 2, 2, 529, 2713, 3, 2, 2, 2, 531, 2723, 3, 2, 2, 2, 533, 2732, 3, 2, 2, 2, 535, 2743, 3, 2, 2, 2, 537, 2749, 3, 2, 2, 2, 539, 2760, 3, 2, 2, 2, 541, 2765, 3, 2, 2, 2, 543, 2773, 3, 2, 2, 2, 545, 2780, 3, 2, 2, 2, 547, 2787, 3, 2, 2, 2, 549, 2794, 3, 2, 2, 2, 551, 2804, 3, 2, 2, 2, 553, 2808, 3, 2, 2, 2, 555, 2816, 3, 2, 2, 2, 557, 2830, 3, 2, 2, 2, 559, 2836, 3, 2, 2, 2, 561, 2847, 3, 2, 2, 2, 563, 2857, 3, 2, 2, 2, 565, 2868, 3, 2, 2, 2, 567, 2881, 3, 2, 2, 2, 569, 2886, 3, 2, 2, 2, 571, 2896, 3, 2, 2, 2, 573, 2904, 3, 2, 2, 2, 575, 2910, 3, 2, 2, 2, 577, 2913, 3, 2, 2, 2, 579, 2917, 3, 2, 2, 2, 581, 2929, 3, 2, 2, 2, 583, 2934, 3, 2, 2, 2, 585, 2943, 3, 2, 2, 2, 587, 2948, 3, 2, 2, 2, 589, 2954, 3, 2, 2, 2, 591, 2961, 3, 2, 2, 2, 593, 2968, 3, 2, 2, 2, 595, 2971, 3, 2, 2, 2, 597, 2975, 3, 2, 2, 2, 599, 2981, 3, 2, 2, 2, 601, 2987, 3, 2, 2, 2, 603, 2994, 3, 2, 2, 2, 605, 2998, 3, 2, 2, 2, 607, 3006, 3, 2, 2, 2, 609, 3015, 3, 2, 2, 2, 611, 3023, 3, 2, 2, 2, 613, 3032, 3, 2, 2, 2, 615, 3037, 3, 2, 2, 2, 617, 3043, 3, 2, 2, 2, 619, 3049, 3, 2, 2, 2, 621, 3054, 3, 2, 2, 2, 623, 3062, 3, 2, 2, 2, 625, 3067, 3, 2, 2, 2, 627, 3078, 3, 2, 2, 2, 629, 3082, 3, 2, 2, 2, 631, 3086, 3, 2, 2, 2, 633, 3101, 3, 2, 2, 2, 635, 3111, 3, 2, 2, 2, 637, 3124, 3, 2, 2, 2, 639, 3142, 3, 2, 2, 2, 641, 3155, 3, 2, 2, 2, 643, 3166, 3, 2, 2, 2, 645, 3178, 3, 2, 2, 2, 647, 3182, 3, 2, 2, 2, 649, 3193, 3, 2, 2, 2, 651, 3198, 3, 2, 2, 2, 653, 3214, 3, 2, 2, 2, 655, 3230, 3, 2, 2, 2, 657, 3243, 3, 2, 2, 2, 659, 3256, 3, 2, 2, 2, 661, 3270, 3, 2, 2, 2, 663, 3284, 3, 2, 2, 2, 665, 3295, 3, 2, 2, 2, 667, 3304, 3, 2, 2, 2, 669, 3309, 3, 2, 2, 2, 671, 3320, 3, 2, 2, 2, 673, 3326, 3, 2, 2, 2, 675, 3334, 3, 2, 2, 2, 677, 3343, 3, 2, 2, 2, 679, 3348, 3, 2, 2, 2, 681, 3350, 3, 2, 2, 2, 683, 3352, 3, 2, 2, 2, 685, 3354, 3, 2, 2, 2, 687, 3357, 3, 2, 2, 2, 689, 3359, 3, 2, 2, 2, 691, 3361, 3, 2, 2, 2, 693, 3364, 3, 2, 2, 2, 695, 3366, 3, 2, 2, 2, 697, 3369, 3, 2, 2, 2, 699, 3371, 3, 2, 2, 2, 701, 3373, 3, 2, 2, 2, 703, 3376, 3, 2, 2, 2, 705, 3379, 3, 2, 2, 2, 707, 3381, 3, 2, 2, 2, 709, 3384, 3, 2, 2, 2, 711, 3386, 3, 2, 2, 2, 713, 3389, 3, 2, 2, 2, 715, 3391, 3, 2, 2, 2, 717, 3393, 3, 2, 2, 2, 719, 3395, 3, 2, 2, 2, 721, 3397, 3, 2, 2, 2, 723, 3399, 3, 2, 2, 2, 725, 3401, 3, 2, 2, 2, 727, 3403, 3, 2, 2, 2, 729, 3405, 3, 2, 2, 2, 731, 3407, 3, 2, 2, 2, 733, 3409, 3, 2, 2, 2, 735, 3411, 3, 2, 2, 2, 737, 3413, 3, 2, 2, 2, 739, 3426, 3, 2, 2, 2, 741, 3437, 3, 2, 2, 2, 743, 3460, 3, 2, 2, 2, 745, 3463, 3, 2, 2, 2, 747, 3469, 3, 2, 2, 2, 749, 3487, 3, 2, 2, 2, 751, 3507, 3, 2, 2, 2, 753, 3522, 3, 2, 2, 2, 755, 3577, 3, 2, 2, 2, 757, 3583, 3, 2, 2, 2, 759, 3585, 3, 2, 2, 2, 761, 3587, 3, 2, 2, 2, 763, 3589, 3, 2, 2, 2, 765, 3591, 3, 2, 2, 2, 767, 3593, 3, 2, 2, 2, 769, 3595, 3, 2, 2, 2, 771, 3597, 3, 2, 2, 2, 773, 3599, 3, 2, 2, 2, 775, 3601, 3, 2, 2, 2, 777, 3603, 3, 2, 2, 2, 779, 3605, 3, 2, 2, 2, 781, 3607, 3, 2, 2, 2, 783, 3609, 3, 2, 2, 2, 785, 3611, 3, 2, 2, 2, 787, 3613, 3, 2, 2, 2, 789, 3615, 3, 2, 2, 2, 791, 3617, 3, 2, 2, 2, 793, 3619, 3, 2, 2, 2, 795, 3621, 3, 2, 2, 2, 797, 3623, 3, 2, 2, 2, 799, 3625, 3, 2, 2, 2, 801, 3627, 3, 2, 2, 2, 803, 3629, 3, 2, 2, 2, 805, 3631, 3, 2, 2, 2, 807, 3633, 3, 2, 2, 2, 809, 3635, 3, 2, 2, 2, 811, 3637, 3, 2, 2, 2, 813, 3639, 3, 2, 2, 2, 815, 816, 5, 763, 382, 2, 816, 817, 5, 767, 384, 2, 817, 818, 5, 801, 401, 2, 818, 819, 5, 779, 390, 2, 819, 820, 5, 791, 396, 2, 820, 821, 5, 789, 395, 2, 821, 4, 3, 2, 2, 2, 822, 823, 5, 763, 382, 2, 823, 824, 5, 769, 385, 2, 824, 825, 5, 769, 385, 2, 825, 6, 3, 2, 2, 2, 826, 827, 5, 763, 382, 2, 827, 828, 5, 785, 393, 2, 828, 829, 5, 785, 393, 2, 829, 8, 3, 2, 2, 2, 830, 831, 5, 763, 382, 2, 831, 832, 5, 785, 393, 2, 832, 833, 5, 785, 393, 2, 833, 834, 5, 791, 396, 2, 834, 835, 5, 767, 384, 2, 835, 836, 5, 763, 382, 2, 836, 837, 5, 801, 401, 2, 837, 838, 5, 771, 386, 2, 838, 10, 3, 2, 2, 2, 839, 840, 5, 763, 382, 2, 840, 841, 5, 785, 393, 2, 841, 842, 5, 801, 401, 2, 842, 843, 5, 771, 386, 2, 843, 844, 5, 797, 399, 2, 844, 12, 3, 2, 2, 2, 845, 846, 5, 763, 382, 2, 846, 847, 5, 789, 395, 2, 847, 848, 5, 769, 385, 2, 848, 14, 3, 2, 2, 2, 849, 850, 5, 763, 382, 2, 850, 851, 5, 789, 395, 2, 851, 852, 5, 799, 400, 2, 852, 853, 5, 779, 390, 2, 853, 854, 7, 97, 2, 2, 854, 855, 5, 789, 395, 2, 855, 856, 5, 803, 402, 2, 856, 857, 5, 785, 393, 2, 857, 858, 5, 785, 393, 2, 858, 859, 5, 799, 400, 2, 859, 16, 3, 2, 2, 2, 860, 861, 5, 763, 382, 2, 861, 862, 5, 789, 395, 2, 862, 863, 5, 799, 400, 2, 863, 864, 5, 779, 390, 2, 864, 865, 7, 97, 2, 2, 865, 866, 5, 793, 397, 2, 866, 867, 5, 763, 382, 2, 867, 868, 5, 769, 385, 2, 868, 869, 5, 769, 385, 2, 869, 870, 5, 779, 390, 2, 870, 871, 5, 789, 395, 2, 871, 872, 5, 775, 388, 2, 872, 18, 3, 2, 2, 2, 873, 874, 5, 763, 382, 2, 874, 875, 5, 799, 400, 2, 875, 20, 3, 2, 2, 2, 876, 877, 5, 763, 382, 2, 877, 878, 5, 799, 400, 2, 878, 879, 5, 767, 384, 2, 879, 22, 3, 2, 2, 2, 880, 881, 5, 763, 382, 2, 881, 882, 5, 799, 400, 2, 882, 883, 5, 799, 400, 2, 883, 884, 5, 791, 396, 2, 884, 885, 5, 767, 384, 2, 885, 886, 5, 779, 390, 2, 886, 887, 5, 763, 382, 2, 887, 888, 5, 801, 401, 2, 888, 889, 5, 771, 386, 2, 889, 24, 3, 2, 2, 2, 890, 891, 5, 763, 382, 2, 891, 892, 5, 801, 401, 2, 892, 26, 3, 2, 2, 2, 893, 894, 5, 763, 382, 2, 894, 895, 5, 803, 402, 2, 895, 896, 5, 801, 401, 2, 896, 897, 5, 791, 396, 2, 897, 898, 7, 97, 2, 2, 898, 899, 5, 779, 390, 2, 899, 900, 5, 789, 395, 2, 900, 901, 5, 767, 384, 2, 901, 902, 5, 797, 399, 2, 902, 903, 5, 771, 386, 2, 903, 904, 5, 787, 394, 2, 904, 905, 5, 771, 386, 2, 905, 906, 5, 789, 395, 2, 906, 907, 5, 801, 401, 2, 907, 28, 3, 2, 2, 2, 908, 909, 5, 763, 382, 2, 909, 910, 5, 805, 403, 2, 910, 911, 5, 775, 388, 2, 911, 30, 3, 2, 2, 2, 912, 913, 5, 765, 383, 2, 913, 914, 5, 763, 382, 2, 914, 915, 5, 801, 401, 2, 915, 916, 5, 767, 384, 2, 916, 917, 5, 777, 389, 2, 917, 918, 5, 799, 400, 2, 918, 919, 5, 779, 390, 2, 919, 920, 5, 813, 407, 2, 920, 921, 5, 771, 386, 2, 921, 32, 3, 2, 2, 2, 922, 923, 5, 765, 383, 2, 923, 924, 5, 771, 386, 2, 924, 925, 5, 775, 388, 2, 925, 926, 5, 779, 390, 2, 926, 927, 5, 789, 395, 2, 927, 34, 3, 2, 2, 2, 928, 929, 5, 765, 383, 2, 929, 930, 5, 771, 386, 2, 930, 931, 5, 801, 401, 2, 931, 932, 5, 807, 404, 2, 932, 933, 5, 771, 386, 2, 933, 934, 5, 771, 386, 2, 934, 935, 5, 789, 395, 2, 935, 36, 3, 2, 2, 2, 936, 937, 5, 765, 383, 2, 937, 938, 5, 779, 390, 2, 938, 939, 5, 775, 388, 2, 939, 940, 5, 779, 390, 2, 940, 941, 5, 789, 395, 2, 941, 942, 5, 801, 401, 2, 942, 38, 3, 2, 2, 2, 943, 944, 5, 765, 383, 2, 944, 945, 5, 779, 390, 2, 945, 946, 5, 789, 395, 2, 946, 947, 5, 763, 382, 2, 947, 948, 5, 797, 399, 2, 948, 949, 5, 811, 406, 2, 949, 950, 7, 97, 2, 2, 950, 951, 5, 769, 385, 2, 951, 952, 5, 791, 396, 2, 952, 953, 5, 803, 402, 2, 953, 954, 5, 765, 383, 2, 954, 955, 5, 785, 393, 2, 955, 956, 5, 771, 386, 2, 956, 40, 3, 2, 2, 2, 957, 958, 5, 765, 383, 2, 958, 959, 5, 779, 390, 2, 959, 960, 5, 789, 395, 2, 960, 961, 5, 763, 382, 2, 961, 962, 5, 797, 399, 2, 962, 963, 5, 811, 406, 2, 963, 964, 7, 97, 2, 2, 964, 965, 5, 773, 387, 2, 965, 966, 5, 785, 393, 2, 966, 967, 5, 791, 396, 2, 967, 968, 5, 763, 382, 2, 968, 969, 5, 801, 401, 2, 969, 42, 3, 2, 2, 2, 970, 971, 5, 765, 383, 2, 971, 972, 5, 779, 390, 2, 972, 973, 5, 789, 395, 2, 973, 974, 5, 763, 382, 2, 974, 975, 5, 797, 399, 2, 975, 976, 5, 811, 406, 2, 976, 977, 7, 97, 2, 2, 977, 978, 5, 779, 390, 2, 978, 979, 5, 789, 395, 2, 979, 980, 5, 801, 401, 2, 980, 981, 5, 771, 386, 2, 981, 982, 5, 775, 388, 2, 982, 983, 5, 771, 386, 2, 983, 984, 5, 797, 399, 2, 984, 44, 3, 2, 2, 2, 985, 986, 5, 765, 383, 2, 986, 987, 5, 779, 390, 2, 987, 988, 5, 801, 401, 2, 988, 46, 3, 2, 2, 2, 989, 990, 5, 765, 383, 2, 990, 991, 5, 791, 396, 2, 991, 992, 5, 769, 385, 2, 992, 993, 5, 811, 406, 2, 993, 48, 3, 2, 2, 2, 994, 995, 5, 765, 383, 2, 995, 996, 5, 797, 399, 2, 996, 997, 5, 771, 386, 2, 997, 998, 5, 763, 382, 2, 998, 999, 5, 783, 392, 2, 999, 50, 3, 2, 2, 2, 1000, 1001, 5, 765, 383, 2, 1001, 1002, 5, 811, 406, 2, 1002, 52, 3, 2, 2, 2, 1003, 1004, 5, 765, 383, 2, 1004, 1005, 5, 811, 406, 2, 1005, 1006, 5, 801, 401, 2, 1006, 1007, 5, 771, 386, 2, 1007, 54, 3, 2, 2, 2, 1008, 1009, 5, 767, 384, 2, 1009, 1010, 5, 763, 382, 2, 1010, 1011, 5, 785, 393, 2, 1011, 1012, 5, 785, 393, 2, 1012, 56, 3, 2, 2, 2, 1013, 1014, 5, 767, 384, 2, 1014, 1015, 5, 763, 382, 2, 1015, 1016, 5, 785, 393, 2, 1016, 1017, 5, 785, 393, 2, 1017, 1018, 5, 771, 386, 2, 1018, 1019, 5, 797, 399, 2, 1019, 58, 3, 2, 2, 2, 1020, 1021, 5, 767, 384, 2, 1021, 1022, 5, 763, 382, 2, 1022, 1023, 5, 799, 400, 2, 1023, 1024, 5, 767, 384, 2, 1024, 1025, 5, 763, 382, 2, 1025, 1026, 5, 769, 385, 2, 1026, 1027, 5, 771, 386, 2, 1027, 60, 3, 2, 2, 2, 1028, 1029, 5, 767, 384, 2, 1029, 1030, 5, 763, 382, 2, 1030, 1031, 5, 799, 400, 2, 1031, 1032, 5, 771, 386, 2, 1032, 62, 3, 2, 2, 2, 1033, 1034, 5, 767, 384, 2, 1034, 1035, 5, 763, 382, 2, 1035, 1036, 5, 799, 400, 2, 1036, 1037, 5, 771, 386, 2, 1037, 1038, 5, 799, 400, 2, 1038, 1039, 5, 793, 397, 2, 1039, 1040, 5, 771, 386, 2, 1040, 1041, 5, 767, 384, 2, 1041, 1042, 5, 779, 390, 2, 1042, 1043, 5, 773, 387, 2, 1043, 1044, 5, 779, 390, 2, 1044, 1045, 5, 767, 384, 2, 1045, 64, 3, 2, 2, 2, 1046, 1047, 5, 767, 384, 2, 1047, 1048, 5, 763, 382, 2, 1048, 1049, 5, 799, 400, 2, 1049, 1050, 5, 801, 401, 2, 1050, 66, 3, 2, 2, 2, 1051, 1052, 5, 767, 384, 2, 1052, 1053, 5, 777, 389, 2, 1053, 1054, 5, 763, 382, 2, 1054, 1055, 5, 797, 399, 2, 1055, 68, 3, 2, 2, 2, 1056, 1057, 5, 767, 384, 2, 1057, 1058, 5, 777, 389, 2, 1058, 1059, 5, 763, 382, 2, 1059, 1060, 5, 797, 399, 2, 1060, 1061, 5, 763, 382, 2, 1061, 1062, 5, 767, 384, 2, 1062, 1063, 5, 801, 401, 2, 1063, 1064, 5, 771, 386, 2, 1064, 1065, 5, 797, 399, 2, 1065, 70, 3, 2, 2, 2, 1066, 1067, 5, 767, 384, 2, 1067, 1068, 5, 777, 389, 2, 1068, 1069, 5, 763, 382, 2, 1069, 1070, 5, 797, 399, 2, 1070, 1071, 5, 799, 400, 2, 1071, 1072, 5, 771, 386, 2, 1072, 1073, 5, 801, 401, 2, 1073, 72, 3, 2, 2, 2, 1074, 1075, 5, 767, 384, 2, 1075, 1076, 5, 785, 393, 2, 1076, 1077, 5, 779, 390, 2, 1077, 1078, 5, 771, 386, 2, 1078, 1079, 5, 789, 395, 2, 1079, 1080, 5, 801, 401, 2, 1080, 74, 3, 2, 2, 2, 1081, 1082, 5, 767, 384, 2, 1082, 1083, 5, 785, 393, 2, 1083, 1084, 5, 791, 396, 2, 1084, 1085, 5, 799, 400, 2, 1085, 1086, 5, 771, 386, 2, 1086, 76, 3, 2, 2, 2, 1087, 1088, 5, 767, 384, 2, 1088, 1089, 5, 785, 393, 2, 1089, 1090, 5, 803, 402, 2, 1090, 1091, 5, 799, 400, 2, 1091, 1092, 5, 801, 401, 2, 1092, 1093, 5, 771, 386, 2, 1093, 1094, 5, 797, 399, 2, 1094, 1095, 5, 771, 386, 2, 1095, 1096, 5, 769, 385, 2, 1096, 78, 3, 2, 2, 2, 1097, 1098, 5, 767, 384, 2, 1098, 1099, 5, 787, 394, 2, 1099, 1100, 5, 793, 397, 2, 1100, 80, 3, 2, 2, 2, 1101, 1102, 5, 767, 384, 2, 1102, 1103, 5, 791, 396, 2, 1103, 1104, 5, 785, 393, 2, 1104, 1105, 5, 785, 393, 2, 1105, 1106, 5, 771, 386, 2, 1106, 1107, 5, 767, 384, 2, 1107, 1108, 5, 801, 401, 2, 1108, 82, 3, 2, 2, 2, 1109, 1110, 5, 767, 384, 2, 1110, 1111, 5, 791, 396, 2, 1111, 1112, 5, 785, 393, 2, 1112, 1113, 5, 785, 393, 2, 1113, 1114, 5, 771, 386, 2, 1114, 1115, 5, 767, 384, 2, 1115, 1116, 5, 801, 401, 2, 1116, 1117, 5, 779, 390, 2, 1117, 1118, 5, 791, 396, 2, 1118, 1119, 5, 789, 395, 2, 1119, 84, 3, 2, 2, 2, 1120, 1121, 5, 767, 384, 2, 1121, 1122, 5, 791, 396, 2, 1122, 1123, 5, 785, 393, 2, 1123, 1124, 5, 803, 402, 2, 1124, 1125, 5, 787, 394, 2, 1125, 1126, 5, 789, 395, 2, 1126, 86, 3, 2, 2, 2, 1127, 1128, 5, 767, 384, 2, 1128, 1129, 5, 791, 396, 2, 1129, 1130, 5, 787, 394, 2, 1130, 1131, 5, 787, 394, 2, 1131, 1132, 5, 771, 386, 2, 1132, 1133, 5, 789, 395, 2, 1133, 1134, 5, 801, 401, 2, 1134, 88, 3, 2, 2, 2, 1135, 1136, 5, 767, 384, 2, 1136, 1137, 5, 791, 396, 2, 1137, 1138, 5, 789, 395, 2, 1138, 1139, 5, 799, 400, 2, 1139, 1140, 5, 801, 401, 2, 1140, 1141, 5, 763, 382, 2, 1141, 1142, 5, 789, 395, 2, 1142, 1143, 5, 801, 401, 2, 1143, 90, 3, 2, 2, 2, 1144, 1145, 5, 767, 384, 2, 1145, 1146, 5, 791, 396, 2, 1146, 1147, 5, 787, 394, 2, 1147, 1148, 5, 787, 394, 2, 1148, 1149, 5, 779, 390, 2, 1149, 1150, 5, 801, 401, 2, 1150, 92, 3, 2, 2, 2, 1151, 1152, 5, 767, 384, 2, 1152, 1153, 5, 791, 396, 2, 1153, 1154, 5, 787, 394, 2, 1154, 1155, 5, 793, 397, 2, 1155, 1156, 5, 797, 399, 2, 1156, 1157, 5, 771, 386, 2, 1157, 1158, 5, 799, 400, 2, 1158, 1159, 5, 799, 400, 2, 1159, 94, 3, 2, 2, 2, 1160, 1161, 5, 767, 384, 2, 1161, 1162, 5, 791, 396, 2, 1162, 1163, 5, 789, 395, 2, 1163, 1164, 5, 767, 384, 2, 1164, 1165, 5, 763, 382, 2, 1165, 1166, 5, 801, 401, 2, 1166, 96, 3, 2, 2, 2, 1167, 1168, 5, 767, 384, 2, 1168, 1169, 5, 791, 396, 2, 1169, 1170, 5, 789, 395, 2, 1170, 1171, 5, 769, 385, 2, 1171, 1172, 5, 779, 390, 2, 1172, 1173, 5, 801, 401, 2, 1173, 1174, 5, 779, 390, 2, 1174, 1175, 5, 791, 396, 2, 1175, 1176, 5, 789, 395, 2, 1176, 98, 3, 2, 2, 2, 1177, 1178, 5, 767, 384, 2, 1178, 1179, 5, 791, 396, 2, 1179, 1180, 5, 789, 395, 2, 1180, 1181, 5, 799, 400, 2, 1181, 1182, 5, 801, 401, 2, 1182, 1183, 5, 797, 399, 2, 1183, 1184, 5, 763, 382, 2, 1184, 1185, 5, 779, 390, 2, 1185, 1186, 5, 789, 395, 2, 1186, 1187, 5, 801, 401, 2, 1187, 100, 3, 2, 2, 2, 1188, 1189, 5, 767, 384, 2, 1189, 1190, 5, 791, 396, 2, 1190, 1191, 5, 789, 395, 2, 1191, 1192, 5, 801, 401, 2, 1192, 1193, 5, 779, 390, 2, 1193, 1194, 5, 789, 395, 2, 1194, 1195, 5, 803, 402, 2, 1195, 1196, 5, 771, 386, 2, 1196, 102, 3, 2, 2, 2, 1197, 1198, 5, 767, 384, 2, 1198, 1199, 5, 791, 396, 2, 1199, 1200, 5, 793, 397, 2, 1200, 1201, 5, 811, 406, 2, 1201, 104, 3, 2, 2, 2, 1202, 1203, 5, 767, 384, 2, 1203, 1204, 5, 791, 396, 2, 1204, 1205, 5, 803, 402, 2, 1205, 1206, 5, 789, 395, 2, 1206, 1207, 5, 801, 401, 2, 1207, 106, 3, 2, 2, 2, 1208, 1209, 5, 767, 384, 2, 1209, 1210, 5, 791, 396, 2, 1210, 1211, 5, 803, 402, 2, 1211, 1212, 5, 789, 395, 2, 1212, 1213, 5, 801, 401, 2, 1213, 1214, 7, 97, 2, 2, 1214, 1215, 5, 765, 383, 2, 1215, 1216, 5, 779, 390, 2, 1216, 1217, 5, 775, 388, 2, 1217, 108, 3, 2, 2, 2, 1218, 1219, 5, 767, 384, 2, 1219, 1220, 5, 797, 399, 2, 1220, 1221, 5, 771, 386, 2, 1221, 1222, 5, 763, 382, 2, 1222, 1223, 5, 801, 401, 2, 1223, 1224, 5, 771, 386, 2, 1224, 110, 3, 2, 2, 2, 1225, 1226, 5, 767, 384, 2, 1226, 1227, 5, 797, 399, 2, 1227, 1228, 5, 771, 386, 2, 1228, 1229, 5, 763, 382, 2, 1229, 1230, 5, 801, 401, 2, 1230, 1231, 5, 779, 390, 2, 1231, 1232, 5, 791, 396, 2, 1232, 1233, 5, 789, 395, 2, 1233, 112, 3, 2, 2, 2, 1234, 1235, 5, 767, 384, 2, 1235, 1236, 5, 797, 399, 2, 1236, 1237, 5, 771, 386, 2, 1237, 1238, 5, 763, 382, 2, 1238, 1239, 5, 801, 401, 2, 1239, 1240, 5, 791, 396, 2, 1240, 1241, 5, 797, 399, 2, 1241, 114, 3, 2, 2, 2, 1242, 1243, 5, 767, 384, 2, 1243, 1244, 5, 799, 400, 2, 1244, 116, 3, 2, 2, 2, 1245, 1246, 5, 767, 384, 2, 1246, 1247, 5, 803, 402, 2, 1247, 1248, 5, 797, 399, 2, 1248, 1249, 5, 797, 399, 2, 1249, 1250, 5, 771, 386, 2, 1250, 1251, 5, 789, 395, 2, 1251, 1252, 5, 801, 401, 2, 1252, 118, 3, 2, 2, 2, 1253, 1254, 5, 767, 384, 2, 1254, 1255, 5, 803, 402, 2, 1255, 1256, 5, 797, 399, 2, 1256, 1257, 5, 797, 399, 2, 1257, 1258, 5, 771, 386, 2, 1258, 1259, 5, 789, 395, 2, 1259, 1260, 5, 801, 401, 2, 1260, 1261, 7, 97, 2, 2, 1261, 1262, 5, 799, 400, 2, 1262, 1263, 5, 767, 384, 2, 1263, 1264, 5, 777, 389, 2, 1264, 1265, 5, 771, 386, 2, 1265, 1266, 5, 787, 394, 2, 1266, 1267, 5, 763, 382, 2, 1267, 120, 3, 2, 2, 2, 1268, 1269, 5, 767, 384, 2, 1269, 1270, 5, 803, 402, 2, 1270, 1271, 5, 797, 399, 2, 1271, 1272, 5, 799, 400, 2, 1272, 1273, 5, 791, 396, 2, 1273, 1274, 5, 797, 399, 2, 1274, 122, 3, 2, 2, 2, 1275, 1276, 5, 769, 385, 2, 1276, 1277, 5, 763, 382, 2, 1277, 1278, 5, 801, 401, 2, 1278, 1279, 5, 763, 382, 2, 1279, 1280, 5, 765, 383, 2, 1280, 1281, 5, 763, 382, 2, 1281, 1282, 5, 799, 400, 2, 1282, 1283, 5, 771, 386, 2, 1283, 124, 3, 2, 2, 2, 1284, 1285, 5, 769, 385, 2, 1285, 1286, 5, 763, 382, 2, 1286, 1287, 5, 801, 401, 2, 1287, 1288, 5, 763, 382, 2, 1288, 126, 3, 2, 2, 2, 1289, 1290, 5, 769, 385, 2, 1290, 1291, 5, 763, 382, 2, 1291, 1292, 5, 801, 401, 2, 1292, 1293, 5, 771, 386, 2, 1293, 128, 3, 2, 2, 2, 1294, 1295, 5, 769, 385, 2, 1295, 1296, 5, 763, 382, 2, 1296, 1297, 5, 801, 401, 2, 1297, 1298, 5, 771, 386, 2, 1298, 1299, 5, 801, 401, 2, 1299, 1300, 5, 779, 390, 2, 1300, 1301, 5, 787, 394, 2, 1301, 1302, 5, 771, 386, 2, 1302, 130, 3, 2, 2, 2, 1303, 1304, 5, 769, 385, 2, 1304, 1305, 5, 763, 382, 2, 1305, 1306, 5, 811, 406, 2, 1306, 132, 3, 2, 2, 2, 1307, 1308, 5, 769, 385, 2, 1308, 1309, 5, 763, 382, 2, 1309, 1310, 5, 811, 406, 2, 1310, 1311, 5, 799, 400, 2, 1311, 134, 3, 2, 2, 2, 1312, 1313, 5, 769, 385, 2, 1313, 1314, 5, 771, 386, 2, 1314, 1315, 5, 767, 384, 2, 1315, 136, 3, 2, 2, 2, 1316, 1317, 5, 769, 385, 2, 1317, 1318, 5, 771, 386, 2, 1318, 1319, 5, 767, 384, 2, 1319, 1320, 5, 779, 390, 2, 1320, 1321, 5, 787, 394, 2, 1321, 1322, 5, 763, 382, 2, 1322, 1323, 5, 785, 393, 2, 1323, 138, 3, 2, 2, 2, 1324, 1325, 5, 769, 385, 2, 1325, 1326, 5, 771, 386, 2, 1326, 1327, 5, 767, 384, 2, 1327, 1328, 5, 785, 393, 2, 1328, 1329, 5, 763, 382, 2, 1329, 1330, 5, 797, 399, 2, 1330, 1331, 5, 771, 386, 2, 1331, 140, 3, 2, 2, 2, 1332, 1333, 5, 769, 385, 2, 1333, 1334, 5, 771, 386, 2, 1334, 1335, 5, 773, 387, 2, 1335, 1336, 5, 763, 382, 2, 1336, 1337, 5, 803, 402, 2, 1337, 1338, 5, 785, 393, 2, 1338, 1339, 5, 801, 401, 2, 1339, 142, 3, 2, 2, 2, 1340, 1341, 5, 769, 385, 2, 1341, 1342, 5, 771, 386, 2, 1342, 1343, 5, 773, 387, 2, 1343, 1344, 5, 771, 386, 2, 1344, 1345, 5, 797, 399, 2, 1345, 1346, 5, 797, 399, 2, 1346, 1347, 5, 771, 386, 2, 1347, 1348, 5, 769, 385, 2, 1348, 144, 3, 2, 2, 2, 1349, 1350, 5, 769, 385, 2, 1350, 1351, 5, 771, 386, 2, 1351, 1352, 5, 773, 387, 2, 1352, 1353, 5, 779, 390, 2, 1353, 1354, 5, 789, 395, 2, 1354, 1355, 5, 771, 386, 2, 1355, 1356, 5, 769, 385, 2, 1356, 146, 3, 2, 2, 2, 1357, 1358, 5, 769, 385, 2, 1358, 1359, 5, 771, 386, 2, 1359, 1360, 5, 773, 387, 2, 1360, 1361, 5, 779, 390, 2, 1361, 1362, 5, 789, 395, 2, 1362, 1363, 5, 771, 386, 2, 1363, 1364, 5, 797, 399, 2, 1364, 148, 3, 2, 2, 2, 1365, 1366, 5, 769, 385, 2, 1366, 1367, 5, 771, 386, 2, 1367, 1368, 5, 773, 387, 2, 1368, 1369, 5, 779, 390, 2, 1369, 1370, 5, 789, 395, 2, 1370, 1371, 5, 779, 390, 2, 1371, 1372, 5, 801, 401, 2, 1372, 1373, 5, 779, 390, 2, 1373, 1374, 5, 791, 396, 2, 1374, 1375, 5, 789, 395, 2, 1375, 150, 3, 2, 2, 2, 1376, 1377, 5, 769, 385, 2, 1377, 1378, 5, 771, 386, 2, 1378, 1379, 5, 785, 393, 2, 1379, 1380, 5, 771, 386, 2, 1380, 1381, 5, 801, 401, 2, 1381, 1382, 5, 771, 386, 2, 1382, 152, 3, 2, 2, 2, 1383, 1384, 5, 769, 385, 2, 1384, 1385, 5, 771, 386, 2, 1385, 1386, 5, 785, 393, 2, 1386, 1387, 5, 779, 390, 2, 1387, 1388, 5, 787, 394, 2, 1388, 1389, 5, 779, 390, 2, 1389, 1390, 5, 801, 401, 2, 1390, 1391, 5, 771, 386, 2, 1391, 1392, 5, 769, 385, 2, 1392, 154, 3, 2, 2, 2, 1393, 1394, 5, 769, 385, 2, 1394, 1395, 5, 771, 386, 2, 1395, 1396, 5, 785, 393, 2, 1396, 1397, 5, 779, 390, 2, 1397, 1398, 5, 787, 394, 2, 1398, 1399, 5, 779, 390, 2, 1399, 1400, 5, 801, 401, 2, 1400, 1401, 5, 771, 386, 2, 1401, 1402, 5, 797, 399, 2, 1402, 156, 3, 2, 2, 2, 1403, 1404, 5, 769, 385, 2, 1404, 1405, 5, 771, 386, 2, 1405, 1406, 5, 799, 400, 2, 1406, 1407, 5, 767, 384, 2, 1407, 158, 3, 2, 2, 2, 1408, 1409, 5, 769, 385, 2, 1409, 1410, 5, 771, 386, 2, 1410, 1411, 5, 799, 400, 2, 1411, 1412, 5, 767, 384, 2, 1412, 1413, 5, 797, 399, 2, 1413, 1414, 5, 779, 390, 2, 1414, 1415, 5, 765, 383, 2, 1415, 1416, 5, 771, 386, 2, 1416, 160, 3, 2, 2, 2, 1417, 1418, 5, 769, 385, 2, 1418, 1419, 5, 779, 390, 2, 1419, 1420, 5, 763, 382, 2, 1420, 1421, 5, 775, 388, 2, 1421, 1422, 5, 789, 395, 2, 1422, 1423, 5, 791, 396, 2, 1423, 1424, 5, 799, 400, 2, 1424, 1425, 5, 801, 401, 2, 1425, 1426, 5, 779, 390, 2, 1426, 1427, 5, 767, 384, 2, 1427, 1428, 5, 799, 400, 2, 1428, 162, 3, 2, 2, 2, 1429, 1430, 5, 769, 385, 2, 1430, 1431, 5, 779, 390, 2, 1431, 1432, 5, 797, 399, 2, 1432, 164, 3, 2, 2, 2, 1433, 1434, 5, 769, 385, 2, 1434, 1435, 5, 779, 390, 2, 1435, 1436, 5, 797, 399, 2, 1436, 1437, 5, 771, 386, 2, 1437, 1438, 5, 767, 384, 2, 1438, 1439, 5, 801, 401, 2, 1439, 1440, 5, 791, 396, 2, 1440, 1441, 5, 797, 399, 2, 1441, 1442, 5, 811, 406, 2, 1442, 166, 3, 2, 2, 2, 1443, 1444, 5, 769, 385, 2, 1444, 1445, 5, 779, 390, 2, 1445, 1446, 5, 799, 400, 2, 1446, 1447, 5, 801, 401, 2, 1447, 1448, 5, 779, 390, 2, 1448, 1449, 5, 789, 395, 2, 1449, 1450, 5, 767, 384, 2, 1450, 1451, 5, 801, 401, 2, 1451, 168, 3, 2, 2, 2, 1452, 1453, 5, 769, 385, 2, 1453, 1454, 5, 779, 390, 2, 1454, 1455, 5, 799, 400, 2, 1455, 1456, 5, 801, 401, 2, 1456, 1457, 5, 797, 399, 2, 1457, 1458, 5, 779, 390, 2, 1458, 1459, 5, 765, 383, 2, 1459, 1460, 5, 803, 402, 2, 1460, 1461, 5, 801, 401, 2, 1461, 1462, 5, 771, 386, 2, 1462, 170, 3, 2, 2, 2, 1463, 1464, 5, 769, 385, 2, 1464, 1465, 5, 791, 396, 2, 1465, 172, 3, 2, 2, 2, 1466, 1467, 5, 769, 385, 2, 1467, 1468, 5, 791, 396, 2, 1468, 1469, 5, 803, 402, 2, 1469, 1470, 5, 765, 383, 2, 1470, 1471, 5, 785, 393, 2, 1471, 1472, 5, 771, 386, 2, 1472, 174, 3, 2, 2, 2, 1473, 1474, 5, 769, 385, 2, 1474, 1475, 5, 797, 399, 2, 1475, 1476, 5, 791, 396, 2, 1476, 1477, 5, 793, 397, 2, 1477, 176, 3, 2, 2, 2, 1478, 1479, 5, 769, 385, 2, 1479, 1480, 5, 811, 406, 2, 1480, 1481, 5, 789, 395, 2, 1481, 1482, 5, 763, 382, 2, 1482, 1483, 5, 787, 394, 2, 1483, 1484, 5, 779, 390, 2, 1484, 1485, 5, 767, 384, 2, 1485, 178, 3, 2, 2, 2, 1486, 1487, 5, 771, 386, 2, 1487, 1488, 5, 785, 393, 2, 1488, 1489, 5, 799, 400, 2, 1489, 1490, 5, 771, 386, 2, 1490, 180, 3, 2, 2, 2, 1491, 1492, 5, 771, 386, 2, 1492, 1493, 5, 785, 393, 2, 1493, 1494, 5, 799, 400, 2, 1494, 1495, 5, 771, 386, 2, 1495, 1496, 5, 779, 390, 2, 1496, 1497, 5, 773, 387, 2, 1497, 182, 3, 2, 2, 2, 1498, 1499, 5, 771, 386, 2, 1499, 1500, 5, 785, 393, 2, 1500, 1501, 5, 799, 400, 2, 1501, 1502, 5, 779, 390, 2, 1502, 1503, 5, 773, 387, 2, 1503, 184, 3, 2, 2, 2, 1504, 1505, 5, 771, 386, 2, 1505, 1506, 5, 789, 395, 2, 1506, 1507, 5, 763, 382, 2, 1507, 1508, 5, 765, 383, 2, 1508, 1509, 5, 785, 393, 2, 1509, 1510, 5, 771, 386, 2, 1510, 186, 3, 2, 2, 2, 1511, 1512, 5, 771, 386, 2, 1512, 1513, 5, 789, 395, 2, 1513, 1514, 5, 769, 385, 2, 1514, 188, 3, 2, 2, 2, 1515, 1516, 5, 771, 386, 2, 1516, 1517, 5, 789, 395, 2, 1517, 1518, 5, 775, 388, 2, 1518, 1519, 5, 779, 390, 2, 1519, 1520, 5, 789, 395, 2, 1520, 1521, 5, 771, 386, 2, 1521, 190, 3, 2, 2, 2, 1522, 1523, 5, 771, 386, 2, 1523, 1524, 5, 799, 400, 2, 1524, 1525, 5, 767, 384, 2, 1525, 1526, 5, 763, 382, 2, 1526, 1527, 5, 793, 397, 2, 1527, 1528, 5, 771, 386, 2, 1528, 1529, 5, 769, 385, 2, 1529, 192, 3, 2, 2, 2, 1530, 1531, 5, 771, 386, 2, 1531, 1532, 5, 809, 405, 2, 1532, 1533, 5, 767, 384, 2, 1533, 1534, 5, 771, 386, 2, 1534, 1535, 5, 793, 397, 2, 1535, 1536, 5, 801, 401, 2, 1536, 194, 3, 2, 2, 2, 1537, 1538, 5, 771, 386, 2, 1538, 1539, 5, 809, 405, 2, 1539, 1540, 5, 771, 386, 2, 1540, 1541, 5, 767, 384, 2, 1541, 196, 3, 2, 2, 2, 1542, 1543, 5, 771, 386, 2, 1543, 1544, 5, 809, 405, 2, 1544, 1545, 5, 771, 386, 2, 1545, 1546, 5, 767, 384, 2, 1546, 1547, 5, 803, 402, 2, 1547, 1548, 5, 801, 401, 2, 1548, 1549, 5, 771, 386, 2, 1549, 198, 3, 2, 2, 2, 1550, 1551, 5, 771, 386, 2, 1551, 1552, 5, 809, 405, 2, 1552, 1553, 5, 767, 384, 2, 1553, 1554, 5, 771, 386, 2, 1554, 1555, 5, 793, 397, 2, 1555, 1556, 5, 801, 401, 2, 1556, 1557, 5, 779, 390, 2, 1557, 1558, 5, 791, 396, 2, 1558, 1559, 5, 789, 395, 2, 1559, 200, 3, 2, 2, 2, 1560, 1561, 5, 771, 386, 2, 1561, 1562, 5, 809, 405, 2, 1562, 1563, 5, 767, 384, 2, 1563, 1564, 5, 785, 393, 2, 1564, 1565, 5, 803, 402, 2, 1565, 1566, 5, 799, 400, 2, 1566, 1567, 5, 779, 390, 2, 1567, 1568, 5, 805, 403, 2, 1568, 1569, 5, 771, 386, 2, 1569, 202, 3, 2, 2, 2, 1570, 1571, 5, 771, 386, 2, 1571, 1572, 5, 809, 405, 2, 1572, 1573, 5, 779, 390, 2, 1573, 1574, 5, 799, 400, 2, 1574, 1575, 5, 801, 401, 2, 1575, 1576, 5, 799, 400, 2, 1576, 204, 3, 2, 2, 2, 1577, 1578, 5, 771, 386, 2, 1578, 1579, 5, 809, 405, 2, 1579, 1580, 5, 779, 390, 2, 1580, 1581, 5, 801, 401, 2, 1581, 206, 3, 2, 2, 2, 1582, 1583, 5, 773, 387, 2, 1583, 1584, 5, 763, 382, 2, 1584, 1585, 5, 785, 393, 2, 1585, 1586, 5, 785, 393, 2, 1586, 1587, 5, 765, 383, 2, 1587, 1588, 5, 763, 382, 2, 1588, 1589, 5, 767, 384, 2, 1589, 1590, 5, 783, 392, 2, 1590, 208, 3, 2, 2, 2, 1591, 1592, 5, 773, 387, 2, 1592, 1593, 5, 763, 382, 2, 1593, 1594, 5, 785, 393, 2, 1594, 1595, 5, 799, 400, 2, 1595, 1596, 5, 771, 386, 2, 1596, 210, 3, 2, 2, 2, 1597, 1598, 5, 773, 387, 2, 1598, 1599, 5, 771, 386, 2, 1599, 1600, 5, 801, 401, 2, 1600, 1601, 5, 767, 384, 2, 1601, 1602, 5, 777, 389, 2, 1602, 212, 3, 2, 2, 2, 1603, 1604, 5, 773, 387, 2, 1604, 1605, 5, 779, 390, 2, 1605, 1606, 5, 771, 386, 2, 1606, 1607, 5, 785, 393, 2, 1607, 1608, 5, 769, 385, 2, 1608, 1609, 5, 799, 400, 2, 1609, 214, 3, 2, 2, 2, 1610, 1611, 5, 773, 387, 2, 1611, 1612, 5, 779, 390, 2, 1612, 1613, 5, 785, 393, 2, 1613, 1614, 5, 771, 386, 2, 1614, 216, 3, 2, 2, 2, 1615, 1616, 5, 773, 387, 2, 1616, 1617, 5, 779, 390, 2, 1617, 1618, 5, 785, 393, 2, 1618, 1619, 5, 771, 386, 2, 1619, 1620, 5, 799, 400, 2, 1620, 218, 3, 2, 2, 2, 1621, 1622, 5, 773, 387, 2, 1622, 1623, 5, 785, 393, 2, 1623, 1624, 5, 791, 396, 2, 1624, 1625, 5, 763, 382, 2, 1625, 1626, 5, 801, 401, 2, 1626, 220, 3, 2, 2, 2, 1627, 1628, 5, 773, 387, 2, 1628, 1629, 5, 791, 396, 2, 1629, 1630, 5, 797, 399, 2, 1630, 222, 3, 2, 2, 2, 1631, 1632, 5, 773, 387, 2, 1632, 1633, 5, 791, 396, 2, 1633, 1634, 5, 797, 399, 2, 1634, 1635, 5, 771, 386, 2, 1635, 1636, 5, 779, 390, 2, 1636, 1637, 5, 775, 388, 2, 1637, 1638, 5, 789, 395, 2, 1638, 224, 3, 2, 2, 2, 1639, 1640, 5, 773, 387, 2, 1640, 1641, 5, 791, 396, 2, 1641, 1642, 5, 797, 399, 2, 1642, 1643, 5, 787, 394, 2, 1643, 1644, 5, 763, 382, 2, 1644, 1645, 5, 801, 401, 2, 1645, 226, 3, 2, 2, 2, 1646, 1647, 5, 773, 387, 2, 1647, 1648, 5, 791, 396, 2, 1648, 1649, 5, 803, 402, 2, 1649, 1650, 5, 789, 395, 2, 1650, 1651, 5, 769, 385, 2, 1651, 228, 3, 2, 2, 2, 1652, 1653, 5, 773, 387, 2, 1653, 1654, 5, 797, 399, 2, 1654, 1655, 5, 791, 396, 2, 1655, 1656, 5, 787, 394, 2, 1656, 230, 3, 2, 2, 2, 1657, 1658, 5, 773, 387, 2, 1658, 1659, 5, 803, 402, 2, 1659, 1660, 5, 785, 393, 2, 1660, 1661, 5, 785, 393, 2, 1661, 232, 3, 2, 2, 2, 1662, 1663, 5, 773, 387, 2, 1663, 1664, 5, 803, 402, 2, 1664, 1665, 5, 789, 395, 2, 1665, 1666, 5, 767, 384, 2, 1666, 1667, 5, 801, 401, 2, 1667, 1668, 5, 779, 390, 2, 1668, 1669, 5, 791, 396, 2, 1669, 1670, 5, 789, 395, 2, 1670, 234, 3, 2, 2, 2, 1671, 1672, 5, 775, 388, 2, 1672, 1673, 5, 771, 386, 2, 1673, 1674, 5, 801, 401, 2, 1674, 236, 3, 2, 2, 2, 1675, 1676, 5, 775, 388, 2, 1676, 1677, 5, 785, 393, 2, 1677, 1678, 5, 791, 396, 2, 1678, 1679, 5, 765, 383, 2, 1679, 1680, 5, 763, 382, 2, 1680, 1681, 5, 785, 393, 2, 1681, 238, 3, 2, 2, 2, 1682, 1683, 5, 775, 388, 2, 1683, 1684, 5, 791, 396, 2, 1684, 240, 3, 2, 2, 2, 1685, 1686, 5, 775, 388, 2, 1686, 1687, 5, 797, 399, 2, 1687, 1688, 5, 763, 382, 2, 1688, 1689, 5, 789, 395, 2, 1689, 1690, 5, 801, 401, 2, 1690, 242, 3, 2, 2, 2, 1691, 1692, 5, 775, 388, 2, 1692, 1693, 5, 797, 399, 2, 1693, 1694, 5, 791, 396, 2, 1694, 1695, 5, 803, 402, 2, 1695, 1696, 5, 793, 397, 2, 1696, 244, 3, 2, 2, 2, 1697, 1698, 5, 777, 389, 2, 1698, 1699, 5, 763, 382, 2, 1699, 1700, 5, 789, 395, 2, 1700, 1701, 5, 769, 385, 2, 1701, 1702, 5, 785, 393, 2, 1702, 1703, 5, 771, 386, 2, 1703, 1704, 5, 797, 399, 2, 1704, 246, 3, 2, 2, 2, 1705, 1706, 5, 777, 389, 2, 1706, 1707, 5, 763, 382, 2, 1707, 1708, 5, 799, 400, 2, 1708, 1709, 5, 777, 389, 2, 1709, 248, 3, 2, 2, 2, 1710, 1711, 5, 777, 389, 2, 1711, 1712, 5, 763, 382, 2, 1712, 1713, 5, 805, 403, 2, 1713, 1714, 5, 779, 390, 2, 1714, 1715, 5, 789, 395, 2, 1715, 1716, 5, 775, 388, 2, 1716, 250, 3, 2, 2, 2, 1717, 1718, 5, 777, 389, 2, 1718, 1719, 5, 769, 385, 2, 1719, 1720, 5, 773, 387, 2, 1720, 1721, 5, 799, 400, 2, 1721, 252, 3, 2, 2, 2, 1722, 1723, 5, 777, 389, 2, 1723, 1724, 5, 779, 390, 2, 1724, 1725, 5, 805, 403, 2, 1725, 1726, 5, 771, 386, 2, 1726, 254, 3, 2, 2, 2, 1727, 1728, 5, 777, 389, 2, 1728, 1729, 5, 791, 396, 2, 1729, 1730, 5, 799, 400, 2, 1730, 1731, 5, 801, 401, 2, 1731, 256, 3, 2, 2, 2, 1732, 1733, 5, 779, 390, 2, 1733, 1734, 5, 769, 385, 2, 1734, 1735, 5, 771, 386, 2, 1735, 1736, 5, 789, 395, 2, 1736, 1737, 5, 801, 401, 2, 1737, 1738, 5, 779, 390, 2, 1738, 1739, 5, 801, 401, 2, 1739, 1740, 5, 811, 406, 2, 1740, 258, 3, 2, 2, 2, 1741, 1742, 5, 779, 390, 2, 1742, 1743, 5, 773, 387, 2, 1743, 260, 3, 2, 2, 2, 1744, 1745, 5, 779, 390, 2, 1745, 1746, 5, 775, 388, 2, 1746, 1747, 5, 789, 395, 2, 1747, 1748, 5, 791, 396, 2, 1748, 1749, 5, 797, 399, 2, 1749, 1750, 5, 771, 386, 2, 1750, 262, 3, 2, 2, 2, 1751, 1752, 5, 779, 390, 2, 1752, 1753, 5, 787, 394, 2, 1753, 1754, 5, 787, 394, 2, 1754, 1755, 5, 771, 386, 2, 1755, 1756, 5, 769, 385, 2, 1756, 1757, 5, 779, 390, 2, 1757, 1758, 5, 763, 382, 2, 1758, 1759, 5, 801, 401, 2, 1759, 1760, 5, 771, 386, 2, 1760, 264, 3, 2, 2, 2, 1761, 1762, 5, 779, 390, 2, 1762, 1763, 5, 789, 395, 2, 1763, 266, 3, 2, 2, 2, 1764, 1765, 5, 779, 390, 2, 1765, 1766, 5, 789, 395, 2, 1766, 1767, 5, 767, 384, 2, 1767, 1768, 5, 785, 393, 2, 1768, 1769, 5, 803, 402, 2, 1769, 1770, 5, 769, 385, 2, 1770, 1771, 5, 771, 386, 2, 1771, 268, 3, 2, 2, 2, 1772, 1773, 5, 779, 390, 2, 1773, 1774, 5, 789, 395, 2, 1774, 1775, 5, 769, 385, 2, 1775, 1776, 5, 771, 386, 2, 1776, 1777, 5, 809, 405, 2, 1777, 270, 3, 2, 2, 2, 1778, 1779, 5, 779, 390, 2, 1779, 1780, 5, 789, 395, 2, 1780, 1781, 5, 779, 390, 2, 1781, 1782, 5, 801, 401, 2, 1782, 1783, 5, 797, 399, 2, 1783, 1784, 5, 763, 382, 2, 1784, 1785, 5, 789, 395, 2, 1785, 1786, 5, 799, 400, 2, 1786, 272, 3, 2, 2, 2, 1787, 1788, 5, 779, 390, 2, 1788, 1789, 5, 789, 395, 2, 1789, 1790, 5, 789, 395, 2, 1790, 1791, 5, 771, 386, 2, 1791, 1792, 5, 797, 399, 2, 1792, 274, 3, 2, 2, 2, 1793, 1794, 5, 779, 390, 2, 1794, 1795, 5, 789, 395, 2, 1795, 1796, 5, 791, 396, 2, 1796, 1797, 5, 803, 402, 2, 1797, 1798, 5, 801, 401, 2, 1798, 276, 3, 2, 2, 2, 1799, 1800, 5, 779, 390, 2, 1800, 1801, 5, 789, 395, 2, 1801, 1802, 5, 799, 400, 2, 1802, 1803, 5, 771, 386, 2, 1803, 1804, 5, 797, 399, 2, 1804, 1805, 5, 801, 401, 2, 1805, 278, 3, 2, 2, 2, 1806, 1807, 5, 779, 390, 2, 1807, 1808, 5, 789, 395, 2, 1808, 1809, 5, 801, 401, 2, 1809, 280, 3, 2, 2, 2, 1810, 1811, 5, 779, 390, 2, 1811, 1812, 5, 789, 395, 2, 1812, 1813, 5, 801, 401, 2, 1813, 1814, 7, 52, 2, 2, 1814, 282, 3, 2, 2, 2, 1815, 1816, 5, 779, 390, 2, 1816, 1817, 5, 789, 395, 2, 1817, 1818, 5, 801, 401, 2, 1818, 1819, 7, 54, 2, 2, 1819, 284, 3, 2, 2, 2, 1820, 1821, 5, 779, 390, 2, 1821, 1822, 5, 789, 395, 2, 1822, 1823, 5, 801, 401, 2, 1823, 1824, 7, 58, 2, 2, 1824, 286, 3, 2, 2, 2, 1825, 1826, 5, 779, 390, 2, 1826, 1827, 5, 789, 395, 2, 1827, 1828, 5, 801, 401, 2, 1828, 1829, 5, 771, 386, 2, 1829, 1830, 5, 775, 388, 2, 1830, 1831, 5, 771, 386, 2, 1831, 1832, 5, 797, 399, 2, 1832, 288, 3, 2, 2, 2, 1833, 1834, 5, 779, 390, 2, 1834, 1835, 5, 789, 395, 2, 1835, 1836, 5, 801, 401, 2, 1836, 1837, 5, 771, 386, 2, 1837, 1838, 5, 797, 399, 2, 1838, 1839, 5, 799, 400, 2, 1839, 1840, 5, 771, 386, 2, 1840, 1841, 5, 767, 384, 2, 1841, 1842, 5, 801, 401, 2, 1842, 290, 3, 2, 2, 2, 1843, 1844, 5, 779, 390, 2, 1844, 1845, 5, 789, 395, 2, 1845, 1846, 5, 801, 401, 2, 1846, 1847, 5, 771, 386, 2, 1847, 1848, 5, 797, 399, 2, 1848, 1849, 5, 805, 403, 2, 1849, 1850, 5, 763, 382, 2, 1850, 1851, 5, 785, 393, 2, 1851, 292, 3, 2, 2, 2, 1852, 1853, 5, 779, 390, 2, 1853, 1854, 5, 789, 395, 2, 1854, 1855, 5, 801, 401, 2, 1855, 1856, 5, 791, 396, 2, 1856, 294, 3, 2, 2, 2, 1857, 1858, 5, 779, 390, 2, 1858, 1859, 5, 789, 395, 2, 1859, 1860, 5, 805, 403, 2, 1860, 1861, 5, 791, 396, 2, 1861, 1862, 5, 783, 392, 2, 1862, 1863, 5, 771, 386, 2, 1863, 1864, 5, 797, 399, 2, 1864, 296, 3, 2, 2, 2, 1865, 1866, 5, 779, 390, 2, 1866, 1867, 5, 799, 400, 2, 1867, 298, 3, 2, 2, 2, 1868, 1869, 5, 779, 390, 2, 1869, 1870, 5, 799, 400, 2, 1870, 1871, 5, 791, 396, 2, 1871, 1872, 5, 793, 397, 2, 1872, 1873, 5, 771, 386, 2, 1873, 1874, 5, 789, 395, 2, 1874, 300, 3, 2, 2, 2, 1875, 1876, 5, 779, 390, 2, 1876, 1877, 5, 801, 401, 2, 1877, 1878, 5, 771, 386, 2, 1878, 1879, 5, 787, 394, 2, 1879, 1880, 5, 799, 400, 2, 1880, 302, 3, 2, 2, 2, 1881, 1882, 5, 781, 391, 2, 1882, 1883, 5, 791, 396, 2, 1883, 1884, 5, 779, 390, 2, 1884, 1885, 5, 789, 395, 2, 1885, 304, 3, 2, 2, 2, 1886, 1887, 5, 783, 392, 2, 1887, 1888, 5, 771, 386, 2, 1888, 1889, 5, 771, 386, 2, 1889, 1890, 5, 793, 397, 2, 1890, 306, 3, 2, 2, 2, 1891, 1892, 5, 783, 392, 2, 1892, 1893, 5, 771, 386, 2, 1893, 1894, 5, 811, 406, 2, 1894, 308, 3, 2, 2, 2, 1895, 1896, 5, 783, 392, 2, 1896, 1897, 5, 771, 386, 2, 1897, 1898, 5, 811, 406, 2, 1898, 1899, 5, 799, 400, 2, 1899, 310, 3, 2, 2, 2, 1900, 1901, 5, 785, 393, 2, 1901, 1902, 5, 763, 382, 2, 1902, 1903, 5, 789, 395, 2, 1903, 1904, 5, 775, 388, 2, 1904, 1905, 5, 803, 402, 2, 1905, 1906, 5, 763, 382, 2, 1906, 1907, 5, 775, 388, 2, 1907, 1908, 5, 771, 386, 2, 1908, 312, 3, 2, 2, 2, 1909, 1910, 5, 785, 393, 2, 1910, 1911, 5, 771, 386, 2, 1911, 1912, 5, 763, 382, 2, 1912, 1913, 5, 805, 403, 2, 1913, 1914, 5, 771, 386, 2, 1914, 314, 3, 2, 2, 2, 1915, 1916, 5, 785, 393, 2, 1916, 1917, 5, 771, 386, 2, 1917, 1918, 5, 773, 387, 2, 1918, 1919, 5, 801, 401, 2, 1919, 316, 3, 2, 2, 2, 1920, 1921, 5, 785, 393, 2, 1921, 1922, 5, 779, 390, 2, 1922, 1923, 5, 783, 392, 2, 1923, 1924, 5, 771, 386, 2, 1924, 318, 3, 2, 2, 2, 1925, 1926, 5, 785, 393, 2, 1926, 1927, 5, 779, 390, 2, 1927, 1928, 5, 787, 394, 2, 1928, 1929, 5, 779, 390, 2, 1929, 1930, 5, 801, 401, 2, 1930, 320, 3, 2, 2, 2, 1931, 1932, 5, 785, 393, 2, 1932, 1933, 5, 779, 390, 2, 1933, 1934, 5, 789, 395, 2, 1934, 1935, 5, 771, 386, 2, 1935, 1936, 5, 799, 400, 2, 1936, 322, 3, 2, 2, 2, 1937, 1938, 5, 785, 393, 2, 1938, 1939, 5, 791, 396, 2, 1939, 1940, 5, 767, 384, 2, 1940, 1941, 5, 763, 382, 2, 1941, 1942, 5, 785, 393, 2, 1942, 324, 3, 2, 2, 2, 1943, 1944, 5, 785, 393, 2, 1944, 1945, 5, 791, 396, 2, 1945, 1946, 5, 767, 384, 2, 1946, 1947, 5, 763, 382, 2, 1947, 1948, 5, 801, 401, 2, 1948, 1949, 5, 779, 390, 2, 1949, 1950, 5, 791, 396, 2, 1950, 1951, 5, 789, 395, 2, 1951, 326, 3, 2, 2, 2, 1952, 1953, 5, 785, 393, 2, 1953, 1954, 5, 791, 396, 2, 1954, 1955, 5, 767, 384, 2, 1955, 1956, 5, 763, 382, 2, 1956, 1957, 5, 801, 401, 2, 1957, 1958, 5, 791, 396, 2, 1958, 1959, 5, 797, 399, 2, 1959, 328, 3, 2, 2, 2, 1960, 1961, 5, 785, 393, 2, 1961, 1962, 5, 791, 396, 2, 1962, 1963, 5, 767, 384, 2, 1963, 1964, 5, 763, 382, 2, 1964, 1965, 5, 801, 401, 2, 1965, 1966, 5, 791, 396, 2, 1966, 1967, 5, 797, 399, 2, 1967, 1968, 5, 799, 400, 2, 1968, 330, 3, 2, 2, 2, 1969, 1970, 5, 785, 393, 2, 1970, 1971, 5, 791, 396, 2, 1971, 1972, 5, 767, 384, 2, 1972, 1973, 5, 783, 392, 2, 1973, 1974, 5, 799, 400, 2, 1974, 332, 3, 2, 2, 2, 1975, 1976, 5, 785, 393, 2, 1976, 1977, 5, 791, 396, 2, 1977, 1978, 5, 775, 388, 2, 1978, 334, 3, 2, 2, 2, 1979, 1980, 5, 785, 393, 2, 1980, 1981, 5, 791, 396, 2, 1981, 1982, 5, 775, 388, 2, 1982, 1983, 5, 775, 388, 2, 1983, 1984, 5, 771, 386, 2, 1984, 1985, 5, 769, 385, 2, 1985, 336, 3, 2, 2, 2, 1986, 1987, 5, 785, 393, 2, 1987, 1988, 5, 791, 396, 2, 1988, 1989, 5, 775, 388, 2, 1989, 1990, 5, 775, 388, 2, 1990, 1991, 5, 779, 390, 2, 1991, 1992, 5, 789, 395, 2, 1992, 1993, 5, 775, 388, 2, 1993, 338, 3, 2, 2, 2, 1994, 1995, 5, 785, 393, 2, 1995, 1996, 5, 791, 396, 2, 1996, 1997, 5, 791, 396, 2, 1997, 1998, 5, 793, 397, 2, 1998, 340, 3, 2, 2, 2, 1999, 2000, 5, 787, 394, 2, 2000, 2001, 5, 763, 382, 2, 2001, 2002, 5, 793, 397, 2, 2002, 342, 3, 2, 2, 2, 2003, 2004, 5, 787, 394, 2, 2004, 2005, 5, 763, 382, 2, 2005, 2006, 5, 801, 401, 2, 2006, 2007, 5, 767, 384, 2, 2007, 2008, 5, 777, 389, 2, 2008, 2009, 5, 771, 386, 2, 2009, 2010, 5, 769, 385, 2, 2010, 344, 3, 2, 2, 2, 2011, 2012, 5, 787, 394, 2, 2012, 2013, 5, 763, 382, 2, 2013, 2014, 5, 809, 405, 2, 2014, 346, 3, 2, 2, 2, 2015, 2016, 5, 787, 394, 2, 2016, 2017, 5, 763, 382, 2, 2017, 2018, 5, 809, 405, 2, 2018, 2019, 5, 801, 401, 2, 2019, 2020, 5, 797, 399, 2, 2020, 2021, 5, 763, 382, 2, 2021, 2022, 5, 789, 395, 2, 2022, 2023, 5, 799, 400, 2, 2023, 348, 3, 2, 2, 2, 2024, 2025, 5, 787, 394, 2, 2025, 2026, 5, 771, 386, 2, 2026, 2027, 5, 797, 399, 2, 2027, 2028, 5, 775, 388, 2, 2028, 2029, 5, 771, 386, 2, 2029, 350, 3, 2, 2, 2, 2030, 2031, 5, 787, 394, 2, 2031, 2032, 5, 771, 386, 2, 2032, 2033, 5, 799, 400, 2, 2033, 2034, 5, 799, 400, 2, 2034, 2035, 5, 763, 382, 2, 2035, 2036, 5, 775, 388, 2, 2036, 2037, 5, 771, 386, 2, 2037, 2038, 7, 97, 2, 2, 2038, 2039, 5, 801, 401, 2, 2039, 2040, 5, 771, 386, 2, 2040, 2041, 5, 809, 405, 2, 2041, 2042, 5, 801, 401, 2, 2042, 352, 3, 2, 2, 2, 2043, 2044, 5, 787, 394, 2, 2044, 2045, 5, 779, 390, 2, 2045, 2046, 5, 767, 384, 2, 2046, 2047, 5, 797, 399, 2, 2047, 2048, 5, 791, 396, 2, 2048, 2049, 5, 799, 400, 2, 2049, 2050, 5, 771, 386, 2, 2050, 2051, 5, 767, 384, 2, 2051, 2052, 5, 791, 396, 2, 2052, 2053, 5, 789, 395, 2, 2053, 2054, 5, 769, 385, 2, 2054, 354, 3, 2, 2, 2, 2055, 2056, 5, 787, 394, 2, 2056, 2057, 5, 779, 390, 2, 2057, 2058, 5, 767, 384, 2, 2058, 2059, 5, 797, 399, 2, 2059, 2060, 5, 791, 396, 2, 2060, 2061, 5, 799, 400, 2, 2061, 2062, 5, 771, 386, 2, 2062, 2063, 5, 767, 384, 2, 2063, 2064, 5, 791, 396, 2, 2064, 2065, 5, 789, 395, 2, 2065, 2066, 5, 769, 385, 2, 2066, 2067, 5, 799, 400, 2, 2067, 356, 3, 2, 2, 2, 2068, 2069, 5, 787, 394, 2, 2069, 2070, 5, 779, 390, 2, 2070, 2071, 5, 789, 395, 2, 2071, 358, 3, 2, 2, 2, 2072, 2073, 5, 787, 394, 2, 2073, 2074, 5, 803, 402, 2, 2074, 2075, 5, 785, 393, 2, 2075, 2076, 5, 801, 401, 2, 2076, 2077, 5, 779, 390, 2, 2077, 2078, 5, 799, 400, 2, 2078, 2079, 5, 771, 386, 2, 2079, 2080, 5, 801, 401, 2, 2080, 360, 3, 2, 2, 2, 2081, 2082, 5, 789, 395, 2, 2082, 2083, 5, 767, 384, 2, 2083, 2084, 5, 777, 389, 2, 2084, 2085, 5, 763, 382, 2, 2085, 2086, 5, 797, 399, 2, 2086, 362, 3, 2, 2, 2, 2087, 2088, 5, 789, 395, 2, 2088, 2089, 5, 771, 386, 2, 2089, 2090, 5, 807, 404, 2, 2090, 364, 3, 2, 2, 2, 2091, 2092, 5, 789, 395, 2, 2092, 2093, 5, 805, 403, 2, 2093, 2094, 5, 763, 382, 2, 2094, 2095, 5, 797, 399, 2, 2095, 2096, 5, 767, 384, 2, 2096, 2097, 5, 777, 389, 2, 2097, 2098, 5, 763, 382, 2, 2098, 2099, 5, 797, 399, 2, 2099, 366, 3, 2, 2, 2, 2100, 2101, 5, 789, 395, 2, 2101, 2102, 5, 791, 396, 2, 2102, 368, 3, 2, 2, 2, 2103, 2104, 5, 789, 395, 2, 2104, 2105, 5, 791, 396, 2, 2105, 2106, 5, 767, 384, 2, 2106, 2107, 5, 791, 396, 2, 2107, 2108, 5, 803, 402, 2, 2108, 2109, 5, 789, 395, 2, 2109, 2110, 5, 801, 401, 2, 2110, 370, 3, 2, 2, 2, 2111, 2112, 5, 789, 395, 2, 2112, 2113, 5, 791, 396, 2, 2113, 2114, 5, 767, 384, 2, 2114, 2115, 5, 791, 396, 2, 2115, 2116, 5, 787, 394, 2, 2116, 2117, 5, 793, 397, 2, 2117, 2118, 5, 797, 399, 2, 2118, 2119, 5, 771, 386, 2, 2119, 2120, 5, 799, 400, 2, 2120, 2121, 5, 799, 400, 2, 2121, 372, 3, 2, 2, 2, 2122, 2123, 5, 789, 395, 2, 2123, 2124, 5, 791, 396, 2, 2124, 2125, 5, 785, 393, 2, 2125, 2126, 5, 791, 396, 2, 2126, 2127, 5, 775, 388, 2, 2127, 2128, 5, 775, 388, 2, 2128, 2129, 5, 779, 390, 2, 2129, 2130, 5, 789, 395, 2, 2130, 2131, 5, 775, 388, 2, 2131, 374, 3, 2, 2, 2, 2132, 2133, 5, 789, 395, 2, 2133, 2134, 5, 791, 396, 2, 2134, 2135, 5, 789, 395, 2, 2135, 2136, 5, 771, 386, 2, 2136, 376, 3, 2, 2, 2, 2137, 2138, 5, 789, 395, 2, 2138, 2139, 5, 791, 396, 2, 2139, 2140, 5, 801, 401, 2, 2140, 378, 3, 2, 2, 2, 2141, 2142, 5, 789, 395, 2, 2142, 2143, 5, 791, 396, 2, 2143, 2144, 5, 801, 401, 2, 2144, 2145, 5, 773, 387, 2, 2145, 2146, 5, 791, 396, 2, 2146, 2147, 5, 803, 402, 2, 2147, 2148, 5, 789, 395, 2, 2148, 2149, 5, 769, 385, 2, 2149, 380, 3, 2, 2, 2, 2150, 2151, 5, 789, 395, 2, 2151, 2152, 5, 803, 402, 2, 2152, 2153, 5, 785, 393, 2, 2153, 2154, 5, 785, 393, 2, 2154, 382, 3, 2, 2, 2, 2155, 2156, 5, 789, 395, 2, 2156, 2157, 5, 803, 402, 2, 2157, 2158, 5, 787, 394, 2, 2158, 2159, 5, 771, 386, 2, 2159, 2160, 5, 797, 399, 2, 2160, 2161, 5, 779, 390, 2, 2161, 2162, 5, 767, 384, 2, 2162, 384, 3, 2, 2, 2, 2163, 2164, 5, 789, 395, 2, 2164, 2165, 5, 803, 402, 2, 2165, 2166, 5, 787, 394, 2, 2166, 2167, 5, 765, 383, 2, 2167, 2168, 5, 771, 386, 2, 2168, 2169, 5, 797, 399, 2, 2169, 386, 3, 2, 2, 2, 2170, 2171, 5, 791, 396, 2, 2171, 2172, 5, 765, 383, 2, 2172, 2173, 5, 781, 391, 2, 2173, 2174, 5, 771, 386, 2, 2174, 2175, 5, 767, 384, 2, 2175, 2176, 5, 801, 401, 2, 2176, 388, 3, 2, 2, 2, 2177, 2178, 5, 791, 396, 2, 2178, 2179, 5, 773, 387, 2, 2179, 2180, 5, 773, 387, 2, 2180, 390, 3, 2, 2, 2, 2181, 2182, 5, 791, 396, 2, 2182, 2183, 5, 789, 395, 2, 2183, 392, 3, 2, 2, 2, 2184, 2185, 5, 791, 396, 2, 2185, 2186, 5, 789, 395, 2, 2186, 2187, 5, 785, 393, 2, 2187, 2188, 5, 811, 406, 2, 2188, 394, 3, 2, 2, 2, 2189, 2190, 5, 791, 396, 2, 2190, 2191, 5, 793, 397, 2, 2191, 2192, 5, 771, 386, 2, 2192, 2193, 5, 789, 395, 2, 2193, 396, 3, 2, 2, 2, 2194, 2195, 5, 791, 396, 2, 2195, 2196, 5, 797, 399, 2, 2196, 398, 3, 2, 2, 2, 2197, 2198, 5, 791, 396, 2, 2198, 2199, 5, 797, 399, 2, 2199, 2200, 5, 769, 385, 2, 2200, 2201, 5, 771, 386, 2, 2201, 2202, 5, 797, 399, 2, 2202, 400, 3, 2, 2, 2, 2203, 2204, 5, 791, 396, 2, 2204, 2205, 5, 803, 402, 2, 2205, 2206, 5, 801, 401, 2, 2206, 402, 3, 2, 2, 2, 2207, 2208, 5, 791, 396, 2, 2208, 2209, 5, 803, 402, 2, 2209, 2210, 5, 801, 401, 2, 2210, 2211, 5, 771, 386, 2, 2211, 2212, 5, 797, 399, 2, 2212, 404, 3, 2, 2, 2, 2213, 2214, 5, 791, 396, 2, 2214, 2215, 5, 805, 403, 2, 2215, 2216, 5, 771, 386, 2, 2216, 2217, 5, 797, 399, 2, 2217, 406, 3, 2, 2, 2, 2218, 2219, 5, 791, 396, 2, 2219, 2220, 5, 805, 403, 2, 2220, 2221, 5, 771, 386, 2, 2221, 2222, 5, 797, 399, 2, 2222, 2223, 5, 807, 404, 2, 2223, 2224, 5, 797, 399, 2, 2224, 2225, 5, 779, 390, 2, 2225, 2226, 5, 801, 401, 2, 2226, 2227, 5, 771, 386, 2, 2227, 408, 3, 2, 2, 2, 2228, 2229, 5, 791, 396, 2, 2229, 2230, 5, 807, 404, 2, 2230, 2231, 5, 789, 395, 2, 2231, 2232, 5, 771, 386, 2, 2232, 2233, 5, 797, 399, 2, 2233, 410, 3, 2, 2, 2, 2234, 2235, 5, 793, 397, 2, 2235, 2236, 5, 763, 382, 2, 2236, 2237, 5, 767, 384, 2, 2237, 2238, 5, 783, 392, 2, 2238, 2239, 5, 763, 382, 2, 2239, 2240, 5, 775, 388, 2, 2240, 2241, 5, 771, 386, 2, 2241, 412, 3, 2, 2, 2, 2242, 2243, 5, 793, 397, 2, 2243, 2244, 5, 763, 382, 2, 2244, 2245, 5, 797, 399, 2, 2245, 2246, 5, 801, 401, 2, 2246, 2247, 5, 779, 390, 2, 2247, 2248, 5, 801, 401, 2, 2248, 2249, 5, 779, 390, 2, 2249, 2250, 5, 791, 396, 2, 2250, 2251, 5, 789, 395, 2, 2251, 414, 3, 2, 2, 2, 2252, 2253, 5, 793, 397, 2, 2253, 2254, 5, 767, 384, 2, 2254, 2255, 5, 801, 401, 2, 2255, 2256, 5, 773, 387, 2, 2256, 2257, 5, 797, 399, 2, 2257, 2258, 5, 771, 386, 2, 2258, 2259, 5, 771, 386, 2, 2259, 416, 3, 2, 2, 2, 2260, 2261, 5, 793, 397, 2, 2261, 2262, 5, 767, 384, 2, 2262, 2263, 5, 801, 401, 2, 2263, 2264, 5, 803, 402, 2, 2264, 2265, 5, 799, 400, 2, 2265, 2266, 5, 771, 386, 2, 2266, 2267, 5, 769, 385, 2, 2267, 418, 3, 2, 2, 2, 2268, 2269, 5, 793, 397, 2, 2269, 2270, 5, 785, 393, 2, 2270, 2271, 5, 799, 400, 2, 2271, 2272, 7, 97, 2, 2, 2272, 2273, 5, 779, 390, 2, 2273, 2274, 5, 789, 395, 2, 2274, 2275, 5, 801, 401, 2, 2275, 2276, 5, 771, 386, 2, 2276, 2277, 5, 775, 388, 2, 2277, 2278, 5, 771, 386, 2, 2278, 2279, 5, 797, 399, 2, 2279, 420, 3, 2, 2, 2, 2280, 2281, 5, 793, 397, 2, 2281, 2282, 5, 797, 399, 2, 2282, 2283, 5, 771, 386, 2, 2283, 2284, 5, 767, 384, 2, 2284, 2285, 5, 779, 390, 2, 2285, 2286, 5, 799, 400, 2, 2286, 2287, 5, 779, 390, 2, 2287, 2288, 5, 791, 396, 2, 2288, 2289, 5, 789, 395, 2, 2289, 422, 3, 2, 2, 2, 2290, 2291, 5, 793, 397, 2, 2291, 2292, 5, 797, 399, 2, 2292, 2293, 5, 771, 386, 2, 2293, 2294, 5, 799, 400, 2, 2294, 2295, 5, 771, 386, 2, 2295, 2296, 5, 797, 399, 2, 2296, 2297, 5, 805, 403, 2, 2297, 2298, 5, 771, 386, 2, 2298, 424, 3, 2, 2, 2, 2299, 2300, 5, 793, 397, 2, 2300, 2301, 5, 797, 399, 2, 2301, 2302, 5, 779, 390, 2, 2302, 2303, 5, 787, 394, 2, 2303, 2304, 5, 763, 382, 2, 2304, 2305, 5, 797, 399, 2, 2305, 2306, 5, 811, 406, 2, 2306, 426, 3, 2, 2, 2, 2307, 2308, 5, 793, 397, 2, 2308, 2309, 5, 797, 399, 2, 2309, 2310, 5, 779, 390, 2, 2310, 2311, 5, 789, 395, 2, 2311, 2312, 5, 801, 401, 2, 2312, 428, 3, 2, 2, 2, 2313, 2314, 5, 793, 397, 2, 2314, 2315, 5, 797, 399, 2, 2315, 2316, 5, 791, 396, 2, 2316, 2317, 5, 767, 384, 2, 2317, 430, 3, 2, 2, 2, 2318, 2319, 5, 793, 397, 2, 2319, 2320, 5, 797, 399, 2, 2320, 2321, 5, 791, 396, 2, 2321, 2322, 5, 767, 384, 2, 2322, 2323, 5, 771, 386, 2, 2323, 2324, 5, 769, 385, 2, 2324, 2325, 5, 803, 402, 2, 2325, 2326, 5, 797, 399, 2, 2326, 2327, 5, 771, 386, 2, 2327, 432, 3, 2, 2, 2, 2328, 2329, 5, 795, 398, 2, 2329, 2330, 5, 803, 402, 2, 2330, 2331, 5, 763, 382, 2, 2331, 2332, 5, 785, 393, 2, 2332, 2333, 5, 779, 390, 2, 2333, 2334, 5, 773, 387, 2, 2334, 2335, 5, 811, 406, 2, 2335, 434, 3, 2, 2, 2, 2336, 2337, 5, 795, 398, 2, 2337, 2338, 5, 803, 402, 2, 2338, 2339, 5, 771, 386, 2, 2339, 2340, 5, 797, 399, 2, 2340, 2341, 5, 811, 406, 2, 2341, 2342, 7, 97, 2, 2, 2342, 2343, 5, 765, 383, 2, 2343, 2344, 5, 763, 382, 2, 2344, 2345, 5, 789, 395, 2, 2345, 2346, 5, 769, 385, 2, 2346, 436, 3, 2, 2, 2, 2347, 2348, 5, 795, 398, 2, 2348, 2349, 5, 803, 402, 2, 2349, 2350, 5, 779, 390, 2, 2350, 2351, 5, 801, 401, 2, 2351, 438, 3, 2, 2, 2, 2352, 2353, 5, 795, 398, 2, 2353, 2354, 5, 803, 402, 2, 2354, 2355, 5, 791, 396, 2, 2355, 2356, 5, 801, 401, 2, 2356, 2357, 5, 771, 386, 2, 2357, 2358, 5, 769, 385, 2, 2358, 2359, 7, 97, 2, 2, 2359, 2360, 5, 779, 390, 2, 2360, 2361, 5, 769, 385, 2, 2361, 2362, 5, 771, 386, 2, 2362, 2363, 5, 789, 395, 2, 2363, 2364, 5, 801, 401, 2, 2364, 2365, 5, 779, 390, 2, 2365, 2366, 5, 773, 387, 2, 2366, 2367, 5, 779, 390, 2, 2367, 2368, 5, 771, 386, 2, 2368, 2369, 5, 797, 399, 2, 2369, 440, 3, 2, 2, 2, 2370, 2371, 5, 797, 399, 2, 2371, 2372, 5, 763, 382, 2, 2372, 2373, 5, 779, 390, 2, 2373, 2374, 5, 799, 400, 2, 2374, 2375, 5, 771, 386, 2, 2375, 442, 3, 2, 2, 2, 2376, 2377, 5, 797, 399, 2, 2377, 2378, 5, 771, 386, 2, 2378, 2379, 5, 763, 382, 2, 2379, 2380, 5, 785, 393, 2, 2380, 444, 3, 2, 2, 2, 2381, 2382, 5, 797, 399, 2, 2382, 2383, 5, 771, 386, 2, 2383, 2384, 5, 773, 387, 2, 2384, 2385, 5, 771, 386, 2, 2385, 2386, 5, 797, 399, 2, 2386, 2387, 5, 771, 386, 2, 2387, 2388, 5, 789, 395, 2, 2388, 2389, 5, 767, 384, 2, 2389, 2390, 5, 771, 386, 2, 2390, 2391, 5, 799, 400, 2, 2391, 446, 3, 2, 2, 2, 2392, 2393, 5, 797, 399, 2, 2393, 2394, 5, 771, 386, 2, 2394, 2395, 5, 775, 388, 2, 2395, 2396, 5, 771, 386, 2, 2396, 2397, 5, 809, 405, 2, 2397, 2398, 5, 793, 397, 2, 2398, 448, 3, 2, 2, 2, 2399, 2400, 5, 797, 399, 2, 2400, 2401, 5, 771, 386, 2, 2401, 2402, 5, 793, 397, 2, 2402, 2403, 5, 785, 393, 2, 2403, 2404, 5, 763, 382, 2, 2404, 2405, 5, 767, 384, 2, 2405, 2406, 5, 771, 386, 2, 2406, 450, 3, 2, 2, 2, 2407, 2408, 5, 797, 399, 2, 2408, 2409, 5, 771, 386, 2, 2409, 2410, 5, 799, 400, 2, 2410, 2411, 5, 779, 390, 2, 2411, 2412, 5, 775, 388, 2, 2412, 2413, 5, 789, 395, 2, 2413, 2414, 5, 763, 382, 2, 2414, 2415, 5, 785, 393, 2, 2415, 452, 3, 2, 2, 2, 2416, 2417, 5, 797, 399, 2, 2417, 2418, 5, 771, 386, 2, 2418, 2419, 5, 799, 400, 2, 2419, 2420, 5, 801, 401, 2, 2420, 2421, 5, 797, 399, 2, 2421, 2422, 5, 779, 390, 2, 2422, 2423, 5, 767, 384, 2, 2423, 2424, 5, 801, 401, 2, 2424, 454, 3, 2, 2, 2, 2425, 2426, 5, 797, 399, 2, 2426, 2427, 5, 771, 386, 2, 2427, 2428, 5, 799, 400, 2, 2428, 2429, 5, 803, 402, 2, 2429, 2430, 5, 785, 393, 2, 2430, 2431, 5, 801, 401, 2, 2431, 456, 3, 2, 2, 2, 2432, 2433, 5, 797, 399, 2, 2433, 2434, 5, 771, 386, 2, 2434, 2435, 5, 799, 400, 2, 2435, 2436, 5, 803, 402, 2, 2436, 2437, 5, 785, 393, 2, 2437, 2438, 5, 801, 401, 2, 2438, 2439, 7, 97, 2, 2, 2439, 2440, 5, 799, 400, 2, 2440, 2441, 5, 771, 386, 2, 2441, 2442, 5, 801, 401, 2, 2442, 2443, 7, 97, 2, 2, 2443, 2444, 5, 785, 393, 2, 2444, 2445, 5, 791, 396, 2, 2445, 2446, 5, 767, 384, 2, 2446, 2447, 5, 763, 382, 2, 2447, 2448, 5, 801, 401, 2, 2448, 2449, 5, 791, 396, 2, 2449, 2450, 5, 797, 399, 2, 2450, 458, 3, 2, 2, 2, 2451, 2452, 5, 797, 399, 2, 2452, 2453, 5, 771, 386, 2, 2453, 2454, 5, 801, 401, 2, 2454, 2455, 5, 803, 402, 2, 2455, 2456, 5, 797, 399, 2, 2456, 2457, 5, 789, 395, 2, 2457, 460, 3, 2, 2, 2, 2458, 2459, 5, 797, 399, 2, 2459, 2460, 5, 771, 386, 2, 2460, 2461, 5, 801, 401, 2, 2461, 2462, 5, 803, 402, 2, 2462, 2463, 5, 797, 399, 2, 2463, 2464, 5, 789, 395, 2, 2464, 2465, 5, 799, 400, 2, 2465, 462, 3, 2, 2, 2, 2466, 2467, 5, 797, 399, 2, 2467, 2468, 5, 771, 386, 2, 2468, 2469, 5, 805, 403, 2, 2469, 2470, 5, 771, 386, 2, 2470, 2471, 5, 797, 399, 2, 2471, 2472, 5, 799, 400, 2, 2472, 2473, 5, 771, 386, 2, 2473, 464, 3, 2, 2, 2, 2474, 2475, 5, 797, 399, 2, 2475, 2476, 5, 779, 390, 2, 2476, 2477, 5, 775, 388, 2, 2477, 2478, 5, 777, 389, 2, 2478, 2479, 5, 801, 401, 2, 2479, 466, 3, 2, 2, 2, 2480, 2481, 5, 797, 399, 2, 2481, 2482, 5, 785, 393, 2, 2482, 2483, 5, 779, 390, 2, 2483, 2484, 5, 783, 392, 2, 2484, 2485, 5, 771, 386, 2, 2485, 468, 3, 2, 2, 2, 2486, 2487, 5, 797, 399, 2, 2487, 2488, 5, 791, 396, 2, 2488, 2489, 5, 785, 393, 2, 2489, 2490, 5, 771, 386, 2, 2490, 470, 3, 2, 2, 2, 2491, 2492, 5, 797, 399, 2, 2492, 2493, 5, 791, 396, 2, 2493, 2494, 5, 785, 393, 2, 2494, 2495, 5, 785, 393, 2, 2495, 2496, 5, 765, 383, 2, 2496, 2497, 5, 763, 382, 2, 2497, 2498, 5, 767, 384, 2, 2498, 2499, 5, 783, 392, 2, 2499, 472, 3, 2, 2, 2, 2500, 2501, 5, 797, 399, 2, 2501, 2502, 5, 791, 396, 2, 2502, 2503, 5, 807, 404, 2, 2503, 474, 3, 2, 2, 2, 2504, 2505, 5, 797, 399, 2, 2505, 2506, 5, 791, 396, 2, 2506, 2507, 5, 807, 404, 2, 2507, 2508, 5, 799, 400, 2, 2508, 476, 3, 2, 2, 2, 2509, 2510, 5, 797, 399, 2, 2510, 2511, 5, 791, 396, 2, 2511, 2512, 5, 807, 404, 2, 2512, 2513, 5, 801, 401, 2, 2513, 2514, 5, 811, 406, 2, 2514, 2515, 5, 793, 397, 2, 2515, 2516, 5, 771, 386, 2, 2516, 478, 3, 2, 2, 2, 2517, 2518, 5, 797, 399, 2, 2518, 2519, 5, 791, 396, 2, 2519, 2520, 5, 807, 404, 2, 2520, 2521, 7, 97, 2, 2, 2521, 2522, 5, 767, 384, 2, 2522, 2523, 5, 791, 396, 2, 2523, 2524, 5, 803, 402, 2, 2524, 2525, 5, 789, 395, 2, 2525, 2526, 5, 801, 401, 2, 2526, 480, 3, 2, 2, 2, 2527, 2528, 5, 797, 399, 2, 2528, 2529, 5, 797, 399, 2, 2529, 482, 3, 2, 2, 2, 2530, 2531, 5, 797, 399, 2, 2531, 2532, 5, 799, 400, 2, 2532, 484, 3, 2, 2, 2, 2533, 2534, 5, 793, 397, 2, 2534, 2535, 5, 807, 404, 2, 2535, 2536, 5, 769, 385, 2, 2536, 486, 3, 2, 2, 2, 2537, 2538, 5, 801, 401, 2, 2538, 2539, 5, 797, 399, 2, 2539, 2540, 5, 779, 390, 2, 2540, 2541, 5, 787, 394, 2, 2541, 488, 3, 2, 2, 2, 2542, 2543, 5, 799, 400, 2, 2543, 2544, 5, 767, 384, 2, 2544, 2545, 5, 777, 389, 2, 2545, 2546, 5, 771, 386, 2, 2546, 2547, 5, 787, 394, 2, 2547, 2548, 5, 763, 382, 2, 2548, 490, 3, 2, 2, 2, 2549, 2550, 5, 799, 400, 2, 2550, 2551, 5, 771, 386, 2, 2551, 2552, 5, 767, 384, 2, 2552, 2553, 5, 791, 396, 2, 2553, 2554, 5, 789, 395, 2, 2554, 2555, 5, 769, 385, 2, 2555, 492, 3, 2, 2, 2, 2556, 2557, 5, 799, 400, 2, 2557, 2558, 5, 771, 386, 2, 2558, 2559, 5, 767, 384, 2, 2559, 2560, 5, 791, 396, 2, 2560, 2561, 5, 789, 395, 2, 2561, 2562, 5, 769, 385, 2, 2562, 2563, 5, 799, 400, 2, 2563, 494, 3, 2, 2, 2, 2564, 2565, 5, 799, 400, 2, 2565, 2566, 5, 771, 386, 2, 2566, 2567, 5, 767, 384, 2, 2567, 2568, 5, 803, 402, 2, 2568, 2569, 5, 797, 399, 2, 2569, 2570, 5, 779, 390, 2, 2570, 2571, 5, 801, 401, 2, 2571, 2572, 5, 811, 406, 2, 2572, 496, 3, 2, 2, 2, 2573, 2574, 5, 799, 400, 2, 2574, 2575, 5, 771, 386, 2, 2575, 2576, 5, 775, 388, 2, 2576, 2577, 5, 787, 394, 2, 2577, 2578, 5, 771, 386, 2, 2578, 2579, 5, 789, 395, 2, 2579, 2580, 5, 801, 401, 2, 2580, 498, 3, 2, 2, 2, 2581, 2582, 5, 799, 400, 2, 2582, 2583, 5, 771, 386, 2, 2583, 2584, 5, 785, 393, 2, 2584, 500, 3, 2, 2, 2, 2585, 2586, 5, 799, 400, 2, 2586, 2587, 5, 771, 386, 2, 2587, 2588, 5, 785, 393, 2, 2588, 2589, 5, 771, 386, 2, 2589, 2590, 5, 767, 384, 2, 2590, 2591, 5, 801, 401, 2, 2591, 502, 3, 2, 2, 2, 2592, 2593, 5, 799, 400, 2, 2593, 2594, 5, 771, 386, 2, 2594, 2595, 5, 801, 401, 2, 2595, 504, 3, 2, 2, 2, 2596, 2597, 5, 799, 400, 2, 2597, 2598, 5, 771, 386, 2, 2598, 2599, 5, 799, 400, 2, 2599, 2600, 5, 799, 400, 2, 2600, 2601, 5, 779, 390, 2, 2601, 2602, 5, 791, 396, 2, 2602, 2603, 5, 789, 395, 2, 2603, 506, 3, 2, 2, 2, 2604, 2605, 5, 799, 400, 2, 2605, 2606, 5, 771, 386, 2, 2606, 2607, 5, 799, 400, 2, 2607, 2608, 5, 799, 400, 2, 2608, 2609, 5, 779, 390, 2, 2609, 2610, 5, 791, 396, 2, 2610, 2611, 5, 789, 395, 2, 2611, 2612, 5, 799, 400, 2, 2612, 508, 3, 2, 2, 2, 2613, 2614, 5, 799, 400, 2, 2614, 2615, 5, 771, 386, 2, 2615, 2616, 5, 801, 401, 2, 2616, 2617, 5, 799, 400, 2, 2617, 510, 3, 2, 2, 2, 2618, 2619, 5, 799, 400, 2, 2619, 2620, 5, 777, 389, 2, 2620, 2621, 5, 763, 382, 2, 2621, 2622, 5, 797, 399, 2, 2622, 2623, 5, 771, 386, 2, 2623, 512, 3, 2, 2, 2, 2624, 2625, 5, 799, 400, 2, 2625, 2626, 5, 779, 390, 2, 2626, 2627, 5, 775, 388, 2, 2627, 2628, 5, 789, 395, 2, 2628, 2629, 5, 763, 382, 2, 2629, 2630, 5, 785, 393, 2, 2630, 514, 3, 2, 2, 2, 2631, 2632, 5, 799, 400, 2, 2632, 2633, 5, 779, 390, 2, 2633, 2634, 5, 787, 394, 2, 2634, 2635, 5, 793, 397, 2, 2635, 2636, 5, 785, 393, 2, 2636, 2637, 5, 771, 386, 2, 2637, 2638, 7, 97, 2, 2, 2638, 2639, 5, 769, 385, 2, 2639, 2640, 5, 791, 396, 2, 2640, 2641, 5, 803, 402, 2, 2641, 2642, 5, 765, 383, 2, 2642, 2643, 5, 785, 393, 2, 2643, 2644, 5, 771, 386, 2, 2644, 516, 3, 2, 2, 2, 2645, 2646, 5, 799, 400, 2, 2646, 2647, 5, 779, 390, 2, 2647, 2648, 5, 787, 394, 2, 2648, 2649, 5, 793, 397, 2, 2649, 2650, 5, 785, 393, 2, 2650, 2651, 5, 771, 386, 2, 2651, 2652, 7, 97, 2, 2, 2652, 2653, 5, 773, 387, 2, 2653, 2654, 5, 785, 393, 2, 2654, 2655, 5, 791, 396, 2, 2655, 2656, 5, 763, 382, 2, 2656, 2657, 5, 801, 401, 2, 2657, 518, 3, 2, 2, 2, 2658, 2659, 5, 799, 400, 2, 2659, 2660, 5, 779, 390, 2, 2660, 2661, 5, 787, 394, 2, 2661, 2662, 5, 793, 397, 2, 2662, 2663, 5, 785, 393, 2, 2663, 2664, 5, 771, 386, 2, 2664, 2665, 7, 97, 2, 2, 2665, 2666, 5, 779, 390, 2, 2666, 2667, 5, 789, 395, 2, 2667, 2668, 5, 801, 401, 2, 2668, 2669, 5, 771, 386, 2, 2669, 2670, 5, 775, 388, 2, 2670, 2671, 5, 771, 386, 2, 2671, 2672, 5, 797, 399, 2, 2672, 520, 3, 2, 2, 2, 2673, 2674, 5, 799, 400, 2, 2674, 2675, 5, 787, 394, 2, 2675, 2676, 5, 763, 382, 2, 2676, 2677, 5, 785, 393, 2, 2677, 2678, 5, 785, 393, 2, 2678, 2679, 5, 769, 385, 2, 2679, 2680, 5, 763, 382, 2, 2680, 2681, 5, 801, 401, 2, 2681, 2682, 5, 771, 386, 2, 2682, 2683, 5, 801, 401, 2, 2683, 2684, 5, 779, 390, 2, 2684, 2685, 5, 787, 394, 2, 2685, 2686, 5, 771, 386, 2, 2686, 522, 3, 2, 2, 2, 2687, 2688, 5, 799, 400, 2, 2688, 2689, 5, 787, 394, 2, 2689, 2690, 5, 763, 382, 2, 2690, 2691, 5, 785, 393, 2, 2691, 2692, 5, 785, 393, 2, 2692, 2693, 5, 779, 390, 2, 2693, 2694, 5, 789, 395, 2, 2694, 2695, 5, 801, 401, 2, 2695, 524, 3, 2, 2, 2, 2696, 2697, 5, 799, 400, 2, 2697, 2698, 5, 795, 398, 2, 2698, 2699, 5, 785, 393, 2, 2699, 526, 3, 2, 2, 2, 2700, 2701, 5, 799, 400, 2, 2701, 2702, 5, 795, 398, 2, 2702, 2703, 5, 785, 393, 2, 2703, 2704, 5, 771, 386, 2, 2704, 2705, 5, 809, 405, 2, 2705, 2706, 5, 767, 384, 2, 2706, 2707, 5, 771, 386, 2, 2707, 2708, 5, 793, 397, 2, 2708, 2709, 5, 801, 401, 2, 2709, 2710, 5, 779, 390, 2, 2710, 2711, 5, 791, 396, 2, 2711, 2712, 5, 789, 395, 2, 2712, 528, 3, 2, 2, 2, 2713, 2714, 5, 799, 400, 2, 2714, 2715, 5, 795, 398, 2, 2715, 2716, 5, 785, 393, 2, 2716, 2717, 5, 779, 390, 2, 2717, 2718, 5, 789, 395, 2, 2718, 2719, 5, 799, 400, 2, 2719, 2720, 5, 771, 386, 2, 2720, 2721, 5, 797, 399, 2, 2721, 2722, 5, 801, 401, 2, 2722, 530, 3, 2, 2, 2, 2723, 2724, 5, 799, 400, 2, 2724, 2725, 5, 795, 398, 2, 2725, 2726, 5, 785, 393, 2, 2726, 2727, 5, 799, 400, 2, 2727, 2728, 5, 801, 401, 2, 2728, 2729, 5, 763, 382, 2, 2729, 2730, 5, 801, 401, 2, 2730, 2731, 5, 771, 386, 2, 2731, 532, 3, 2, 2, 2, 2732, 2733, 5, 799, 400, 2, 2733, 2734, 5, 795, 398, 2, 2734, 2735, 5, 785, 393, 2, 2735, 2736, 5, 807, 404, 2, 2736, 2737, 5, 763, 382, 2, 2737, 2738, 5, 797, 399, 2, 2738, 2739, 5, 789, 395, 2, 2739, 2740, 5, 779, 390, 2, 2740, 2741, 5, 789, 395, 2, 2741, 2742, 5, 775, 388, 2, 2742, 534, 3, 2, 2, 2, 2743, 2744, 5, 799, 400, 2, 2744, 2745, 5, 801, 401, 2, 2745, 2746, 5, 763, 382, 2, 2746, 2747, 5, 801, 401, 2, 2747, 2748, 5, 799, 400, 2, 2748, 536, 3, 2, 2, 2, 2749, 2750, 5, 799, 400, 2, 2750, 2751, 5, 801, 401, 2, 2751, 2752, 5, 763, 382, 2, 2752, 2753, 5, 801, 401, 2, 2753, 2754, 5, 779, 390, 2, 2754, 2755, 5, 799, 400, 2, 2755, 2756, 5, 801, 401, 2, 2756, 2757, 5, 779, 390, 2, 2757, 2758, 5, 767, 384, 2, 2758, 2759, 5, 799, 400, 2, 2759, 538, 3, 2, 2, 2, 2760, 2761, 5, 799, 400, 2, 2761, 2762, 5, 801, 401, 2, 2762, 2763, 5, 771, 386, 2, 2763, 2764, 5, 793, 397, 2, 2764, 540, 3, 2, 2, 2, 2765, 2766, 5, 799, 400, 2, 2766, 2767, 5, 801, 401, 2, 2767, 2768, 5, 791, 396, 2, 2768, 2769, 5, 797, 399, 2, 2769, 2770, 5, 763, 382, 2, 2770, 2771, 5, 775, 388, 2, 2771, 2772, 5, 771, 386, 2, 2772, 542, 3, 2, 2, 2, 2773, 2774, 5, 799, 400, 2, 2774, 2775, 5, 801, 401, 2, 2775, 2776, 5, 791, 396, 2, 2776, 2777, 5, 797, 399, 2, 2777, 2778, 5, 771, 386, 2, 2778, 2779, 5, 769, 385, 2, 2779, 544, 3, 2, 2, 2, 2780, 2781, 5, 799, 400, 2, 2781, 2782, 5, 801, 401, 2, 2782, 2783, 5, 797, 399, 2, 2783, 2784, 5, 779, 390, 2, 2784, 2785, 5, 789, 395, 2, 2785, 2786, 5, 775, 388, 2, 2786, 546, 3, 2, 2, 2, 2787, 2788, 5, 799, 400, 2, 2788, 2789, 5, 803, 402, 2, 2789, 2790, 5, 765, 383, 2, 2790, 2791, 5, 769, 385, 2, 2791, 2792, 5, 779, 390, 2, 2792, 2793, 5, 797, 399, 2, 2793, 548, 3, 2, 2, 2, 2794, 2795, 5, 799, 400, 2, 2795, 2796, 5, 803, 402, 2, 2796, 2797, 5, 765, 383, 2, 2797, 2798, 5, 799, 400, 2, 2798, 2799, 5, 801, 401, 2, 2799, 2800, 5, 797, 399, 2, 2800, 2801, 5, 779, 390, 2, 2801, 2802, 5, 789, 395, 2, 2802, 2803, 5, 775, 388, 2, 2803, 550, 3, 2, 2, 2, 2804, 2805, 5, 799, 400, 2, 2805, 2806, 5, 803, 402, 2, 2806, 2807, 5, 787, 394, 2, 2807, 552, 3, 2, 2, 2, 2808, 2809, 5, 799, 400, 2, 2809, 2810, 5, 803, 402, 2, 2810, 2811, 5, 787, 394, 2, 2811, 2812, 5, 787, 394, 2, 2812, 2813, 5, 763, 382, 2, 2813, 2814, 5, 797, 399, 2, 2814, 2815, 5, 811, 406, 2, 2815, 554, 3, 2, 2, 2, 2816, 2817, 5, 799, 400, 2, 2817, 2818, 5, 811, 406, 2, 2818, 2819, 5, 799, 400, 2, 2819, 2820, 7, 97, 2, 2, 2820, 2821, 5, 797, 399, 2, 2821, 2822, 5, 771, 386, 2, 2822, 2823, 5, 773, 387, 2, 2823, 2824, 5, 767, 384, 2, 2824, 2825, 5, 803, 402, 2, 2825, 2826, 5, 797, 399, 2, 2826, 2827, 5, 799, 400, 2, 2827, 2828, 5, 791, 396, 2, 2828, 2829, 5, 797, 399, 2, 2829, 556, 3, 2, 2, 2, 2830, 2831, 5, 801, 401, 2, 2831, 2832, 5, 763, 382, 2, 2832, 2833, 5, 765, 383, 2, 2833, 2834, 5, 785, 393, 2, 2834, 2835, 5, 771, 386, 2, 2835, 558, 3, 2, 2, 2, 2836, 2837, 5, 801, 401, 2, 2837, 2838, 5, 763, 382, 2, 2838, 2839, 5, 765, 383, 2, 2839, 2840, 5, 785, 393, 2, 2840, 2841, 5, 771, 386, 2, 2841, 2842, 5, 799, 400, 2, 2842, 2843, 5, 793, 397, 2, 2843, 2844, 5, 763, 382, 2, 2844, 2845, 5, 767, 384, 2, 2845, 2846, 5, 771, 386, 2, 2846, 560, 3, 2, 2, 2, 2847, 2848, 5, 801, 401, 2, 2848, 2849, 5, 771, 386, 2, 2849, 2850, 5, 787, 394, 2, 2850, 2851, 5, 793, 397, 2, 2851, 2852, 5, 791, 396, 2, 2852, 2853, 5, 797, 399, 2, 2853, 2854, 5, 763, 382, 2, 2854, 2855, 5, 797, 399, 2, 2855, 2856, 5, 811, 406, 2, 2856, 562, 3, 2, 2, 2, 2857, 2858, 5, 801, 401, 2, 2858, 2859, 5, 771, 386, 2, 2859, 2860, 5, 797, 399, 2, 2860, 2861, 5, 787, 394, 2, 2861, 2862, 5, 779, 390, 2, 2862, 2863, 5, 789, 395, 2, 2863, 2864, 5, 763, 382, 2, 2864, 2865, 5, 801, 401, 2, 2865, 2866, 5, 771, 386, 2, 2866, 2867, 5, 769, 385, 2, 2867, 564, 3, 2, 2, 2, 2868, 2869, 5, 801, 401, 2, 2869, 2870, 5, 771, 386, 2, 2870, 2871, 5, 809, 405, 2, 2871, 2872, 5, 801, 401, 2, 2872, 2873, 5, 779, 390, 2, 2873, 2874, 5, 787, 394, 2, 2874, 2875, 5, 763, 382, 2, 2875, 2876, 5, 775, 388, 2, 2876, 2877, 5, 771, 386, 2, 2877, 2878, 7, 97, 2, 2, 2878, 2879, 5, 791, 396, 2, 2879, 2880, 5, 789, 395, 2, 2880, 566, 3, 2, 2, 2, 2881, 2882, 5, 801, 401, 2, 2882, 2883, 5, 777, 389, 2, 2883, 2884, 5, 771, 386, 2, 2884, 2885, 5, 789, 395, 2, 2885, 568, 3, 2, 2, 2, 2886, 2887, 5, 801, 401, 2, 2887, 2888, 5, 779, 390, 2, 2888, 2889, 5, 787, 394, 2, 2889, 2890, 5, 771, 386, 2, 2890, 2891, 5, 799, 400, 2, 2891, 2892, 5, 801, 401, 2, 2892, 2893, 5, 763, 382, 2, 2893, 2894, 5, 787, 394, 2, 2894, 2895, 5, 793, 397, 2, 2895, 570, 3, 2, 2, 2, 2896, 2897, 5, 801, 401, 2, 2897, 2898, 5, 779, 390, 2, 2898, 2899, 5, 789, 395, 2, 2899, 2900, 5, 811, 406, 2, 2900, 2901, 5, 779, 390, 2, 2901, 2902, 5, 789, 395, 2, 2902, 2903, 5, 801, 401, 2, 2903, 572, 3, 2, 2, 2, 2904, 2905, 5, 801, 401, 2, 2905, 2906, 5, 779, 390, 2, 2906, 2907, 5, 801, 401, 2, 2907, 2908, 5, 785, 393, 2, 2908, 2909, 5, 771, 386, 2, 2909, 574, 3, 2, 2, 2, 2910, 2911, 5, 801, 401, 2, 2911, 2912, 5, 791, 396, 2, 2912, 576, 3, 2, 2, 2, 2913, 2914, 5, 801, 401, 2, 2914, 2915, 5, 791, 396, 2, 2915, 2916, 5, 793, 397, 2, 2916, 578, 3, 2, 2, 2, 2917, 2918, 5, 801, 401, 2, 2918, 2919, 5, 797, 399, 2, 2919, 2920, 5, 763, 382, 2, 2920, 2921, 5, 789, 395, 2, 2921, 2922, 5, 799, 400, 2, 2922, 2923, 5, 763, 382, 2, 2923, 2924, 5, 767, 384, 2, 2924, 2925, 5, 801, 401, 2, 2925, 2926, 5, 779, 390, 2, 2926, 2927, 5, 791, 396, 2, 2927, 2928, 5, 789, 395, 2, 2928, 580, 3, 2, 2, 2, 2929, 2930, 5, 801, 401, 2, 2930, 2931, 5, 797, 399, 2, 2931, 2932, 5, 803, 402, 2, 2932, 2933, 5, 771, 386, 2, 2933, 582, 3, 2, 2, 2, 2934, 2935, 5, 801, 401, 2, 2935, 2936, 5, 797, 399, 2, 2936, 2937, 5, 803, 402, 2, 2937, 2938, 5, 789, 395, 2, 2938, 2939, 5, 767, 384, 2, 2939, 2940, 5, 763, 382, 2, 2940, 2941, 5, 801, 401, 2, 2941, 2942, 5, 771, 386, 2, 2942, 584, 3, 2, 2, 2, 2943, 2944, 5, 801, 401, 2, 2944, 2945, 5, 811, 406, 2, 2945, 2946, 5, 793, 397, 2, 2946, 2947, 5, 771, 386, 2, 2947, 586, 3, 2, 2, 2, 2948, 2949, 5, 803, 402, 2, 2949, 2950, 5, 789, 395, 2, 2950, 2951, 5, 779, 390, 2, 2951, 2952, 5, 791, 396, 2, 2952, 2953, 5, 789, 395, 2, 2953, 588, 3, 2, 2, 2, 2954, 2955, 5, 803, 402, 2, 2955, 2956, 5, 789, 395, 2, 2956, 2957, 5, 779, 390, 2, 2957, 2958, 5, 795, 398, 2, 2958, 2959, 5, 803, 402, 2, 2959, 2960, 5, 771, 386, 2, 2960, 590, 3, 2, 2, 2, 2961, 2962, 5, 803, 402, 2, 2962, 2963, 5, 793, 397, 2, 2963, 2964, 5, 769, 385, 2, 2964, 2965, 5, 763, 382, 2, 2965, 2966, 5, 801, 401, 2, 2966, 2967, 5, 771, 386, 2, 2967, 592, 3, 2, 2, 2, 2968, 2969, 5, 803, 402, 2, 2969, 2970, 5, 797, 399, 2, 2970, 594, 3, 2, 2, 2, 2971, 2972, 5, 803, 402, 2, 2972, 2973, 5, 799, 400, 2, 2973, 2974, 5, 771, 386, 2, 2974, 596, 3, 2, 2, 2, 2975, 2976, 5, 803, 402, 2, 2976, 2977, 5, 799, 400, 2, 2977, 2978, 5, 779, 390, 2, 2978, 2979, 5, 789, 395, 2, 2979, 2980, 5, 775, 388, 2, 2980, 598, 3, 2, 2, 2, 2981, 2982, 5, 805, 403, 2, 2982, 2983, 5, 763, 382, 2, 2983, 2984, 5, 785, 393, 2, 2984, 2985, 5, 803, 402, 2, 2985, 2986, 5, 771, 386, 2, 2986, 600, 3, 2, 2, 2, 2987, 2988, 5, 805, 403, 2, 2988, 2989, 5, 763, 382, 2, 2989, 2990, 5, 785, 393, 2, 2990, 2991, 5, 803, 402, 2, 2991, 2992, 5, 771, 386, 2, 2992, 2993, 5, 799, 400, 2, 2993, 602, 3, 2, 2, 2, 2994, 2995, 5, 805, 403, 2, 2995, 2996, 5, 763, 382, 2, 2996, 2997, 5, 797, 399, 2, 2997, 604, 3, 2, 2, 2, 2998, 2999, 5, 805, 403, 2, 2999, 3000, 5, 763, 382, 2, 3000, 3001, 5, 797, 399, 2, 3001, 3002, 5, 767, 384, 2, 3002, 3003, 5, 777, 389, 2, 3003, 3004, 5, 763, 382, 2, 3004, 3005, 5, 797, 399, 2, 3005, 606, 3, 2, 2, 2, 3006, 3007, 5, 805, 403, 2, 3007, 3008, 5, 763, 382, 2, 3008, 3009, 5, 797, 399, 2, 3009, 3010, 5, 767, 384, 2, 3010, 3011, 5, 777, 389, 2, 3011, 3012, 5, 763, 382, 2, 3012, 3013, 5, 797, 399, 2, 3013, 3014, 7, 52, 2, 2, 3014, 608, 3, 2, 2, 2, 3015, 3016, 5, 805, 403, 2, 3016, 3017, 5, 763, 382, 2, 3017, 3018, 5, 797, 399, 2, 3018, 3019, 5, 811, 406, 2, 3019, 3020, 5, 779, 390, 2, 3020, 3021, 5, 789, 395, 2, 3021, 3022, 5, 775, 388, 2, 3022, 610, 3, 2, 2, 2, 3023, 3024, 5, 805, 403, 2, 3024, 3025, 5, 791, 396, 2, 3025, 3026, 5, 785, 393, 2, 3026, 3027, 5, 763, 382, 2, 3027, 3028, 5, 801, 401, 2, 3028, 3029, 5, 779, 390, 2, 3029, 3030, 5, 785, 393, 2, 3030, 3031, 5, 771, 386, 2, 3031, 612, 3, 2, 2, 2, 3032, 3033, 5, 807, 404, 2, 3033, 3034, 5, 777, 389, 2, 3034, 3035, 5, 771, 386, 2, 3035, 3036, 5, 789, 395, 2, 3036, 614, 3, 2, 2, 2, 3037, 3038, 5, 807, 404, 2, 3038, 3039, 5, 777, 389, 2, 3039, 3040, 5, 771, 386, 2, 3040, 3041, 5, 797, 399, 2, 3041, 3042, 5, 771, 386, 2, 3042, 616, 3, 2, 2, 2, 3043, 3044, 5, 807, 404, 2, 3044, 3045, 5, 777, 389, 2, 3045, 3046, 5, 779, 390, 2, 3046, 3047, 5, 785, 393, 2, 3047, 3048, 5, 771, 386, 2, 3048, 618, 3, 2, 2, 2, 3049, 3050, 5, 807, 404, 2, 3050, 3051, 5, 779, 390, 2, 3051, 3052, 5, 801, 401, 2, 3052, 3053, 5, 777, 389, 2, 3053, 620, 3, 2, 2, 2, 3054, 3055, 5, 807, 404, 2, 3055, 3056, 5, 779, 390, 2, 3056, 3057, 5, 801, 401, 2, 3057, 3058, 5, 777, 389, 2, 3058, 3059, 5, 791, 396, 2, 3059, 3060, 5, 803, 402, 2, 3060, 3061, 5, 801, 401, 2, 3061, 622, 3, 2, 2, 2, 3062, 3063, 5, 807, 404, 2, 3063, 3064, 5, 791, 396, 2, 3064, 3065, 5, 797, 399, 2, 3065, 3066, 5, 783, 392, 2, 3066, 624, 3, 2, 2, 2, 3067, 3068, 5, 809, 405, 2, 3068, 3069, 5, 763, 382, 2, 3069, 3070, 5, 767, 384, 2, 3070, 3071, 5, 801, 401, 2, 3071, 3072, 7, 97, 2, 2, 3072, 3073, 5, 763, 382, 2, 3073, 3074, 5, 765, 383, 2, 3074, 3075, 5, 791, 396, 2, 3075, 3076, 5, 797, 399, 2, 3076, 3077, 5, 801, 401, 2, 3077, 626, 3, 2, 2, 2, 3078, 3079, 5, 809, 405, 2, 3079, 3080, 5, 787, 394, 2, 3080, 3081, 5, 785, 393, 2, 3081, 628, 3, 2, 2, 2, 3082, 3083, 5, 811, 406, 2, 3083, 3084, 5, 771, 386, 2, 3084, 3085, 5, 799, 400, 2, 3085, 630, 3, 2, 2, 2, 3086, 3087, 5, 763, 382, 2, 3087, 3088, 5, 767, 384, 2, 3088, 3089, 5, 801, 401, 2, 3089, 3090, 5, 779, 390, 2, 3090, 3091, 5, 805, 403, 2, 3091, 3092, 5, 779, 390, 2, 3092, 3093, 5, 801, 401, 2, 3093, 3094, 5, 811, 406, 2, 3094, 3095, 7, 97, 2, 2, 3095, 3096, 5, 767, 384, 2, 3096, 3097, 5, 791, 396, 2, 3097, 3098, 5, 803, 402, 2, 3098, 3099, 5, 789, 395, 2, 3099, 3100, 5, 801, 401, 2, 3100, 632, 3, 2, 2, 2, 3101, 3102, 5, 767, 384, 2, 3102, 3103, 5, 803, 402, 2, 3103, 3104, 5, 787, 394, 2, 3104, 3105, 5, 771, 386, 2, 3105, 3106, 7, 97, 2, 2, 3106, 3107, 5, 769, 385, 2, 3107, 3108, 5, 779, 390, 2, 3108, 3109, 5, 799, 400, 2, 3109, 3110, 5, 801, 401, 2, 3110, 634, 3, 2, 2, 2, 3111, 3112, 5, 767, 384, 2, 3112, 3113, 5, 803, 402, 2, 3113, 3114, 5, 797, 399, 2, 3114, 3115, 5, 797, 399, 2, 3115, 3116, 5, 771, 386, 2, 3116, 3117, 5, 789, 395, 2, 3117, 3118, 5, 801, 401, 2, 3118, 3119, 7, 97, 2, 2, 3119, 3120, 5, 769, 385, 2, 3120, 3121, 5, 763, 382, 2, 3121, 3122, 5, 801, 401, 2, 3122, 3123, 5, 771, 386, 2, 3123, 636, 3, 2, 2, 2, 3124, 3125, 5, 767, 384, 2, 3125, 3126, 5, 803, 402, 2, 3126, 3127, 5, 797, 399, 2, 3127, 3128, 5, 797, 399, 2, 3128, 3129, 5, 771, 386, 2, 3129, 3130, 5, 789, 395, 2, 3130, 3131, 5, 801, 401, 2, 3131, 3132, 7, 97, 2, 2, 3132, 3133, 5, 801, 401, 2, 3133, 3134, 5, 779, 390, 2, 3134, 3135, 5, 787, 394, 2, 3135, 3136, 5, 771, 386, 2, 3136, 3137, 5, 799, 400, 2, 3137, 3138, 5, 801, 401, 2, 3138, 3139, 5, 763, 382, 2, 3139, 3140, 5, 787, 394, 2, 3140, 3141, 5, 793, 397, 2, 3141, 638, 3, 2, 2, 2, 3142, 3143, 5, 767, 384, 2, 3143, 3144, 5, 803, 402, 2, 3144, 3145, 5, 797, 399, 2, 3145, 3146, 5, 797, 399, 2, 3146, 3147, 5, 771, 386, 2, 3147, 3148, 5, 789, 395, 2, 3148, 3149, 5, 801, 401, 2, 3149, 3150, 7, 97, 2, 2, 3150, 3151, 5, 803, 402, 2, 3151, 3152, 5, 799, 400, 2, 3152, 3153, 5, 771, 386, 2, 3153, 3154, 5, 797, 399, 2, 3154, 640, 3, 2, 2, 2, 3155, 3156, 5, 769, 385, 2, 3156, 3157, 5, 771, 386, 2, 3157, 3158, 5, 789, 395, 2, 3158, 3159, 5, 799, 400, 2, 3159, 3160, 5, 771, 386, 2, 3160, 3161, 7, 97, 2, 2, 3161, 3162, 5, 797, 399, 2, 3162, 3163, 5, 763, 382, 2, 3163, 3164, 5, 789, 395, 2, 3164, 3165, 5, 783, 392, 2, 3165, 642, 3, 2, 2, 2, 3166, 3167, 5, 773, 387, 2, 3167, 3168, 5, 779, 390, 2, 3168, 3169, 5, 797, 399, 2, 3169, 3170, 5, 799, 400, 2, 3170, 3171, 5, 801, 401, 2, 3171, 3172, 7, 97, 2, 2, 3172, 3173, 5, 805, 403, 2, 3173, 3174, 5, 763, 382, 2, 3174, 3175, 5, 785, 393, 2, 3175, 3176, 5, 803, 402, 2, 3176, 3177, 5, 771, 386, 2, 3177, 644, 3, 2, 2, 2, 3178, 3179, 5, 785, 393, 2, 3179, 3180, 5, 763, 382, 2, 3180, 3181, 5, 775, 388, 2, 3181, 646, 3, 2, 2, 2, 3182, 3183, 5, 785, 393, 2, 3183, 3184, 5, 763, 382, 2, 3184, 3185, 5, 799, 400, 2, 3185, 3186, 5, 801, 401, 2, 3186, 3187, 7, 97, 2, 2, 3187, 3188, 5, 805, 403, 2, 3188, 3189, 5, 763, 382, 2, 3189, 3190, 5, 785, 393, 2, 3190, 3191, 5, 803, 402, 2, 3191, 3192, 5, 771, 386, 2, 3192, 648, 3, 2, 2, 2, 3193, 3194, 5, 785, 393, 2, 3194, 3195, 5, 771, 386, 2, 3195, 3196, 5, 763, 382, 2, 3196, 3197, 5, 769, 385, 2, 3197, 650, 3, 2, 2, 2, 3198, 3199, 5, 787, 394, 2, 3199, 3200, 5, 763, 382, 2, 3200, 3201, 5, 809, 405, 2, 3201, 3202, 7, 97, 2, 2, 3202, 3203, 5, 793, 397, 2, 3203, 3204, 5, 763, 382, 2, 3204, 3205, 5, 797, 399, 2, 3205, 3206, 5, 801, 401, 2, 3206, 3207, 7, 97, 2, 2, 3207, 3208, 5, 799, 400, 2, 3208, 3209, 5, 801, 401, 2, 3209, 3210, 5, 797, 399, 2, 3210, 3211, 5, 779, 390, 2, 3211, 3212, 5, 789, 395, 2, 3212, 3213, 5, 775, 388, 2, 3213, 652, 3, 2, 2, 2, 3214, 3215, 5, 787, 394, 2, 3215, 3216, 5, 779, 390, 2, 3216, 3217, 5, 789, 395, 2, 3217, 3218, 7, 97, 2, 2, 3218, 3219, 5, 793, 397, 2, 3219, 3220, 5, 763, 382, 2, 3220, 3221, 5, 797, 399, 2, 3221, 3222, 5, 801, 401, 2, 3222, 3223, 7, 97, 2, 2, 3223, 3224, 5, 799, 400, 2, 3224, 3225, 5, 801, 401, 2, 3225, 3226, 5, 797, 399, 2, 3226, 3227, 5, 779, 390, 2, 3227, 3228, 5, 789, 395, 2, 3228, 3229, 5, 775, 388, 2, 3229, 654, 3, 2, 2, 2, 3230, 3231, 5, 787, 394, 2, 3231, 3232, 5, 763, 382, 2, 3232, 3233, 5, 809, 405, 2, 3233, 3234, 7, 97, 2, 2, 3234, 3235, 5, 793, 397, 2, 3235, 3236, 5, 763, 382, 2, 3236, 3237, 5, 797, 399, 2, 3237, 3238, 5, 801, 401, 2, 3238, 3239, 7, 97, 2, 2, 3239, 3240, 5, 779, 390, 2, 3240, 3241, 5, 789, 395, 2, 3241, 3242, 5, 801, 401, 2, 3242, 656, 3, 2, 2, 2, 3243, 3244, 5, 787, 394, 2, 3244, 3245, 5, 779, 390, 2, 3245, 3246, 5, 789, 395, 2, 3246, 3247, 7, 97, 2, 2, 3247, 3248, 5, 793, 397, 2, 3248, 3249, 5, 763, 382, 2, 3249, 3250, 5, 797, 399, 2, 3250, 3251, 5, 801, 401, 2, 3251, 3252, 7, 97, 2, 2, 3252, 3253, 5, 779, 390, 2, 3253, 3254, 5, 789, 395, 2, 3254, 3255, 5, 801, 401, 2, 3255, 658, 3, 2, 2, 2, 3256, 3257, 5, 787, 394, 2, 3257, 3258, 5, 763, 382, 2, 3258, 3259, 5, 809, 405, 2, 3259, 3260, 7, 97, 2, 2, 3260, 3261, 5, 793, 397, 2, 3261, 3262, 5, 763, 382, 2, 3262, 3263, 5, 797, 399, 2, 3263, 3264, 5, 801, 401, 2, 3264, 3265, 7, 97, 2, 2, 3265, 3266, 5, 769, 385, 2, 3266, 3267, 5, 763, 382, 2, 3267, 3268, 5, 801, 401, 2, 3268, 3269, 5, 771, 386, 2, 3269, 660, 3, 2, 2, 2, 3270, 3271, 5, 787, 394, 2, 3271, 3272, 5, 779, 390, 2, 3272, 3273, 5, 789, 395, 2, 3273, 3274, 7, 97, 2, 2, 3274, 3275, 5, 793, 397, 2, 3275, 3276, 5, 763, 382, 2, 3276, 3277, 5, 797, 399, 2, 3277, 3278, 5, 801, 401, 2, 3278, 3279, 7, 97, 2, 2, 3279, 3280, 5, 769, 385, 2, 3280, 3281, 5, 763, 382, 2, 3281, 3282, 5, 801, 401, 2, 3282, 3283, 5, 771, 386, 2, 3283, 662, 3, 2, 2, 2, 3284, 3285, 5, 793, 397, 2, 3285, 3286, 5, 763, 382, 2, 3286, 3287, 5, 797, 399, 2, 3287, 3288, 5, 801, 401, 2, 3288, 3289, 7, 97, 2, 2, 3289, 3290, 5, 767, 384, 2, 3290, 3291, 5, 791, 396, 2, 3291, 3292, 5, 803, 402, 2, 3292, 3293, 5, 789, 395, 2, 3293, 3294, 5, 801, 401, 2, 3294, 664, 3, 2, 2, 2, 3295, 3296, 5, 793, 397, 2, 3296, 3297, 5, 763, 382, 2, 3297, 3298, 5, 797, 399, 2, 3298, 3299, 5, 801, 401, 2, 3299, 3300, 7, 97, 2, 2, 3300, 3301, 5, 785, 393, 2, 3301, 3302, 5, 791, 396, 2, 3302, 3303, 5, 767, 384, 2, 3303, 666, 3, 2, 2, 2, 3304, 3305, 5, 797, 399, 2, 3305, 3306, 5, 763, 382, 2, 3306, 3307, 5, 789, 395, 2, 3307, 3308, 5, 783, 392, 2, 3308, 668, 3, 2, 2, 2, 3309, 3310, 5, 797, 399, 2, 3310, 3311, 5, 791, 396, 2, 3311, 3312, 5, 807, 404, 2, 3312, 3313, 7, 97, 2, 2, 3313, 3314, 5, 789, 395, 2, 3314, 3315, 5, 803, 402, 2, 3315, 3316, 5, 787, 394, 2, 3316, 3317, 5, 765, 383, 2, 3317, 3318, 5, 771, 386, 2, 3318, 3319, 5, 797, 399, 2, 3319, 670, 3, 2, 2, 2, 3320, 3321, 5, 799, 400, 2, 3321, 3322, 5, 801, 401, 2, 3322, 3323, 5, 769, 385, 2, 3323, 3324, 5, 771, 386, 2, 3324, 3325, 5, 805, 403, 2, 3325, 672, 3, 2, 2, 2, 3326, 3327, 5, 799, 400, 2, 3327, 3328, 5, 811, 406, 2, 3328, 3329, 5, 799, 400, 2, 3329, 3330, 5, 769, 385, 2, 3330, 3331, 5, 763, 382, 2, 3331, 3332, 5, 801, 401, 2, 3332, 3333, 5, 771, 386, 2, 3333, 674, 3, 2, 2, 2, 3334, 3335, 5, 805, 403, 2, 3335, 3336, 5, 763, 382, 2, 3336, 3337, 5, 797, 399, 2, 3337, 3338, 5, 779, 390, 2, 3338, 3339, 5, 763, 382, 2, 3339, 3340, 5, 789, 395, 2, 3340, 3341, 5, 767, 384, 2, 3341, 3342, 5, 771, 386, 2, 3342, 676, 3, 2, 2, 2, 3343, 3344, 5, 803, 402, 2, 3344, 3345, 5, 799, 400, 2, 3345, 3346, 5, 771, 386, 2, 3346, 3347, 5, 797, 399, 2, 3347, 678, 3, 2, 2, 2, 3348, 3349, 7, 45, 2, 2, 3349, 680, 3, 2, 2, 2, 3350, 3351, 7, 60, 2, 2, 3351, 682, 3, 2, 2, 2, 3352, 3353, 7, 46, 2, 2, 3353, 684, 3, 2, 2, 2, 3354, 3355, 7, 126, 2, 2, 3355, 3356, 7, 126, 2, 2, 3356, 686, 3, 2, 2, 2, 3357, 3358, 7, 49, 2, 2, 3358, 688, 3, 2, 2, 2, 3359, 3360, 7, 48, 2, 2, 3360, 690, 3, 2, 2, 2, 3361, 3362, 7, 48, 2, 2, 3362, 3363, 7, 48, 2, 2, 3363, 692, 3, 2, 2, 2, 3364, 3365, 7, 63, 2, 2, 3365, 694, 3, 2, 2, 2, 3366, 3367, 7, 63, 2, 2, 3367, 3368, 7, 63, 2, 2, 3368, 696, 3, 2, 2, 2, 3369, 3370, 7, 37, 2, 2, 3370, 698, 3, 2, 2, 2, 3371, 3372, 7, 35, 2, 2, 3372, 700, 3, 2, 2, 2, 3373, 3374, 7, 62, 2, 2, 3374, 3375, 7, 64, 2, 2, 3375, 702, 3, 2, 2, 2, 3376, 3377, 7, 35, 2, 2, 3377, 3378, 7, 63, 2, 2, 3378, 704, 3, 2, 2, 2, 3379, 3380, 7, 64, 2, 2, 3380, 706, 3, 2, 2, 2, 3381, 3382, 7, 64, 2, 2, 3382, 3383, 7, 63, 2, 2, 3383, 708, 3, 2, 2, 2, 3384, 3385, 7, 62, 2, 2, 3385, 710, 3, 2, 2, 2, 3386, 3387, 7, 62, 2, 2, 3387, 3388, 7, 63, 2, 2, 3388, 712, 3, 2, 2, 2, 3389, 3390, 7, 44, 2, 2, 3390, 714, 3, 2, 2, 2, 3391, 3392, 7, 39, 2, 2, 3392, 716, 3, 2, 2, 2, 3393, 3394, 7, 66, 2, 2, 3394, 718, 3, 2, 2, 2, 3395, 3396, 7, 125, 2, 2, 3396, 720, 3, 2, 2, 2, 3397, 3398, 7, 42, 2, 2, 3398, 722, 3, 2, 2, 2, 3399, 3400, 7, 93, 2, 2, 3400, 724, 3, 2, 2, 2, 3401, 3402, 7, 127, 2, 2, 3402, 726, 3, 2, 2, 2, 3403, 3404, 7, 43, 2, 2, 3404, 728, 3, 2, 2, 2, 3405, 3406, 7, 95, 2, 2, 3406, 730, 3, 2, 2, 2, 3407, 3408, 7, 61, 2, 2, 3408, 732, 3, 2, 2, 2, 3409, 3410, 7, 47, 2, 2, 3410, 734, 3, 2, 2, 2, 3411, 3412, 5, 755, 378, 2, 3412, 736, 3, 2, 2, 2, 3413, 3421, 7, 41, 2, 2, 3414, 3415, 7, 41, 2, 2, 3415, 3420, 7, 41, 2, 2, 3416, 3417, 7, 94, 2, 2, 3417, 3420, 7, 41, 2, 2, 3418, 3420, 10, 2, 2, 2, 3419, 3414, 3, 2, 2, 2, 3419, 3416, 3, 2, 2, 2, 3419, 3418, 3, 2, 2, 2, 3420, 3423, 3, 2, 2, 2, 3421, 3419, 3, 2, 2, 2, 3421, 3422, 3, 2, 2, 2, 3422, 3424, 3, 2, 2, 2, 3423, 3421, 3, 2, 2, 2, 3424, 3425, 7, 41, 2, 2, 3425, 738, 3, 2, 2, 2, 3426, 3431, 7, 36, 2, 2, 3427, 3430, 5, 757, 379, 2, 3428, 3430, 11, 2, 2, 2, 3429, 3427, 3, 2, 2, 2, 3429, 3428, 3, 2, 2, 2, 3430, 3433, 3, 2, 2, 2, 3431, 3432, 3, 2, 2, 2, 3431, 3429, 3, 2, 2, 2, 3432, 3434, 3, 2, 2, 2, 3433, 3431, 3, 2, 2, 2, 3434, 3435, 7, 36, 2, 2, 3435, 740, 3, 2, 2, 2, 3436, 3438, 5, 759, 380, 2, 3437, 3436, 3, 2, 2, 2, 3438, 3439, 3, 2, 2, 2, 3439, 3437, 3, 2, 2, 2, 3439, 3440, 3, 2, 2, 2, 3440, 742, 3, 2, 2, 2, 3441, 3443, 5, 759, 380, 2, 3442, 3441, 3, 2, 2, 2, 3443, 3444, 3, 2, 2, 2, 3444, 3442, 3, 2, 2, 2, 3444, 3445, 3, 2, 2, 2, 3445, 3446, 3, 2, 2, 2, 3446, 3447, 7, 48, 2, 2, 3447, 3451, 10, 3, 2, 2, 3448, 3450, 5, 759, 380, 2, 3449, 3448, 3, 2, 2, 2, 3450, 3453, 3, 2, 2, 2, 3451, 3449, 3, 2, 2, 2, 3451, 3452, 3, 2, 2, 2, 3452, 3461, 3, 2, 2, 2, 3453, 3451, 3, 2, 2, 2, 3454, 3456, 7, 48, 2, 2, 3455, 3457, 5, 759, 380, 2, 3456, 3455, 3, 2, 2, 2, 3457, 3458, 3, 2, 2, 2, 3458, 3456, 3, 2, 2, 2, 3458, 3459, 3, 2, 2, 2, 3459, 3461, 3, 2, 2, 2, 3460, 3442, 3, 2, 2, 2, 3460, 3454, 3, 2, 2, 2, 3461, 744, 3, 2, 2, 2, 3462, 3464, 5, 761, 381, 2, 3463, 3462, 3, 2, 2, 2, 3464, 3465, 3, 2, 2, 2, 3465, 3463, 3, 2, 2, 2, 3465, 3466, 3, 2, 2, 2, 3466, 3467, 3, 2, 2, 2, 3467, 3468, 8, 373, 2, 2, 3468, 746, 3, 2, 2, 2, 3469, 3470, 7, 49, 2, 2, 3470, 3471, 7, 44, 2, 2, 3471, 3475, 3, 2, 2, 2, 3472, 3474, 11, 2, 2, 2, 3473, 3472, 3, 2, 2, 2, 3474, 3477, 3, 2, 2, 2, 3475, 3476, 3, 2, 2, 2, 3475, 3473, 3, 2, 2, 2, 3476, 3478, 3, 2, 2, 2, 3477, 3475, 3, 2, 2, 2, 3478, 3479, 7, 44, 2, 2, 3479, 3480, 7, 49, 2, 2, 3480, 3481, 3, 2, 2, 2, 3481, 3482, 8, 374, 3, 2, 3482, 748, 3, 2, 2, 2, 3483, 3484, 7, 47, 2, 2, 3484, 3488, 7, 47, 2, 2, 3485, 3486, 7, 49, 2, 2, 3486, 3488, 7, 49, 2, 2, 3487, 3483, 3, 2, 2, 2, 3487, 3485, 3, 2, 2, 2, 3488, 3492, 3, 2, 2, 2, 3489, 3491, 11, 2, 2, 2, 3490, 3489, 3, 2, 2, 2, 3491, 3494, 3, 2, 2, 2, 3492, 3493, 3, 2, 2, 2, 3492, 3490, 3, 2, 2, 2, 3493, 3496, 3, 2, 2, 2, 3494, 3492, 3, 2, 2, 2, 3495, 3497, 7, 15, 2, 2, 3496, 3495, 3, 2, 2, 2, 3496, 3497, 3, 2, 2, 2, 3497, 3498, 3, 2, 2, 2, 3498, 3499, 7, 12, 2, 2, 3499, 3500, 3, 2, 2, 2, 3500, 3501, 8, 375, 3, 2, 3501, 750, 3, 2, 2, 2, 3502, 3503, 9, 4, 2, 2, 3503, 3505, 7, 60, 2, 2, 3504, 3506, 7, 94, 2, 2, 3505, 3504, 3, 2, 2, 2, 3505, 3506, 3, 2, 2, 2, 3506, 3508, 3, 2, 2, 2, 3507, 3502, 3, 2, 2, 2, 3507, 3508, 3, 2, 2, 2, 3508, 3509, 3, 2, 2, 2, 3509, 3514, 5, 735, 368, 2, 3510, 3511, 7, 94, 2, 2, 3511, 3513, 5, 735, 368, 2, 3512, 3510, 3, 2, 2, 2, 3513, 3516, 3, 2, 2, 2, 3514, 3512, 3, 2, 2, 2, 3514, 3515, 3, 2, 2, 2, 3515, 752, 3, 2, 2, 2, 3516, 3514, 3, 2, 2, 2, 3517, 3521, 9, 4, 2, 2, 3518, 3521, 5, 759, 380, 2, 3519, 3521, 7, 97, 2, 2, 3520, 3517, 3, 2, 2, 2, 3520, 3518, 3, 2, 2, 2, 3520, 3519, 3, 2, 2, 2, 3521, 3524, 3, 2, 2, 2, 3522, 3520, 3, 2, 2, 2, 3522, 3523, 3, 2, 2, 2, 3523, 3525, 3, 2, 2, 2, 3524, 3522, 3, 2, 2, 2, 3525, 3526, 7, 60, 2, 2, 3526, 754, 3, 2, 2, 2, 3527, 3533, 9, 4, 2, 2, 3528, 3532, 9, 4, 2, 2, 3529, 3532, 5, 759, 380, 2, 3530, 3532, 7, 97, 2, 2, 3531, 3528, 3, 2, 2, 2, 3531, 3529, 3, 2, 2, 2, 3531, 3530, 3, 2, 2, 2, 3532, 3535, 3, 2, 2, 2, 3533, 3531, 3, 2, 2, 2, 3533, 3534, 3, 2, 2, 2, 3534, 3578, 3, 2, 2, 2, 3535, 3533, 3, 2, 2, 2, 3536, 3537, 7, 38, 2, 2, 3537, 3541, 7, 125, 2, 2, 3538, 3540, 11, 2, 2, 2, 3539, 3538, 3, 2, 2, 2, 3540, 3543, 3, 2, 2, 2, 3541, 3542, 3, 2, 2, 2, 3541, 3539, 3, 2, 2, 2, 3542, 3544, 3, 2, 2, 2, 3543, 3541, 3, 2, 2, 2, 3544, 3578, 7, 127, 2, 2, 3545, 3549, 9, 5, 2, 2, 3546, 3550, 9, 4, 2, 2, 3547, 3550, 5, 759, 380, 2, 3548, 3550, 9, 5, 2, 2, 3549, 3546, 3, 2, 2, 2, 3549, 3547, 3, 2, 2, 2, 3549, 3548, 3, 2, 2, 2, 3550, 3551, 3, 2, 2, 2, 3551, 3549, 3, 2, 2, 2, 3551, 3552, 3, 2, 2, 2, 3552, 3578, 3, 2, 2, 2, 3553, 3557, 7, 36, 2, 2, 3554, 3556, 11, 2, 2, 2, 3555, 3554, 3, 2, 2, 2, 3556, 3559, 3, 2, 2, 2, 3557, 3558, 3, 2, 2, 2, 3557, 3555, 3, 2, 2, 2, 3558, 3560, 3, 2, 2, 2, 3559, 3557, 3, 2, 2, 2, 3560, 3578, 7, 36, 2, 2, 3561, 3565, 7, 93, 2, 2, 3562, 3564, 11, 2, 2, 2, 3563, 3562, 3, 2, 2, 2, 3564, 3567, 3, 2, 2, 2, 3565, 3566, 3, 2, 2, 2, 3565, 3563, 3, 2, 2, 2, 3566, 3568, 3, 2, 2, 2, 3567, 3565, 3, 2, 2, 2, 3568, 3578, 7, 95, 2, 2, 3569, 3573, 7, 98, 2, 2, 3570, 3572, 11, 2, 2, 2, 3571, 3570, 3, 2, 2, 2, 3572, 3575, 3, 2, 2, 2, 3573, 3574, 3, 2, 2, 2, 3573, 3571, 3, 2, 2, 2, 3574, 3576, 3, 2, 2, 2, 3575, 3573, 3, 2, 2, 2, 3576, 3578, 7, 98, 2, 2, 3577, 3527, 3, 2, 2, 2, 3577, 3536, 3, 2, 2, 2, 3577, 3545, 3, 2, 2, 2, 3577, 3553, 3, 2, 2, 2, 3577, 3561, 3, 2, 2, 2, 3577, 3569, 3, 2, 2, 2, 3578, 756, 3, 2, 2, 2, 3579, 3580, 7, 36, 2, 2, 3580, 3584, 7, 36, 2, 2, 3581, 3582, 7, 94, 2, 2, 3582, 3584, 7, 36, 2, 2, 3583, 3579, 3, 2, 2, 2, 3583, 3581, 3, 2, 2, 2, 3584, 758, 3, 2, 2, 2, 3585, 3586, 9, 6, 2, 2, 3586, 760, 3, 2, 2, 2, 3587, 3588, 9, 7, 2, 2, 3588, 762, 3, 2, 2, 2, 3589, 3590, 9, 8, 2, 2, 3590, 764, 3, 2, 2, 2, 3591, 3592, 9, 9, 2, 2, 3592, 766, 3, 2, 2, 2, 3593, 3594, 9, 10, 2, 2, 3594, 768, 3, 2, 2, 2, 3595, 3596, 9, 11, 2, 2, 3596, 770, 3, 2, 2, 2, 3597, 3598, 9, 12, 2, 2, 3598, 772, 3, 2, 2, 2, 3599, 3600, 9, 13, 2, 2, 3600, 774, 3, 2, 2, 2, 3601, 3602, 9, 14, 2, 2, 3602, 776, 3, 2, 2, 2, 3603, 3604, 9, 15, 2, 2, 3604, 778, 3, 2, 2, 2, 3605, 3606, 9, 16, 2, 2, 3606, 780, 3, 2, 2, 2, 3607, 3608, 9, 17, 2, 2, 3608, 782, 3, 2, 2, 2, 3609, 3610, 9, 18, 2, 2, 3610, 784, 3, 2, 2, 2, 3611, 3612, 9, 19, 2, 2, 3612, 786, 3, 2, 2, 2, 3613, 3614, 9, 20, 2, 2, 3614, 788, 3, 2, 2, 2, 3615, 3616, 9, 21, 2, 2, 3616, 790, 3, 2, 2, 2, 3617, 3618, 9, 22, 2, 2, 3618, 792, 3, 2, 2, 2, 3619, 3620, 9, 23, 2, 2, 3620, 794, 3, 2, 2, 2, 3621, 3622, 9, 24, 2, 2, 3622, 796, 3, 2, 2, 2, 3623, 3624, 9, 25, 2, 2, 3624, 798, 3, 2, 2, 2, 3625, 3626, 9, 26, 2, 2, 3626, 800, 3, 2, 2, 2, 3627, 3628, 9, 27, 2, 2, 3628, 802, 3, 2, 2, 2, 3629, 3630, 9, 28, 2, 2, 3630, 804, 3, 2, 2, 2, 3631, 3632, 9, 29, 2, 2, 3632, 806, 3, 2, 2, 2, 3633, 3634, 9, 30, 2, 2, 3634, 808, 3, 2, 2, 2, 3635, 3636, 9, 31, 2, 2, 3636, 810, 3, 2, 2, 2, 3637, 3638, 9, 32, 2, 2, 3638, 812, 3, 2, 2, 2, 3639, 3640, 9, 33, 2, 2, 3640, 814, 3, 2, 2, 2, 32, 2, 3419, 3421, 3429, 3431, 3439, 3444, 3451, 3458, 3460, 3465, 3475, 3487, 3492, 3496, 3505, 3507, 3514, 3520, 3522, 3531, 3533, 3541, 3549, 3551, 3557, 3565, 3573, 3577, 3583, 4, 8, 2, 2, 2, 3, 2] \ No newline at end of file diff --git a/src/lib/hive/HiveSqlLexer.js b/src/lib/hive/HiveSqlLexer.js index 748797c..8a84c74 100644 --- a/src/lib/hive/HiveSqlLexer.js +++ b/src/lib/hive/HiveSqlLexer.js @@ -1,37 +1,2424 @@ -// Generated from /Users/ziv/Workspace/dt-sql-parser/src/grammar/hive/HiveSql.g4 by ANTLR 4.8 +// Generated from /Users/libowen/Desktop/Code/gitlab.prod.dtstack.cn/dt-insight-front/infrastructure/dt-sql-parser/src/grammar/hive/HiveSqlLexer.g4 by ANTLR 4.8 // jshint ignore: start var antlr4 = require('antlr4/index'); var serializedATN = ["\u0003\u608b\ua72a\u8133\ub9ed\u417c\u3be7\u7786\u5964", - "\u0002\f+\b\u0001\u0004\u0002\t\u0002\u0004\u0003\t\u0003\u0004\u0004", - "\t\u0004\u0004\u0005\t\u0005\u0004\u0006\t\u0006\u0004\u0007\t\u0007", - "\u0004\b\t\b\u0004\t\t\t\u0004\n\t\n\u0004\u000b\t\u000b\u0003\u0002", - "\u0003\u0002\u0003\u0003\u0003\u0003\u0003\u0004\u0003\u0004\u0003\u0005", - "\u0003\u0005\u0003\u0006\u0003\u0006\u0003\u0007\u0003\u0007\u0003\b", - "\u0003\b\u0003\t\u0003\t\u0003\n\u0003\n\u0003\u000b\u0003\u000b\u0002", - "\u0002\f\u0003\u0003\u0005\u0004\u0007\u0005\t\u0006\u000b\u0007\r\b", - "\u000f\t\u0011\n\u0013\u000b\u0015\f\u0003\u0002\u0002\u0002*\u0002", - "\u0003\u0003\u0002\u0002\u0002\u0002\u0005\u0003\u0002\u0002\u0002\u0002", - "\u0007\u0003\u0002\u0002\u0002\u0002\t\u0003\u0002\u0002\u0002\u0002", - "\u000b\u0003\u0002\u0002\u0002\u0002\r\u0003\u0002\u0002\u0002\u0002", - "\u000f\u0003\u0002\u0002\u0002\u0002\u0011\u0003\u0002\u0002\u0002\u0002", - "\u0013\u0003\u0002\u0002\u0002\u0002\u0015\u0003\u0002\u0002\u0002\u0003", - "\u0017\u0003\u0002\u0002\u0002\u0005\u0019\u0003\u0002\u0002\u0002\u0007", - "\u001b\u0003\u0002\u0002\u0002\t\u001d\u0003\u0002\u0002\u0002\u000b", - "\u001f\u0003\u0002\u0002\u0002\r!\u0003\u0002\u0002\u0002\u000f#\u0003", - "\u0002\u0002\u0002\u0011%\u0003\u0002\u0002\u0002\u0013\'\u0003\u0002", - "\u0002\u0002\u0015)\u0003\u0002\u0002\u0002\u0017\u0018\u0007B\u0002", - "\u0002\u0018\u0004\u0003\u0002\u0002\u0002\u0019\u001a\u0007%\u0002", - "\u0002\u001a\u0006\u0003\u0002\u0002\u0002\u001b\u001c\u00071\u0002", - "\u0002\u001c\b\u0003\u0002\u0002\u0002\u001d\u001e\u0007\'\u0002\u0002", - "\u001e\n\u0003\u0002\u0002\u0002\u001f \u00070\u0002\u0002 \f\u0003", - "\u0002\u0002\u0002!\"\u0007,\u0002\u0002\"\u000e\u0003\u0002\u0002\u0002", - "#$\u0007#\u0002\u0002$\u0010\u0003\u0002\u0002\u0002%&\u0007=\u0002", - "\u0002&\u0012\u0003\u0002\u0002\u0002\'(\u0007/\u0002\u0002(\u0014\u0003", - "\u0002\u0002\u0002)*\u0007-\u0002\u0002*\u0016\u0003\u0002\u0002\u0002", - "\u0003\u0002\u0002"].join(""); + "\u0002\u017a\u0e39\b\u0001\u0004\u0002\t\u0002\u0004\u0003\t\u0003\u0004", + "\u0004\t\u0004\u0004\u0005\t\u0005\u0004\u0006\t\u0006\u0004\u0007\t", + "\u0007\u0004\b\t\b\u0004\t\t\t\u0004\n\t\n\u0004\u000b\t\u000b\u0004", + "\f\t\f\u0004\r\t\r\u0004\u000e\t\u000e\u0004\u000f\t\u000f\u0004\u0010", + "\t\u0010\u0004\u0011\t\u0011\u0004\u0012\t\u0012\u0004\u0013\t\u0013", + "\u0004\u0014\t\u0014\u0004\u0015\t\u0015\u0004\u0016\t\u0016\u0004\u0017", + "\t\u0017\u0004\u0018\t\u0018\u0004\u0019\t\u0019\u0004\u001a\t\u001a", + "\u0004\u001b\t\u001b\u0004\u001c\t\u001c\u0004\u001d\t\u001d\u0004\u001e", + "\t\u001e\u0004\u001f\t\u001f\u0004 \t \u0004!\t!\u0004\"\t\"\u0004#", + "\t#\u0004$\t$\u0004%\t%\u0004&\t&\u0004\'\t\'\u0004(\t(\u0004)\t)\u0004", + "*\t*\u0004+\t+\u0004,\t,\u0004-\t-\u0004.\t.\u0004/\t/\u00040\t0\u0004", + "1\t1\u00042\t2\u00043\t3\u00044\t4\u00045\t5\u00046\t6\u00047\t7\u0004", + "8\t8\u00049\t9\u0004:\t:\u0004;\t;\u0004<\t<\u0004=\t=\u0004>\t>\u0004", + "?\t?\u0004@\t@\u0004A\tA\u0004B\tB\u0004C\tC\u0004D\tD\u0004E\tE\u0004", + "F\tF\u0004G\tG\u0004H\tH\u0004I\tI\u0004J\tJ\u0004K\tK\u0004L\tL\u0004", + "M\tM\u0004N\tN\u0004O\tO\u0004P\tP\u0004Q\tQ\u0004R\tR\u0004S\tS\u0004", + "T\tT\u0004U\tU\u0004V\tV\u0004W\tW\u0004X\tX\u0004Y\tY\u0004Z\tZ\u0004", + "[\t[\u0004\\\t\\\u0004]\t]\u0004^\t^\u0004_\t_\u0004`\t`\u0004a\ta\u0004", + "b\tb\u0004c\tc\u0004d\td\u0004e\te\u0004f\tf\u0004g\tg\u0004h\th\u0004", + "i\ti\u0004j\tj\u0004k\tk\u0004l\tl\u0004m\tm\u0004n\tn\u0004o\to\u0004", + "p\tp\u0004q\tq\u0004r\tr\u0004s\ts\u0004t\tt\u0004u\tu\u0004v\tv\u0004", + "w\tw\u0004x\tx\u0004y\ty\u0004z\tz\u0004{\t{\u0004|\t|\u0004}\t}\u0004", + "~\t~\u0004\u007f\t\u007f\u0004\u0080\t\u0080\u0004\u0081\t\u0081\u0004", + "\u0082\t\u0082\u0004\u0083\t\u0083\u0004\u0084\t\u0084\u0004\u0085\t", + "\u0085\u0004\u0086\t\u0086\u0004\u0087\t\u0087\u0004\u0088\t\u0088\u0004", + "\u0089\t\u0089\u0004\u008a\t\u008a\u0004\u008b\t\u008b\u0004\u008c\t", + "\u008c\u0004\u008d\t\u008d\u0004\u008e\t\u008e\u0004\u008f\t\u008f\u0004", + "\u0090\t\u0090\u0004\u0091\t\u0091\u0004\u0092\t\u0092\u0004\u0093\t", + "\u0093\u0004\u0094\t\u0094\u0004\u0095\t\u0095\u0004\u0096\t\u0096\u0004", + "\u0097\t\u0097\u0004\u0098\t\u0098\u0004\u0099\t\u0099\u0004\u009a\t", + "\u009a\u0004\u009b\t\u009b\u0004\u009c\t\u009c\u0004\u009d\t\u009d\u0004", + "\u009e\t\u009e\u0004\u009f\t\u009f\u0004\u00a0\t\u00a0\u0004\u00a1\t", + "\u00a1\u0004\u00a2\t\u00a2\u0004\u00a3\t\u00a3\u0004\u00a4\t\u00a4\u0004", + "\u00a5\t\u00a5\u0004\u00a6\t\u00a6\u0004\u00a7\t\u00a7\u0004\u00a8\t", + "\u00a8\u0004\u00a9\t\u00a9\u0004\u00aa\t\u00aa\u0004\u00ab\t\u00ab\u0004", + "\u00ac\t\u00ac\u0004\u00ad\t\u00ad\u0004\u00ae\t\u00ae\u0004\u00af\t", + "\u00af\u0004\u00b0\t\u00b0\u0004\u00b1\t\u00b1\u0004\u00b2\t\u00b2\u0004", + "\u00b3\t\u00b3\u0004\u00b4\t\u00b4\u0004\u00b5\t\u00b5\u0004\u00b6\t", + "\u00b6\u0004\u00b7\t\u00b7\u0004\u00b8\t\u00b8\u0004\u00b9\t\u00b9\u0004", + "\u00ba\t\u00ba\u0004\u00bb\t\u00bb\u0004\u00bc\t\u00bc\u0004\u00bd\t", + "\u00bd\u0004\u00be\t\u00be\u0004\u00bf\t\u00bf\u0004\u00c0\t\u00c0\u0004", + "\u00c1\t\u00c1\u0004\u00c2\t\u00c2\u0004\u00c3\t\u00c3\u0004\u00c4\t", + "\u00c4\u0004\u00c5\t\u00c5\u0004\u00c6\t\u00c6\u0004\u00c7\t\u00c7\u0004", + "\u00c8\t\u00c8\u0004\u00c9\t\u00c9\u0004\u00ca\t\u00ca\u0004\u00cb\t", + "\u00cb\u0004\u00cc\t\u00cc\u0004\u00cd\t\u00cd\u0004\u00ce\t\u00ce\u0004", + "\u00cf\t\u00cf\u0004\u00d0\t\u00d0\u0004\u00d1\t\u00d1\u0004\u00d2\t", + "\u00d2\u0004\u00d3\t\u00d3\u0004\u00d4\t\u00d4\u0004\u00d5\t\u00d5\u0004", + "\u00d6\t\u00d6\u0004\u00d7\t\u00d7\u0004\u00d8\t\u00d8\u0004\u00d9\t", + "\u00d9\u0004\u00da\t\u00da\u0004\u00db\t\u00db\u0004\u00dc\t\u00dc\u0004", + "\u00dd\t\u00dd\u0004\u00de\t\u00de\u0004\u00df\t\u00df\u0004\u00e0\t", + "\u00e0\u0004\u00e1\t\u00e1\u0004\u00e2\t\u00e2\u0004\u00e3\t\u00e3\u0004", + "\u00e4\t\u00e4\u0004\u00e5\t\u00e5\u0004\u00e6\t\u00e6\u0004\u00e7\t", + "\u00e7\u0004\u00e8\t\u00e8\u0004\u00e9\t\u00e9\u0004\u00ea\t\u00ea\u0004", + "\u00eb\t\u00eb\u0004\u00ec\t\u00ec\u0004\u00ed\t\u00ed\u0004\u00ee\t", + "\u00ee\u0004\u00ef\t\u00ef\u0004\u00f0\t\u00f0\u0004\u00f1\t\u00f1\u0004", + "\u00f2\t\u00f2\u0004\u00f3\t\u00f3\u0004\u00f4\t\u00f4\u0004\u00f5\t", + "\u00f5\u0004\u00f6\t\u00f6\u0004\u00f7\t\u00f7\u0004\u00f8\t\u00f8\u0004", + "\u00f9\t\u00f9\u0004\u00fa\t\u00fa\u0004\u00fb\t\u00fb\u0004\u00fc\t", + "\u00fc\u0004\u00fd\t\u00fd\u0004\u00fe\t\u00fe\u0004\u00ff\t\u00ff\u0004", + "\u0100\t\u0100\u0004\u0101\t\u0101\u0004\u0102\t\u0102\u0004\u0103\t", + "\u0103\u0004\u0104\t\u0104\u0004\u0105\t\u0105\u0004\u0106\t\u0106\u0004", + "\u0107\t\u0107\u0004\u0108\t\u0108\u0004\u0109\t\u0109\u0004\u010a\t", + "\u010a\u0004\u010b\t\u010b\u0004\u010c\t\u010c\u0004\u010d\t\u010d\u0004", + "\u010e\t\u010e\u0004\u010f\t\u010f\u0004\u0110\t\u0110\u0004\u0111\t", + "\u0111\u0004\u0112\t\u0112\u0004\u0113\t\u0113\u0004\u0114\t\u0114\u0004", + "\u0115\t\u0115\u0004\u0116\t\u0116\u0004\u0117\t\u0117\u0004\u0118\t", + "\u0118\u0004\u0119\t\u0119\u0004\u011a\t\u011a\u0004\u011b\t\u011b\u0004", + "\u011c\t\u011c\u0004\u011d\t\u011d\u0004\u011e\t\u011e\u0004\u011f\t", + "\u011f\u0004\u0120\t\u0120\u0004\u0121\t\u0121\u0004\u0122\t\u0122\u0004", + "\u0123\t\u0123\u0004\u0124\t\u0124\u0004\u0125\t\u0125\u0004\u0126\t", + "\u0126\u0004\u0127\t\u0127\u0004\u0128\t\u0128\u0004\u0129\t\u0129\u0004", + "\u012a\t\u012a\u0004\u012b\t\u012b\u0004\u012c\t\u012c\u0004\u012d\t", + "\u012d\u0004\u012e\t\u012e\u0004\u012f\t\u012f\u0004\u0130\t\u0130\u0004", + "\u0131\t\u0131\u0004\u0132\t\u0132\u0004\u0133\t\u0133\u0004\u0134\t", + "\u0134\u0004\u0135\t\u0135\u0004\u0136\t\u0136\u0004\u0137\t\u0137\u0004", + "\u0138\t\u0138\u0004\u0139\t\u0139\u0004\u013a\t\u013a\u0004\u013b\t", + "\u013b\u0004\u013c\t\u013c\u0004\u013d\t\u013d\u0004\u013e\t\u013e\u0004", + "\u013f\t\u013f\u0004\u0140\t\u0140\u0004\u0141\t\u0141\u0004\u0142\t", + "\u0142\u0004\u0143\t\u0143\u0004\u0144\t\u0144\u0004\u0145\t\u0145\u0004", + "\u0146\t\u0146\u0004\u0147\t\u0147\u0004\u0148\t\u0148\u0004\u0149\t", + "\u0149\u0004\u014a\t\u014a\u0004\u014b\t\u014b\u0004\u014c\t\u014c\u0004", + "\u014d\t\u014d\u0004\u014e\t\u014e\u0004\u014f\t\u014f\u0004\u0150\t", + "\u0150\u0004\u0151\t\u0151\u0004\u0152\t\u0152\u0004\u0153\t\u0153\u0004", + "\u0154\t\u0154\u0004\u0155\t\u0155\u0004\u0156\t\u0156\u0004\u0157\t", + "\u0157\u0004\u0158\t\u0158\u0004\u0159\t\u0159\u0004\u015a\t\u015a\u0004", + "\u015b\t\u015b\u0004\u015c\t\u015c\u0004\u015d\t\u015d\u0004\u015e\t", + "\u015e\u0004\u015f\t\u015f\u0004\u0160\t\u0160\u0004\u0161\t\u0161\u0004", + "\u0162\t\u0162\u0004\u0163\t\u0163\u0004\u0164\t\u0164\u0004\u0165\t", + "\u0165\u0004\u0166\t\u0166\u0004\u0167\t\u0167\u0004\u0168\t\u0168\u0004", + "\u0169\t\u0169\u0004\u016a\t\u016a\u0004\u016b\t\u016b\u0004\u016c\t", + "\u016c\u0004\u016d\t\u016d\u0004\u016e\t\u016e\u0004\u016f\t\u016f\u0004", + "\u0170\t\u0170\u0004\u0171\t\u0171\u0004\u0172\t\u0172\u0004\u0173\t", + "\u0173\u0004\u0174\t\u0174\u0004\u0175\t\u0175\u0004\u0176\t\u0176\u0004", + "\u0177\t\u0177\u0004\u0178\t\u0178\u0004\u0179\t\u0179\u0004\u017a\t", + "\u017a\u0004\u017b\t\u017b\u0004\u017c\t\u017c\u0004\u017d\t\u017d\u0004", + "\u017e\t\u017e\u0004\u017f\t\u017f\u0004\u0180\t\u0180\u0004\u0181\t", + "\u0181\u0004\u0182\t\u0182\u0004\u0183\t\u0183\u0004\u0184\t\u0184\u0004", + "\u0185\t\u0185\u0004\u0186\t\u0186\u0004\u0187\t\u0187\u0004\u0188\t", + "\u0188\u0004\u0189\t\u0189\u0004\u018a\t\u018a\u0004\u018b\t\u018b\u0004", + "\u018c\t\u018c\u0004\u018d\t\u018d\u0004\u018e\t\u018e\u0004\u018f\t", + "\u018f\u0004\u0190\t\u0190\u0004\u0191\t\u0191\u0004\u0192\t\u0192\u0004", + "\u0193\t\u0193\u0004\u0194\t\u0194\u0004\u0195\t\u0195\u0004\u0196\t", + "\u0196\u0004\u0197\t\u0197\u0003\u0002\u0003\u0002\u0003\u0002\u0003", + "\u0002\u0003\u0002\u0003\u0002\u0003\u0002\u0003\u0003\u0003\u0003\u0003", + "\u0003\u0003\u0003\u0003\u0004\u0003\u0004\u0003\u0004\u0003\u0004\u0003", + "\u0005\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005\u0003", + "\u0005\u0003\u0005\u0003\u0005\u0003\u0006\u0003\u0006\u0003\u0006\u0003", + "\u0006\u0003\u0006\u0003\u0006\u0003\u0007\u0003\u0007\u0003\u0007\u0003", + "\u0007\u0003\b\u0003\b\u0003\b\u0003\b\u0003\b\u0003\b\u0003\b\u0003", + "\b\u0003\b\u0003\b\u0003\b\u0003\t\u0003\t\u0003\t\u0003\t\u0003\t\u0003", + "\t\u0003\t\u0003\t\u0003\t\u0003\t\u0003\t\u0003\t\u0003\t\u0003\n\u0003", + "\n\u0003\n\u0003\u000b\u0003\u000b\u0003\u000b\u0003\u000b\u0003\f\u0003", + "\f\u0003\f\u0003\f\u0003\f\u0003\f\u0003\f\u0003\f\u0003\f\u0003\f\u0003", + "\r\u0003\r\u0003\r\u0003\u000e\u0003\u000e\u0003\u000e\u0003\u000e\u0003", + "\u000e\u0003\u000e\u0003\u000e\u0003\u000e\u0003\u000e\u0003\u000e\u0003", + "\u000e\u0003\u000e\u0003\u000e\u0003\u000e\u0003\u000e\u0003\u000f\u0003", + "\u000f\u0003\u000f\u0003\u000f\u0003\u0010\u0003\u0010\u0003\u0010\u0003", + "\u0010\u0003\u0010\u0003\u0010\u0003\u0010\u0003\u0010\u0003\u0010\u0003", + "\u0010\u0003\u0011\u0003\u0011\u0003\u0011\u0003\u0011\u0003\u0011\u0003", + "\u0011\u0003\u0012\u0003\u0012\u0003\u0012\u0003\u0012\u0003\u0012\u0003", + "\u0012\u0003\u0012\u0003\u0012\u0003\u0013\u0003\u0013\u0003\u0013\u0003", + "\u0013\u0003\u0013\u0003\u0013\u0003\u0013\u0003\u0014\u0003\u0014\u0003", + "\u0014\u0003\u0014\u0003\u0014\u0003\u0014\u0003\u0014\u0003\u0014\u0003", + "\u0014\u0003\u0014\u0003\u0014\u0003\u0014\u0003\u0014\u0003\u0014\u0003", + "\u0015\u0003\u0015\u0003\u0015\u0003\u0015\u0003\u0015\u0003\u0015\u0003", + "\u0015\u0003\u0015\u0003\u0015\u0003\u0015\u0003\u0015\u0003\u0015\u0003", + "\u0015\u0003\u0016\u0003\u0016\u0003\u0016\u0003\u0016\u0003\u0016\u0003", + "\u0016\u0003\u0016\u0003\u0016\u0003\u0016\u0003\u0016\u0003\u0016\u0003", + "\u0016\u0003\u0016\u0003\u0016\u0003\u0016\u0003\u0017\u0003\u0017\u0003", + "\u0017\u0003\u0017\u0003\u0018\u0003\u0018\u0003\u0018\u0003\u0018\u0003", + "\u0018\u0003\u0019\u0003\u0019\u0003\u0019\u0003\u0019\u0003\u0019\u0003", + "\u0019\u0003\u001a\u0003\u001a\u0003\u001a\u0003\u001b\u0003\u001b\u0003", + "\u001b\u0003\u001b\u0003\u001b\u0003\u001c\u0003\u001c\u0003\u001c\u0003", + "\u001c\u0003\u001c\u0003\u001d\u0003\u001d\u0003\u001d\u0003\u001d\u0003", + "\u001d\u0003\u001d\u0003\u001d\u0003\u001e\u0003\u001e\u0003\u001e\u0003", + "\u001e\u0003\u001e\u0003\u001e\u0003\u001e\u0003\u001e\u0003\u001f\u0003", + "\u001f\u0003\u001f\u0003\u001f\u0003\u001f\u0003 \u0003 \u0003 \u0003", + " \u0003 \u0003 \u0003 \u0003 \u0003 \u0003 \u0003 \u0003 \u0003 \u0003", + "!\u0003!\u0003!\u0003!\u0003!\u0003\"\u0003\"\u0003\"\u0003\"\u0003", + "\"\u0003#\u0003#\u0003#\u0003#\u0003#\u0003#\u0003#\u0003#\u0003#\u0003", + "#\u0003$\u0003$\u0003$\u0003$\u0003$\u0003$\u0003$\u0003$\u0003%\u0003", + "%\u0003%\u0003%\u0003%\u0003%\u0003%\u0003&\u0003&\u0003&\u0003&\u0003", + "&\u0003&\u0003\'\u0003\'\u0003\'\u0003\'\u0003\'\u0003\'\u0003\'\u0003", + "\'\u0003\'\u0003\'\u0003(\u0003(\u0003(\u0003(\u0003)\u0003)\u0003)", + "\u0003)\u0003)\u0003)\u0003)\u0003)\u0003*\u0003*\u0003*\u0003*\u0003", + "*\u0003*\u0003*\u0003*\u0003*\u0003*\u0003*\u0003+\u0003+\u0003+\u0003", + "+\u0003+\u0003+\u0003+\u0003,\u0003,\u0003,\u0003,\u0003,\u0003,\u0003", + ",\u0003,\u0003-\u0003-\u0003-\u0003-\u0003-\u0003-\u0003-\u0003-\u0003", + "-\u0003.\u0003.\u0003.\u0003.\u0003.\u0003.\u0003.\u0003/\u0003/\u0003", + "/\u0003/\u0003/\u0003/\u0003/\u0003/\u0003/\u00030\u00030\u00030\u0003", + "0\u00030\u00030\u00030\u00031\u00031\u00031\u00031\u00031\u00031\u0003", + "1\u00031\u00031\u00031\u00032\u00032\u00032\u00032\u00032\u00032\u0003", + "2\u00032\u00032\u00032\u00032\u00033\u00033\u00033\u00033\u00033\u0003", + "3\u00033\u00033\u00033\u00034\u00034\u00034\u00034\u00034\u00035\u0003", + "5\u00035\u00035\u00035\u00035\u00036\u00036\u00036\u00036\u00036\u0003", + "6\u00036\u00036\u00036\u00036\u00037\u00037\u00037\u00037\u00037\u0003", + "7\u00037\u00038\u00038\u00038\u00038\u00038\u00038\u00038\u00038\u0003", + "8\u00039\u00039\u00039\u00039\u00039\u00039\u00039\u00039\u0003:\u0003", + ":\u0003:\u0003;\u0003;\u0003;\u0003;\u0003;\u0003;\u0003;\u0003;\u0003", + "<\u0003<\u0003<\u0003<\u0003<\u0003<\u0003<\u0003<\u0003<\u0003<\u0003", + "<\u0003<\u0003<\u0003<\u0003<\u0003=\u0003=\u0003=\u0003=\u0003=\u0003", + "=\u0003=\u0003>\u0003>\u0003>\u0003>\u0003>\u0003>\u0003>\u0003>\u0003", + ">\u0003?\u0003?\u0003?\u0003?\u0003?\u0003@\u0003@\u0003@\u0003@\u0003", + "@\u0003A\u0003A\u0003A\u0003A\u0003A\u0003A\u0003A\u0003A\u0003A\u0003", + "B\u0003B\u0003B\u0003B\u0003C\u0003C\u0003C\u0003C\u0003C\u0003D\u0003", + "D\u0003D\u0003D\u0003E\u0003E\u0003E\u0003E\u0003E\u0003E\u0003E\u0003", + "E\u0003F\u0003F\u0003F\u0003F\u0003F\u0003F\u0003F\u0003F\u0003G\u0003", + "G\u0003G\u0003G\u0003G\u0003G\u0003G\u0003G\u0003H\u0003H\u0003H\u0003", + "H\u0003H\u0003H\u0003H\u0003H\u0003H\u0003I\u0003I\u0003I\u0003I\u0003", + "I\u0003I\u0003I\u0003I\u0003J\u0003J\u0003J\u0003J\u0003J\u0003J\u0003", + "J\u0003J\u0003K\u0003K\u0003K\u0003K\u0003K\u0003K\u0003K\u0003K\u0003", + "K\u0003K\u0003K\u0003L\u0003L\u0003L\u0003L\u0003L\u0003L\u0003L\u0003", + "M\u0003M\u0003M\u0003M\u0003M\u0003M\u0003M\u0003M\u0003M\u0003M\u0003", + "N\u0003N\u0003N\u0003N\u0003N\u0003N\u0003N\u0003N\u0003N\u0003N\u0003", + "O\u0003O\u0003O\u0003O\u0003O\u0003P\u0003P\u0003P\u0003P\u0003P\u0003", + "P\u0003P\u0003P\u0003P\u0003Q\u0003Q\u0003Q\u0003Q\u0003Q\u0003Q\u0003", + "Q\u0003Q\u0003Q\u0003Q\u0003Q\u0003Q\u0003R\u0003R\u0003R\u0003R\u0003", + "S\u0003S\u0003S\u0003S\u0003S\u0003S\u0003S\u0003S\u0003S\u0003S\u0003", + "T\u0003T\u0003T\u0003T\u0003T\u0003T\u0003T\u0003T\u0003T\u0003U\u0003", + "U\u0003U\u0003U\u0003U\u0003U\u0003U\u0003U\u0003U\u0003U\u0003U\u0003", + "V\u0003V\u0003V\u0003W\u0003W\u0003W\u0003W\u0003W\u0003W\u0003W\u0003", + "X\u0003X\u0003X\u0003X\u0003X\u0003Y\u0003Y\u0003Y\u0003Y\u0003Y\u0003", + "Y\u0003Y\u0003Y\u0003Z\u0003Z\u0003Z\u0003Z\u0003Z\u0003[\u0003[\u0003", + "[\u0003[\u0003[\u0003[\u0003[\u0003\\\u0003\\\u0003\\\u0003\\\u0003", + "\\\u0003\\\u0003]\u0003]\u0003]\u0003]\u0003]\u0003]\u0003]\u0003^\u0003", + "^\u0003^\u0003^\u0003_\u0003_\u0003_\u0003_\u0003_\u0003_\u0003_\u0003", + "`\u0003`\u0003`\u0003`\u0003`\u0003`\u0003`\u0003`\u0003a\u0003a\u0003", + "a\u0003a\u0003a\u0003a\u0003a\u0003b\u0003b\u0003b\u0003b\u0003b\u0003", + "c\u0003c\u0003c\u0003c\u0003c\u0003c\u0003c\u0003c\u0003d\u0003d\u0003", + "d\u0003d\u0003d\u0003d\u0003d\u0003d\u0003d\u0003d\u0003e\u0003e\u0003", + "e\u0003e\u0003e\u0003e\u0003e\u0003e\u0003e\u0003e\u0003f\u0003f\u0003", + "f\u0003f\u0003f\u0003f\u0003f\u0003g\u0003g\u0003g\u0003g\u0003g\u0003", + "h\u0003h\u0003h\u0003h\u0003h\u0003h\u0003h\u0003h\u0003h\u0003i\u0003", + "i\u0003i\u0003i\u0003i\u0003i\u0003j\u0003j\u0003j\u0003j\u0003j\u0003", + "j\u0003k\u0003k\u0003k\u0003k\u0003k\u0003k\u0003k\u0003l\u0003l\u0003", + "l\u0003l\u0003l\u0003m\u0003m\u0003m\u0003m\u0003m\u0003m\u0003n\u0003", + "n\u0003n\u0003n\u0003n\u0003n\u0003o\u0003o\u0003o\u0003o\u0003p\u0003", + "p\u0003p\u0003p\u0003p\u0003p\u0003p\u0003p\u0003q\u0003q\u0003q\u0003", + "q\u0003q\u0003q\u0003q\u0003r\u0003r\u0003r\u0003r\u0003r\u0003r\u0003", + "s\u0003s\u0003s\u0003s\u0003s\u0003t\u0003t\u0003t\u0003t\u0003t\u0003", + "u\u0003u\u0003u\u0003u\u0003u\u0003u\u0003u\u0003u\u0003u\u0003v\u0003", + "v\u0003v\u0003v\u0003w\u0003w\u0003w\u0003w\u0003w\u0003w\u0003w\u0003", + "x\u0003x\u0003x\u0003y\u0003y\u0003y\u0003y\u0003y\u0003y\u0003z\u0003", + "z\u0003z\u0003z\u0003z\u0003z\u0003{\u0003{\u0003{\u0003{\u0003{\u0003", + "{\u0003{\u0003{\u0003|\u0003|\u0003|\u0003|\u0003|\u0003}\u0003}\u0003", + "}\u0003}\u0003}\u0003}\u0003}\u0003~\u0003~\u0003~\u0003~\u0003~\u0003", + "\u007f\u0003\u007f\u0003\u007f\u0003\u007f\u0003\u007f\u0003\u0080\u0003", + "\u0080\u0003\u0080\u0003\u0080\u0003\u0080\u0003\u0081\u0003\u0081\u0003", + "\u0081\u0003\u0081\u0003\u0081\u0003\u0081\u0003\u0081\u0003\u0081\u0003", + "\u0081\u0003\u0082\u0003\u0082\u0003\u0082\u0003\u0083\u0003\u0083\u0003", + "\u0083\u0003\u0083\u0003\u0083\u0003\u0083\u0003\u0083\u0003\u0084\u0003", + "\u0084\u0003\u0084\u0003\u0084\u0003\u0084\u0003\u0084\u0003\u0084\u0003", + "\u0084\u0003\u0084\u0003\u0084\u0003\u0085\u0003\u0085\u0003\u0085\u0003", + "\u0086\u0003\u0086\u0003\u0086\u0003\u0086\u0003\u0086\u0003\u0086\u0003", + "\u0086\u0003\u0086\u0003\u0087\u0003\u0087\u0003\u0087\u0003\u0087\u0003", + "\u0087\u0003\u0087\u0003\u0088\u0003\u0088\u0003\u0088\u0003\u0088\u0003", + "\u0088\u0003\u0088\u0003\u0088\u0003\u0088\u0003\u0088\u0003\u0089\u0003", + "\u0089\u0003\u0089\u0003\u0089\u0003\u0089\u0003\u0089\u0003\u008a\u0003", + "\u008a\u0003\u008a\u0003\u008a\u0003\u008a\u0003\u008a\u0003\u008b\u0003", + "\u008b\u0003\u008b\u0003\u008b\u0003\u008b\u0003\u008b\u0003\u008b\u0003", + "\u008c\u0003\u008c\u0003\u008c\u0003\u008c\u0003\u008d\u0003\u008d\u0003", + "\u008d\u0003\u008d\u0003\u008d\u0003\u008e\u0003\u008e\u0003\u008e\u0003", + "\u008e\u0003\u008e\u0003\u008f\u0003\u008f\u0003\u008f\u0003\u008f\u0003", + "\u008f\u0003\u0090\u0003\u0090\u0003\u0090\u0003\u0090\u0003\u0090\u0003", + "\u0090\u0003\u0090\u0003\u0090\u0003\u0091\u0003\u0091\u0003\u0091\u0003", + "\u0091\u0003\u0091\u0003\u0091\u0003\u0091\u0003\u0091\u0003\u0091\u0003", + "\u0091\u0003\u0092\u0003\u0092\u0003\u0092\u0003\u0092\u0003\u0092\u0003", + "\u0092\u0003\u0092\u0003\u0092\u0003\u0092\u0003\u0093\u0003\u0093\u0003", + "\u0093\u0003\u0093\u0003\u0093\u0003\u0094\u0003\u0094\u0003\u0094\u0003", + "\u0094\u0003\u0094\u0003\u0094\u0003\u0094\u0003\u0094\u0003\u0095\u0003", + "\u0095\u0003\u0095\u0003\u0096\u0003\u0096\u0003\u0096\u0003\u0096\u0003", + "\u0096\u0003\u0096\u0003\u0096\u0003\u0097\u0003\u0097\u0003\u0097\u0003", + "\u0097\u0003\u0097\u0003\u0097\u0003\u0098\u0003\u0098\u0003\u0098\u0003", + "\u0098\u0003\u0098\u0003\u0099\u0003\u0099\u0003\u0099\u0003\u0099\u0003", + "\u0099\u0003\u009a\u0003\u009a\u0003\u009a\u0003\u009a\u0003\u009b\u0003", + "\u009b\u0003\u009b\u0003\u009b\u0003\u009b\u0003\u009c\u0003\u009c\u0003", + "\u009c\u0003\u009c\u0003\u009c\u0003\u009c\u0003\u009c\u0003\u009c\u0003", + "\u009c\u0003\u009d\u0003\u009d\u0003\u009d\u0003\u009d\u0003\u009d\u0003", + "\u009d\u0003\u009e\u0003\u009e\u0003\u009e\u0003\u009e\u0003\u009e\u0003", + "\u009f\u0003\u009f\u0003\u009f\u0003\u009f\u0003\u009f\u0003\u00a0\u0003", + "\u00a0\u0003\u00a0\u0003\u00a0\u0003\u00a0\u0003\u00a0\u0003\u00a1\u0003", + "\u00a1\u0003\u00a1\u0003\u00a1\u0003\u00a1\u0003\u00a1\u0003\u00a2\u0003", + "\u00a2\u0003\u00a2\u0003\u00a2\u0003\u00a2\u0003\u00a2\u0003\u00a3\u0003", + "\u00a3\u0003\u00a3\u0003\u00a3\u0003\u00a3\u0003\u00a3\u0003\u00a3\u0003", + "\u00a3\u0003\u00a3\u0003\u00a4\u0003\u00a4\u0003\u00a4\u0003\u00a4\u0003", + "\u00a4\u0003\u00a4\u0003\u00a4\u0003\u00a4\u0003\u00a5\u0003\u00a5\u0003", + "\u00a5\u0003\u00a5\u0003\u00a5\u0003\u00a5\u0003\u00a5\u0003\u00a5\u0003", + "\u00a5\u0003\u00a6\u0003\u00a6\u0003\u00a6\u0003\u00a6\u0003\u00a6\u0003", + "\u00a6\u0003\u00a7\u0003\u00a7\u0003\u00a7\u0003\u00a7\u0003\u00a8\u0003", + "\u00a8\u0003\u00a8\u0003\u00a8\u0003\u00a8\u0003\u00a8\u0003\u00a8\u0003", + "\u00a9\u0003\u00a9\u0003\u00a9\u0003\u00a9\u0003\u00a9\u0003\u00a9\u0003", + "\u00a9\u0003\u00a9\u0003\u00aa\u0003\u00aa\u0003\u00aa\u0003\u00aa\u0003", + "\u00aa\u0003\u00ab\u0003\u00ab\u0003\u00ab\u0003\u00ab\u0003\u00ac\u0003", + "\u00ac\u0003\u00ac\u0003\u00ac\u0003\u00ac\u0003\u00ac\u0003\u00ac\u0003", + "\u00ac\u0003\u00ad\u0003\u00ad\u0003\u00ad\u0003\u00ad\u0003\u00ae\u0003", + "\u00ae\u0003\u00ae\u0003\u00ae\u0003\u00ae\u0003\u00ae\u0003\u00ae\u0003", + "\u00ae\u0003\u00ae\u0003\u00af\u0003\u00af\u0003\u00af\u0003\u00af\u0003", + "\u00af\u0003\u00af\u0003\u00b0\u0003\u00b0\u0003\u00b0\u0003\u00b0\u0003", + "\u00b0\u0003\u00b0\u0003\u00b0\u0003\u00b0\u0003\u00b0\u0003\u00b0\u0003", + "\u00b0\u0003\u00b0\u0003\u00b0\u0003\u00b1\u0003\u00b1\u0003\u00b1\u0003", + "\u00b1\u0003\u00b1\u0003\u00b1\u0003\u00b1\u0003\u00b1\u0003\u00b1\u0003", + "\u00b1\u0003\u00b1\u0003\u00b1\u0003\u00b2\u0003\u00b2\u0003\u00b2\u0003", + "\u00b2\u0003\u00b2\u0003\u00b2\u0003\u00b2\u0003\u00b2\u0003\u00b2\u0003", + "\u00b2\u0003\u00b2\u0003\u00b2\u0003\u00b2\u0003\u00b3\u0003\u00b3\u0003", + "\u00b3\u0003\u00b3\u0003\u00b4\u0003\u00b4\u0003\u00b4\u0003\u00b4\u0003", + "\u00b4\u0003\u00b4\u0003\u00b4\u0003\u00b4\u0003\u00b4\u0003\u00b5\u0003", + "\u00b5\u0003\u00b5\u0003\u00b5\u0003\u00b5\u0003\u00b5\u0003\u00b6\u0003", + "\u00b6\u0003\u00b6\u0003\u00b6\u0003\u00b7\u0003\u00b7\u0003\u00b7\u0003", + "\u00b7\u0003\u00b7\u0003\u00b7\u0003\u00b7\u0003\u00b7\u0003\u00b7\u0003", + "\u00b8\u0003\u00b8\u0003\u00b8\u0003\u00b9\u0003\u00b9\u0003\u00b9\u0003", + "\u00b9\u0003\u00b9\u0003\u00b9\u0003\u00b9\u0003\u00b9\u0003\u00ba\u0003", + "\u00ba\u0003\u00ba\u0003\u00ba\u0003\u00ba\u0003\u00ba\u0003\u00ba\u0003", + "\u00ba\u0003\u00ba\u0003\u00ba\u0003\u00ba\u0003\u00bb\u0003\u00bb\u0003", + "\u00bb\u0003\u00bb\u0003\u00bb\u0003\u00bb\u0003\u00bb\u0003\u00bb\u0003", + "\u00bb\u0003\u00bb\u0003\u00bc\u0003\u00bc\u0003\u00bc\u0003\u00bc\u0003", + "\u00bc\u0003\u00bd\u0003\u00bd\u0003\u00bd\u0003\u00bd\u0003\u00be\u0003", + "\u00be\u0003\u00be\u0003\u00be\u0003\u00be\u0003\u00be\u0003\u00be\u0003", + "\u00be\u0003\u00be\u0003\u00bf\u0003\u00bf\u0003\u00bf\u0003\u00bf\u0003", + "\u00bf\u0003\u00c0\u0003\u00c0\u0003\u00c0\u0003\u00c0\u0003\u00c0\u0003", + "\u00c0\u0003\u00c0\u0003\u00c0\u0003\u00c1\u0003\u00c1\u0003\u00c1\u0003", + "\u00c1\u0003\u00c1\u0003\u00c1\u0003\u00c1\u0003\u00c2\u0003\u00c2\u0003", + "\u00c2\u0003\u00c2\u0003\u00c2\u0003\u00c2\u0003\u00c2\u0003\u00c3\u0003", + "\u00c3\u0003\u00c3\u0003\u00c3\u0003\u00c4\u0003\u00c4\u0003\u00c4\u0003", + "\u00c5\u0003\u00c5\u0003\u00c5\u0003\u00c5\u0003\u00c5\u0003\u00c6\u0003", + "\u00c6\u0003\u00c6\u0003\u00c6\u0003\u00c6\u0003\u00c7\u0003\u00c7\u0003", + "\u00c7\u0003\u00c8\u0003\u00c8\u0003\u00c8\u0003\u00c8\u0003\u00c8\u0003", + "\u00c8\u0003\u00c9\u0003\u00c9\u0003\u00c9\u0003\u00c9\u0003\u00ca\u0003", + "\u00ca\u0003\u00ca\u0003\u00ca\u0003\u00ca\u0003\u00ca\u0003\u00cb\u0003", + "\u00cb\u0003\u00cb\u0003\u00cb\u0003\u00cb\u0003\u00cc\u0003\u00cc\u0003", + "\u00cc\u0003\u00cc\u0003\u00cc\u0003\u00cc\u0003\u00cc\u0003\u00cc\u0003", + "\u00cc\u0003\u00cc\u0003\u00cd\u0003\u00cd\u0003\u00cd\u0003\u00cd\u0003", + "\u00cd\u0003\u00cd\u0003\u00ce\u0003\u00ce\u0003\u00ce\u0003\u00ce\u0003", + "\u00ce\u0003\u00ce\u0003\u00ce\u0003\u00ce\u0003\u00cf\u0003\u00cf\u0003", + "\u00cf\u0003\u00cf\u0003\u00cf\u0003\u00cf\u0003\u00cf\u0003\u00cf\u0003", + "\u00cf\u0003\u00cf\u0003\u00d0\u0003\u00d0\u0003\u00d0\u0003\u00d0\u0003", + "\u00d0\u0003\u00d0\u0003\u00d0\u0003\u00d0\u0003\u00d1\u0003\u00d1\u0003", + "\u00d1\u0003\u00d1\u0003\u00d1\u0003\u00d1\u0003\u00d1\u0003\u00d1\u0003", + "\u00d2\u0003\u00d2\u0003\u00d2\u0003\u00d2\u0003\u00d2\u0003\u00d2\u0003", + "\u00d2\u0003\u00d2\u0003\u00d2\u0003\u00d2\u0003\u00d2\u0003\u00d2\u0003", + "\u00d3\u0003\u00d3\u0003\u00d3\u0003\u00d3\u0003\u00d3\u0003\u00d3\u0003", + "\u00d3\u0003\u00d3\u0003\u00d3\u0003\u00d3\u0003\u00d4\u0003\u00d4\u0003", + "\u00d4\u0003\u00d4\u0003\u00d4\u0003\u00d4\u0003\u00d4\u0003\u00d4\u0003", + "\u00d4\u0003\u00d5\u0003\u00d5\u0003\u00d5\u0003\u00d5\u0003\u00d5\u0003", + "\u00d5\u0003\u00d5\u0003\u00d5\u0003\u00d6\u0003\u00d6\u0003\u00d6\u0003", + "\u00d6\u0003\u00d6\u0003\u00d6\u0003\u00d7\u0003\u00d7\u0003\u00d7\u0003", + "\u00d7\u0003\u00d7\u0003\u00d8\u0003\u00d8\u0003\u00d8\u0003\u00d8\u0003", + "\u00d8\u0003\u00d8\u0003\u00d8\u0003\u00d8\u0003\u00d8\u0003\u00d8\u0003", + "\u00d9\u0003\u00d9\u0003\u00d9\u0003\u00d9\u0003\u00d9\u0003\u00d9\u0003", + "\u00d9\u0003\u00d9\u0003\u00da\u0003\u00da\u0003\u00da\u0003\u00da\u0003", + "\u00da\u0003\u00da\u0003\u00da\u0003\u00da\u0003\u00da\u0003\u00da\u0003", + "\u00da\u0003\u00db\u0003\u00db\u0003\u00db\u0003\u00db\u0003\u00db\u0003", + "\u00dc\u0003\u00dc\u0003\u00dc\u0003\u00dc\u0003\u00dc\u0003\u00dc\u0003", + "\u00dc\u0003\u00dc\u0003\u00dc\u0003\u00dc\u0003\u00dc\u0003\u00dc\u0003", + "\u00dc\u0003\u00dc\u0003\u00dc\u0003\u00dc\u0003\u00dc\u0003\u00dc\u0003", + "\u00dd\u0003\u00dd\u0003\u00dd\u0003\u00dd\u0003\u00dd\u0003\u00dd\u0003", + "\u00de\u0003\u00de\u0003\u00de\u0003\u00de\u0003\u00de\u0003\u00df\u0003", + "\u00df\u0003\u00df\u0003\u00df\u0003\u00df\u0003\u00df\u0003\u00df\u0003", + "\u00df\u0003\u00df\u0003\u00df\u0003\u00df\u0003\u00e0\u0003\u00e0\u0003", + "\u00e0\u0003\u00e0\u0003\u00e0\u0003\u00e0\u0003\u00e0\u0003\u00e1\u0003", + "\u00e1\u0003\u00e1\u0003\u00e1\u0003\u00e1\u0003\u00e1\u0003\u00e1\u0003", + "\u00e1\u0003\u00e2\u0003\u00e2\u0003\u00e2\u0003\u00e2\u0003\u00e2\u0003", + "\u00e2\u0003\u00e2\u0003\u00e2\u0003\u00e2\u0003\u00e3\u0003\u00e3\u0003", + "\u00e3\u0003\u00e3\u0003\u00e3\u0003\u00e3\u0003\u00e3\u0003\u00e3\u0003", + "\u00e3\u0003\u00e4\u0003\u00e4\u0003\u00e4\u0003\u00e4\u0003\u00e4\u0003", + "\u00e4\u0003\u00e4\u0003\u00e5\u0003\u00e5\u0003\u00e5\u0003\u00e5\u0003", + "\u00e5\u0003\u00e5\u0003\u00e5\u0003\u00e5\u0003\u00e5\u0003\u00e5\u0003", + "\u00e5\u0003\u00e5\u0003\u00e5\u0003\u00e5\u0003\u00e5\u0003\u00e5\u0003", + "\u00e5\u0003\u00e5\u0003\u00e5\u0003\u00e6\u0003\u00e6\u0003\u00e6\u0003", + "\u00e6\u0003\u00e6\u0003\u00e6\u0003\u00e6\u0003\u00e7\u0003\u00e7\u0003", + "\u00e7\u0003\u00e7\u0003\u00e7\u0003\u00e7\u0003\u00e7\u0003\u00e7\u0003", + "\u00e8\u0003\u00e8\u0003\u00e8\u0003\u00e8\u0003\u00e8\u0003\u00e8\u0003", + "\u00e8\u0003\u00e8\u0003\u00e9\u0003\u00e9\u0003\u00e9\u0003\u00e9\u0003", + "\u00e9\u0003\u00e9\u0003\u00ea\u0003\u00ea\u0003\u00ea\u0003\u00ea\u0003", + "\u00ea\u0003\u00ea\u0003\u00eb\u0003\u00eb\u0003\u00eb\u0003\u00eb\u0003", + "\u00eb\u0003\u00ec\u0003\u00ec\u0003\u00ec\u0003\u00ec\u0003\u00ec\u0003", + "\u00ec\u0003\u00ec\u0003\u00ec\u0003\u00ec\u0003\u00ed\u0003\u00ed\u0003", + "\u00ed\u0003\u00ed\u0003\u00ee\u0003\u00ee\u0003\u00ee\u0003\u00ee\u0003", + "\u00ee\u0003\u00ef\u0003\u00ef\u0003\u00ef\u0003\u00ef\u0003\u00ef\u0003", + "\u00ef\u0003\u00ef\u0003\u00ef\u0003\u00f0\u0003\u00f0\u0003\u00f0\u0003", + "\u00f0\u0003\u00f0\u0003\u00f0\u0003\u00f0\u0003\u00f0\u0003\u00f0\u0003", + "\u00f0\u0003\u00f1\u0003\u00f1\u0003\u00f1\u0003\u00f2\u0003\u00f2\u0003", + "\u00f2\u0003\u00f3\u0003\u00f3\u0003\u00f3\u0003\u00f3\u0003\u00f4\u0003", + "\u00f4\u0003\u00f4\u0003\u00f4\u0003\u00f4\u0003\u00f5\u0003\u00f5\u0003", + "\u00f5\u0003\u00f5\u0003\u00f5\u0003\u00f5\u0003\u00f5\u0003\u00f6\u0003", + "\u00f6\u0003\u00f6\u0003\u00f6\u0003\u00f6\u0003\u00f6\u0003\u00f6\u0003", + "\u00f7\u0003\u00f7\u0003\u00f7\u0003\u00f7\u0003\u00f7\u0003\u00f7\u0003", + "\u00f7\u0003\u00f7\u0003\u00f8\u0003\u00f8\u0003\u00f8\u0003\u00f8\u0003", + "\u00f8\u0003\u00f8\u0003\u00f8\u0003\u00f8\u0003\u00f8\u0003\u00f9\u0003", + "\u00f9\u0003\u00f9\u0003\u00f9\u0003\u00f9\u0003\u00f9\u0003\u00f9\u0003", + "\u00f9\u0003\u00fa\u0003\u00fa\u0003\u00fa\u0003\u00fa\u0003\u00fb\u0003", + "\u00fb\u0003\u00fb\u0003\u00fb\u0003\u00fb\u0003\u00fb\u0003\u00fb\u0003", + "\u00fc\u0003\u00fc\u0003\u00fc\u0003\u00fc\u0003\u00fd\u0003\u00fd\u0003", + "\u00fd\u0003\u00fd\u0003\u00fd\u0003\u00fd\u0003\u00fd\u0003\u00fd\u0003", + "\u00fe\u0003\u00fe\u0003\u00fe\u0003\u00fe\u0003\u00fe\u0003\u00fe\u0003", + "\u00fe\u0003\u00fe\u0003\u00fe\u0003\u00ff\u0003\u00ff\u0003\u00ff\u0003", + "\u00ff\u0003\u00ff\u0003\u0100\u0003\u0100\u0003\u0100\u0003\u0100\u0003", + "\u0100\u0003\u0100\u0003\u0101\u0003\u0101\u0003\u0101\u0003\u0101\u0003", + "\u0101\u0003\u0101\u0003\u0101\u0003\u0102\u0003\u0102\u0003\u0102\u0003", + "\u0102\u0003\u0102\u0003\u0102\u0003\u0102\u0003\u0102\u0003\u0102\u0003", + "\u0102\u0003\u0102\u0003\u0102\u0003\u0102\u0003\u0102\u0003\u0103\u0003", + "\u0103\u0003\u0103\u0003\u0103\u0003\u0103\u0003\u0103\u0003\u0103\u0003", + "\u0103\u0003\u0103\u0003\u0103\u0003\u0103\u0003\u0103\u0003\u0103\u0003", + "\u0104\u0003\u0104\u0003\u0104\u0003\u0104\u0003\u0104\u0003\u0104\u0003", + "\u0104\u0003\u0104\u0003\u0104\u0003\u0104\u0003\u0104\u0003\u0104\u0003", + "\u0104\u0003\u0104\u0003\u0104\u0003\u0105\u0003\u0105\u0003\u0105\u0003", + "\u0105\u0003\u0105\u0003\u0105\u0003\u0105\u0003\u0105\u0003\u0105\u0003", + "\u0105\u0003\u0105\u0003\u0105\u0003\u0105\u0003\u0105\u0003\u0106\u0003", + "\u0106\u0003\u0106\u0003\u0106\u0003\u0106\u0003\u0106\u0003\u0106\u0003", + "\u0106\u0003\u0106\u0003\u0107\u0003\u0107\u0003\u0107\u0003\u0107\u0003", + "\u0108\u0003\u0108\u0003\u0108\u0003\u0108\u0003\u0108\u0003\u0108\u0003", + "\u0108\u0003\u0108\u0003\u0108\u0003\u0108\u0003\u0108\u0003\u0108\u0003", + "\u0108\u0003\u0109\u0003\u0109\u0003\u0109\u0003\u0109\u0003\u0109\u0003", + "\u0109\u0003\u0109\u0003\u0109\u0003\u0109\u0003\u0109\u0003\u010a\u0003", + "\u010a\u0003\u010a\u0003\u010a\u0003\u010a\u0003\u010a\u0003\u010a\u0003", + "\u010a\u0003\u010a\u0003\u010b\u0003\u010b\u0003\u010b\u0003\u010b\u0003", + "\u010b\u0003\u010b\u0003\u010b\u0003\u010b\u0003\u010b\u0003\u010b\u0003", + "\u010b\u0003\u010c\u0003\u010c\u0003\u010c\u0003\u010c\u0003\u010c\u0003", + "\u010c\u0003\u010d\u0003\u010d\u0003\u010d\u0003\u010d\u0003\u010d\u0003", + "\u010d\u0003\u010d\u0003\u010d\u0003\u010d\u0003\u010d\u0003\u010d\u0003", + "\u010e\u0003\u010e\u0003\u010e\u0003\u010e\u0003\u010e\u0003\u010f\u0003", + "\u010f\u0003\u010f\u0003\u010f\u0003\u010f\u0003\u010f\u0003\u010f\u0003", + "\u010f\u0003\u0110\u0003\u0110\u0003\u0110\u0003\u0110\u0003\u0110\u0003", + "\u0110\u0003\u0110\u0003\u0111\u0003\u0111\u0003\u0111\u0003\u0111\u0003", + "\u0111\u0003\u0111\u0003\u0111\u0003\u0112\u0003\u0112\u0003\u0112\u0003", + "\u0112\u0003\u0112\u0003\u0112\u0003\u0112\u0003\u0113\u0003\u0113\u0003", + "\u0113\u0003\u0113\u0003\u0113\u0003\u0113\u0003\u0113\u0003\u0113\u0003", + "\u0113\u0003\u0113\u0003\u0114\u0003\u0114\u0003\u0114\u0003\u0114\u0003", + "\u0115\u0003\u0115\u0003\u0115\u0003\u0115\u0003\u0115\u0003\u0115\u0003", + "\u0115\u0003\u0115\u0003\u0116\u0003\u0116\u0003\u0116\u0003\u0116\u0003", + "\u0116\u0003\u0116\u0003\u0116\u0003\u0116\u0003\u0116\u0003\u0116\u0003", + "\u0116\u0003\u0116\u0003\u0116\u0003\u0116\u0003\u0117\u0003\u0117\u0003", + "\u0117\u0003\u0117\u0003\u0117\u0003\u0117\u0003\u0118\u0003\u0118\u0003", + "\u0118\u0003\u0118\u0003\u0118\u0003\u0118\u0003\u0118\u0003\u0118\u0003", + "\u0118\u0003\u0118\u0003\u0118\u0003\u0119\u0003\u0119\u0003\u0119\u0003", + "\u0119\u0003\u0119\u0003\u0119\u0003\u0119\u0003\u0119\u0003\u0119\u0003", + "\u0119\u0003\u011a\u0003\u011a\u0003\u011a\u0003\u011a\u0003\u011a\u0003", + "\u011a\u0003\u011a\u0003\u011a\u0003\u011a\u0003\u011a\u0003\u011a\u0003", + "\u011b\u0003\u011b\u0003\u011b\u0003\u011b\u0003\u011b\u0003\u011b\u0003", + "\u011b\u0003\u011b\u0003\u011b\u0003\u011b\u0003\u011b\u0003\u011b\u0003", + "\u011b\u0003\u011c\u0003\u011c\u0003\u011c\u0003\u011c\u0003\u011c\u0003", + "\u011d\u0003\u011d\u0003\u011d\u0003\u011d\u0003\u011d\u0003\u011d\u0003", + "\u011d\u0003\u011d\u0003\u011d\u0003\u011d\u0003\u011e\u0003\u011e\u0003", + "\u011e\u0003\u011e\u0003\u011e\u0003\u011e\u0003\u011e\u0003\u011e\u0003", + "\u011f\u0003\u011f\u0003\u011f\u0003\u011f\u0003\u011f\u0003\u011f\u0003", + "\u0120\u0003\u0120\u0003\u0120\u0003\u0121\u0003\u0121\u0003\u0121\u0003", + "\u0121\u0003\u0122\u0003\u0122\u0003\u0122\u0003\u0122\u0003\u0122\u0003", + "\u0122\u0003\u0122\u0003\u0122\u0003\u0122\u0003\u0122\u0003\u0122\u0003", + "\u0122\u0003\u0123\u0003\u0123\u0003\u0123\u0003\u0123\u0003\u0123\u0003", + "\u0124\u0003\u0124\u0003\u0124\u0003\u0124\u0003\u0124\u0003\u0124\u0003", + "\u0124\u0003\u0124\u0003\u0124\u0003\u0125\u0003\u0125\u0003\u0125\u0003", + "\u0125\u0003\u0125\u0003\u0126\u0003\u0126\u0003\u0126\u0003\u0126\u0003", + "\u0126\u0003\u0126\u0003\u0127\u0003\u0127\u0003\u0127\u0003\u0127\u0003", + "\u0127\u0003\u0127\u0003\u0127\u0003\u0128\u0003\u0128\u0003\u0128\u0003", + "\u0128\u0003\u0128\u0003\u0128\u0003\u0128\u0003\u0129\u0003\u0129\u0003", + "\u0129\u0003\u012a\u0003\u012a\u0003\u012a\u0003\u012a\u0003\u012b\u0003", + "\u012b\u0003\u012b\u0003\u012b\u0003\u012b\u0003\u012b\u0003\u012c\u0003", + "\u012c\u0003\u012c\u0003\u012c\u0003\u012c\u0003\u012c\u0003\u012d\u0003", + "\u012d\u0003\u012d\u0003\u012d\u0003\u012d\u0003\u012d\u0003\u012d\u0003", + "\u012e\u0003\u012e\u0003\u012e\u0003\u012e\u0003\u012f\u0003\u012f\u0003", + "\u012f\u0003\u012f\u0003\u012f\u0003\u012f\u0003\u012f\u0003\u012f\u0003", + "\u0130\u0003\u0130\u0003\u0130\u0003\u0130\u0003\u0130\u0003\u0130\u0003", + "\u0130\u0003\u0130\u0003\u0130\u0003\u0131\u0003\u0131\u0003\u0131\u0003", + "\u0131\u0003\u0131\u0003\u0131\u0003\u0131\u0003\u0131\u0003\u0132\u0003", + "\u0132\u0003\u0132\u0003\u0132\u0003\u0132\u0003\u0132\u0003\u0132\u0003", + "\u0132\u0003\u0132\u0003\u0133\u0003\u0133\u0003\u0133\u0003\u0133\u0003", + "\u0133\u0003\u0134\u0003\u0134\u0003\u0134\u0003\u0134\u0003\u0134\u0003", + "\u0134\u0003\u0135\u0003\u0135\u0003\u0135\u0003\u0135\u0003\u0135\u0003", + "\u0135\u0003\u0136\u0003\u0136\u0003\u0136\u0003\u0136\u0003\u0136\u0003", + "\u0137\u0003\u0137\u0003\u0137\u0003\u0137\u0003\u0137\u0003\u0137\u0003", + "\u0137\u0003\u0137\u0003\u0138\u0003\u0138\u0003\u0138\u0003\u0138\u0003", + "\u0138\u0003\u0139\u0003\u0139\u0003\u0139\u0003\u0139\u0003\u0139\u0003", + "\u0139\u0003\u0139\u0003\u0139\u0003\u0139\u0003\u0139\u0003\u0139\u0003", + "\u013a\u0003\u013a\u0003\u013a\u0003\u013a\u0003\u013b\u0003\u013b\u0003", + "\u013b\u0003\u013b\u0003\u013c\u0003\u013c\u0003\u013c\u0003\u013c\u0003", + "\u013c\u0003\u013c\u0003\u013c\u0003\u013c\u0003\u013c\u0003\u013c\u0003", + "\u013c\u0003\u013c\u0003\u013c\u0003\u013c\u0003\u013c\u0003\u013d\u0003", + "\u013d\u0003\u013d\u0003\u013d\u0003\u013d\u0003\u013d\u0003\u013d\u0003", + "\u013d\u0003\u013d\u0003\u013d\u0003\u013e\u0003\u013e\u0003\u013e\u0003", + "\u013e\u0003\u013e\u0003\u013e\u0003\u013e\u0003\u013e\u0003\u013e\u0003", + "\u013e\u0003\u013e\u0003\u013e\u0003\u013e\u0003\u013f\u0003\u013f\u0003", + "\u013f\u0003\u013f\u0003\u013f\u0003\u013f\u0003\u013f\u0003\u013f\u0003", + "\u013f\u0003\u013f\u0003\u013f\u0003\u013f\u0003\u013f\u0003\u013f\u0003", + "\u013f\u0003\u013f\u0003\u013f\u0003\u013f\u0003\u0140\u0003\u0140\u0003", + "\u0140\u0003\u0140\u0003\u0140\u0003\u0140\u0003\u0140\u0003\u0140\u0003", + "\u0140\u0003\u0140\u0003\u0140\u0003\u0140\u0003\u0140\u0003\u0141\u0003", + "\u0141\u0003\u0141\u0003\u0141\u0003\u0141\u0003\u0141\u0003\u0141\u0003", + "\u0141\u0003\u0141\u0003\u0141\u0003\u0141\u0003\u0142\u0003\u0142\u0003", + "\u0142\u0003\u0142\u0003\u0142\u0003\u0142\u0003\u0142\u0003\u0142\u0003", + "\u0142\u0003\u0142\u0003\u0142\u0003\u0142\u0003\u0143\u0003\u0143\u0003", + "\u0143\u0003\u0143\u0003\u0144\u0003\u0144\u0003\u0144\u0003\u0144\u0003", + "\u0144\u0003\u0144\u0003\u0144\u0003\u0144\u0003\u0144\u0003\u0144\u0003", + "\u0144\u0003\u0145\u0003\u0145\u0003\u0145\u0003\u0145\u0003\u0145\u0003", + "\u0146\u0003\u0146\u0003\u0146\u0003\u0146\u0003\u0146\u0003\u0146\u0003", + "\u0146\u0003\u0146\u0003\u0146\u0003\u0146\u0003\u0146\u0003\u0146\u0003", + "\u0146\u0003\u0146\u0003\u0146\u0003\u0146\u0003\u0147\u0003\u0147\u0003", + "\u0147\u0003\u0147\u0003\u0147\u0003\u0147\u0003\u0147\u0003\u0147\u0003", + "\u0147\u0003\u0147\u0003\u0147\u0003\u0147\u0003\u0147\u0003\u0147\u0003", + "\u0147\u0003\u0147\u0003\u0148\u0003\u0148\u0003\u0148\u0003\u0148\u0003", + "\u0148\u0003\u0148\u0003\u0148\u0003\u0148\u0003\u0148\u0003\u0148\u0003", + "\u0148\u0003\u0148\u0003\u0148\u0003\u0149\u0003\u0149\u0003\u0149\u0003", + "\u0149\u0003\u0149\u0003\u0149\u0003\u0149\u0003\u0149\u0003\u0149\u0003", + "\u0149\u0003\u0149\u0003\u0149\u0003\u0149\u0003\u014a\u0003\u014a\u0003", + "\u014a\u0003\u014a\u0003\u014a\u0003\u014a\u0003\u014a\u0003\u014a\u0003", + "\u014a\u0003\u014a\u0003\u014a\u0003\u014a\u0003\u014a\u0003\u014a\u0003", + "\u014b\u0003\u014b\u0003\u014b\u0003\u014b\u0003\u014b\u0003\u014b\u0003", + "\u014b\u0003\u014b\u0003\u014b\u0003\u014b\u0003\u014b\u0003\u014b\u0003", + "\u014b\u0003\u014b\u0003\u014c\u0003\u014c\u0003\u014c\u0003\u014c\u0003", + "\u014c\u0003\u014c\u0003\u014c\u0003\u014c\u0003\u014c\u0003\u014c\u0003", + "\u014c\u0003\u014d\u0003\u014d\u0003\u014d\u0003\u014d\u0003\u014d\u0003", + "\u014d\u0003\u014d\u0003\u014d\u0003\u014d\u0003\u014e\u0003\u014e\u0003", + "\u014e\u0003\u014e\u0003\u014e\u0003\u014f\u0003\u014f\u0003\u014f\u0003", + "\u014f\u0003\u014f\u0003\u014f\u0003\u014f\u0003\u014f\u0003\u014f\u0003", + "\u014f\u0003\u014f\u0003\u0150\u0003\u0150\u0003\u0150\u0003\u0150\u0003", + "\u0150\u0003\u0150\u0003\u0151\u0003\u0151\u0003\u0151\u0003\u0151\u0003", + "\u0151\u0003\u0151\u0003\u0151\u0003\u0151\u0003\u0152\u0003\u0152\u0003", + "\u0152\u0003\u0152\u0003\u0152\u0003\u0152\u0003\u0152\u0003\u0152\u0003", + "\u0152\u0003\u0153\u0003\u0153\u0003\u0153\u0003\u0153\u0003\u0153\u0003", + "\u0154\u0003\u0154\u0003\u0155\u0003\u0155\u0003\u0156\u0003\u0156\u0003", + "\u0157\u0003\u0157\u0003\u0157\u0003\u0158\u0003\u0158\u0003\u0159\u0003", + "\u0159\u0003\u015a\u0003\u015a\u0003\u015a\u0003\u015b\u0003\u015b\u0003", + "\u015c\u0003\u015c\u0003\u015c\u0003\u015d\u0003\u015d\u0003\u015e\u0003", + "\u015e\u0003\u015f\u0003\u015f\u0003\u015f\u0003\u0160\u0003\u0160\u0003", + "\u0160\u0003\u0161\u0003\u0161\u0003\u0162\u0003\u0162\u0003\u0162\u0003", + "\u0163\u0003\u0163\u0003\u0164\u0003\u0164\u0003\u0164\u0003\u0165\u0003", + "\u0165\u0003\u0166\u0003\u0166\u0003\u0167\u0003\u0167\u0003\u0168\u0003", + "\u0168\u0003\u0169\u0003\u0169\u0003\u016a\u0003\u016a\u0003\u016b\u0003", + "\u016b\u0003\u016c\u0003\u016c\u0003\u016d\u0003\u016d\u0003\u016e\u0003", + "\u016e\u0003\u016f\u0003\u016f\u0003\u0170\u0003\u0170\u0003\u0171\u0003", + "\u0171\u0003\u0171\u0003\u0171\u0003\u0171\u0003\u0171\u0007\u0171\u0d5c", + "\n\u0171\f\u0171\u000e\u0171\u0d5f\u000b\u0171\u0003\u0171\u0003\u0171", + "\u0003\u0172\u0003\u0172\u0003\u0172\u0007\u0172\u0d66\n\u0172\f\u0172", + "\u000e\u0172\u0d69\u000b\u0172\u0003\u0172\u0003\u0172\u0003\u0173\u0006", + "\u0173\u0d6e\n\u0173\r\u0173\u000e\u0173\u0d6f\u0003\u0174\u0006\u0174", + "\u0d73\n\u0174\r\u0174\u000e\u0174\u0d74\u0003\u0174\u0003\u0174\u0003", + "\u0174\u0007\u0174\u0d7a\n\u0174\f\u0174\u000e\u0174\u0d7d\u000b\u0174", + "\u0003\u0174\u0003\u0174\u0006\u0174\u0d81\n\u0174\r\u0174\u000e\u0174", + "\u0d82\u0005\u0174\u0d85\n\u0174\u0003\u0175\u0006\u0175\u0d88\n\u0175", + "\r\u0175\u000e\u0175\u0d89\u0003\u0175\u0003\u0175\u0003\u0176\u0003", + "\u0176\u0003\u0176\u0003\u0176\u0007\u0176\u0d92\n\u0176\f\u0176\u000e", + "\u0176\u0d95\u000b\u0176\u0003\u0176\u0003\u0176\u0003\u0176\u0003\u0176", + "\u0003\u0176\u0003\u0177\u0003\u0177\u0003\u0177\u0003\u0177\u0005\u0177", + "\u0da0\n\u0177\u0003\u0177\u0007\u0177\u0da3\n\u0177\f\u0177\u000e\u0177", + "\u0da6\u000b\u0177\u0003\u0177\u0005\u0177\u0da9\n\u0177\u0003\u0177", + "\u0003\u0177\u0003\u0177\u0003\u0177\u0003\u0178\u0003\u0178\u0003\u0178", + "\u0005\u0178\u0db2\n\u0178\u0005\u0178\u0db4\n\u0178\u0003\u0178\u0003", + "\u0178\u0003\u0178\u0007\u0178\u0db9\n\u0178\f\u0178\u000e\u0178\u0dbc", + "\u000b\u0178\u0003\u0179\u0003\u0179\u0003\u0179\u0007\u0179\u0dc1\n", + "\u0179\f\u0179\u000e\u0179\u0dc4\u000b\u0179\u0003\u0179\u0003\u0179", + "\u0003\u017a\u0003\u017a\u0003\u017a\u0003\u017a\u0007\u017a\u0dcc\n", + "\u017a\f\u017a\u000e\u017a\u0dcf\u000b\u017a\u0003\u017a\u0003\u017a", + "\u0003\u017a\u0007\u017a\u0dd4\n\u017a\f\u017a\u000e\u017a\u0dd7\u000b", + "\u017a\u0003\u017a\u0003\u017a\u0003\u017a\u0003\u017a\u0003\u017a\u0006", + "\u017a\u0dde\n\u017a\r\u017a\u000e\u017a\u0ddf\u0003\u017a\u0003\u017a", + "\u0007\u017a\u0de4\n\u017a\f\u017a\u000e\u017a\u0de7\u000b\u017a\u0003", + "\u017a\u0003\u017a\u0003\u017a\u0007\u017a\u0dec\n\u017a\f\u017a\u000e", + "\u017a\u0def\u000b\u017a\u0003\u017a\u0003\u017a\u0003\u017a\u0007\u017a", + "\u0df4\n\u017a\f\u017a\u000e\u017a\u0df7\u000b\u017a\u0003\u017a\u0005", + "\u017a\u0dfa\n\u017a\u0003\u017b\u0003\u017b\u0003\u017b\u0003\u017b", + "\u0005\u017b\u0e00\n\u017b\u0003\u017c\u0003\u017c\u0003\u017d\u0003", + "\u017d\u0003\u017e\u0003\u017e\u0003\u017f\u0003\u017f\u0003\u0180\u0003", + "\u0180\u0003\u0181\u0003\u0181\u0003\u0182\u0003\u0182\u0003\u0183\u0003", + "\u0183\u0003\u0184\u0003\u0184\u0003\u0185\u0003\u0185\u0003\u0186\u0003", + "\u0186\u0003\u0187\u0003\u0187\u0003\u0188\u0003\u0188\u0003\u0189\u0003", + "\u0189\u0003\u018a\u0003\u018a\u0003\u018b\u0003\u018b\u0003\u018c\u0003", + "\u018c\u0003\u018d\u0003\u018d\u0003\u018e\u0003\u018e\u0003\u018f\u0003", + "\u018f\u0003\u0190\u0003\u0190\u0003\u0191\u0003\u0191\u0003\u0192\u0003", + "\u0192\u0003\u0193\u0003\u0193\u0003\u0194\u0003\u0194\u0003\u0195\u0003", + "\u0195\u0003\u0196\u0003\u0196\u0003\u0197\u0003\u0197\t\u0d67\u0d93", + "\u0da4\u0dd5\u0de5\u0ded\u0df5\u0002\u0198\u0003\u0003\u0005\u0004\u0007", + "\u0005\t\u0006\u000b\u0007\r\b\u000f\t\u0011\n\u0013\u000b\u0015\f\u0017", + "\r\u0019\u000e\u001b\u000f\u001d\u0010\u001f\u0011!\u0012#\u0013%\u0014", + "\'\u0015)\u0016+\u0017-\u0018/\u00191\u001a3\u001b5\u001c7\u001d9\u001e", + ";\u001f= ?!A\"C#E$G%I&K\'M(O)Q*S+U,W-Y.[/]0_1a2c3e4g5i6k7m8o9q:s;u<", + "w=y>{?}@\u007fA\u0081B\u0083C\u0085D\u0087E\u0089F\u008bG\u008dH\u008f", + "I\u0091J\u0093K\u0095L\u0097M\u0099N\u009bO\u009dP\u009fQ\u00a1R\u00a3", + "S\u00a5T\u00a7U\u00a9V\u00abW\u00adX\u00afY\u00b1Z\u00b3[\u00b5\\\u00b7", + "]\u00b9^\u00bb_\u00bd`\u00bfa\u00c1b\u00c3c\u00c5d\u00c7e\u00c9f\u00cb", + "g\u00cdh\u00cfi\u00d1j\u00d3k\u00d5l\u00d7m\u00d9n\u00dbo\u00ddp\u00df", + "q\u00e1r\u00e3s\u00e5t\u00e7u\u00e9v\u00ebw\u00edx\u00efy\u00f1z\u00f3", + "{\u00f5|\u00f7}\u00f9~\u00fb\u007f\u00fd\u0080\u00ff\u0081\u0101\u0082", + "\u0103\u0083\u0105\u0084\u0107\u0085\u0109\u0086\u010b\u0087\u010d\u0088", + "\u010f\u0089\u0111\u008a\u0113\u008b\u0115\u008c\u0117\u008d\u0119\u008e", + "\u011b\u008f\u011d\u0090\u011f\u0091\u0121\u0092\u0123\u0093\u0125\u0094", + "\u0127\u0095\u0129\u0096\u012b\u0097\u012d\u0098\u012f\u0099\u0131\u009a", + "\u0133\u009b\u0135\u009c\u0137\u009d\u0139\u009e\u013b\u009f\u013d\u00a0", + "\u013f\u00a1\u0141\u00a2\u0143\u00a3\u0145\u00a4\u0147\u00a5\u0149\u00a6", + "\u014b\u00a7\u014d\u00a8\u014f\u00a9\u0151\u00aa\u0153\u00ab\u0155\u00ac", + "\u0157\u00ad\u0159\u00ae\u015b\u00af\u015d\u00b0\u015f\u00b1\u0161\u00b2", + "\u0163\u00b3\u0165\u00b4\u0167\u00b5\u0169\u00b6\u016b\u00b7\u016d\u00b8", + "\u016f\u00b9\u0171\u00ba\u0173\u00bb\u0175\u00bc\u0177\u00bd\u0179\u00be", + "\u017b\u00bf\u017d\u00c0\u017f\u00c1\u0181\u00c2\u0183\u00c3\u0185\u00c4", + "\u0187\u00c5\u0189\u00c6\u018b\u00c7\u018d\u00c8\u018f\u00c9\u0191\u00ca", + "\u0193\u00cb\u0195\u00cc\u0197\u00cd\u0199\u00ce\u019b\u00cf\u019d\u00d0", + "\u019f\u00d1\u01a1\u00d2\u01a3\u00d3\u01a5\u00d4\u01a7\u00d5\u01a9\u00d6", + "\u01ab\u00d7\u01ad\u00d8\u01af\u00d9\u01b1\u00da\u01b3\u00db\u01b5\u00dc", + "\u01b7\u00dd\u01b9\u00de\u01bb\u00df\u01bd\u00e0\u01bf\u00e1\u01c1\u00e2", + "\u01c3\u00e3\u01c5\u00e4\u01c7\u00e5\u01c9\u00e6\u01cb\u00e7\u01cd\u00e8", + "\u01cf\u00e9\u01d1\u00ea\u01d3\u00eb\u01d5\u00ec\u01d7\u00ed\u01d9\u00ee", + "\u01db\u00ef\u01dd\u00f0\u01df\u00f1\u01e1\u00f2\u01e3\u00f3\u01e5\u00f4", + "\u01e7\u00f5\u01e9\u00f6\u01eb\u00f7\u01ed\u00f8\u01ef\u00f9\u01f1\u00fa", + "\u01f3\u00fb\u01f5\u00fc\u01f7\u00fd\u01f9\u00fe\u01fb\u00ff\u01fd\u0100", + "\u01ff\u0101\u0201\u0102\u0203\u0103\u0205\u0104\u0207\u0105\u0209\u0106", + "\u020b\u0107\u020d\u0108\u020f\u0109\u0211\u010a\u0213\u010b\u0215\u010c", + "\u0217\u010d\u0219\u010e\u021b\u010f\u021d\u0110\u021f\u0111\u0221\u0112", + "\u0223\u0113\u0225\u0114\u0227\u0115\u0229\u0116\u022b\u0117\u022d\u0118", + "\u022f\u0119\u0231\u011a\u0233\u011b\u0235\u011c\u0237\u011d\u0239\u011e", + "\u023b\u011f\u023d\u0120\u023f\u0121\u0241\u0122\u0243\u0123\u0245\u0124", + "\u0247\u0125\u0249\u0126\u024b\u0127\u024d\u0128\u024f\u0129\u0251\u012a", + "\u0253\u012b\u0255\u012c\u0257\u012d\u0259\u012e\u025b\u012f\u025d\u0130", + "\u025f\u0131\u0261\u0132\u0263\u0133\u0265\u0134\u0267\u0135\u0269\u0136", + "\u026b\u0137\u026d\u0138\u026f\u0139\u0271\u013a\u0273\u013b\u0275\u013c", + "\u0277\u013d\u0279\u013e\u027b\u013f\u027d\u0140\u027f\u0141\u0281\u0142", + "\u0283\u0143\u0285\u0144\u0287\u0145\u0289\u0146\u028b\u0147\u028d\u0148", + "\u028f\u0149\u0291\u014a\u0293\u014b\u0295\u014c\u0297\u014d\u0299\u014e", + "\u029b\u014f\u029d\u0150\u029f\u0151\u02a1\u0152\u02a3\u0153\u02a5\u0154", + "\u02a7\u0155\u02a9\u0156\u02ab\u0157\u02ad\u0158\u02af\u0159\u02b1\u015a", + "\u02b3\u015b\u02b5\u015c\u02b7\u015d\u02b9\u015e\u02bb\u015f\u02bd\u0160", + "\u02bf\u0161\u02c1\u0162\u02c3\u0163\u02c5\u0164\u02c7\u0165\u02c9\u0166", + "\u02cb\u0167\u02cd\u0168\u02cf\u0169\u02d1\u016a\u02d3\u016b\u02d5\u016c", + "\u02d7\u016d\u02d9\u016e\u02db\u016f\u02dd\u0170\u02df\u0171\u02e1\u0172", + "\u02e3\u0173\u02e5\u0174\u02e7\u0175\u02e9\u0176\u02eb\u0177\u02ed\u0178", + "\u02ef\u0179\u02f1\u017a\u02f3\u0002\u02f5\u0002\u02f7\u0002\u02f9\u0002", + "\u02fb\u0002\u02fd\u0002\u02ff\u0002\u0301\u0002\u0303\u0002\u0305\u0002", + "\u0307\u0002\u0309\u0002\u030b\u0002\u030d\u0002\u030f\u0002\u0311\u0002", + "\u0313\u0002\u0315\u0002\u0317\u0002\u0319\u0002\u031b\u0002\u031d\u0002", + "\u031f\u0002\u0321\u0002\u0323\u0002\u0325\u0002\u0327\u0002\u0329\u0002", + "\u032b\u0002\u032d\u0002\u0003\u0002\"\u0003\u0002))\u0003\u000200\u0004", + "\u0002C\\c|\u0006\u0002%&<\u0003\u0002", + "\u0002\u0002\u0409\u040a\u0005\u02ff\u0180\u0002\u040a\u040b\u0005\u02fb", + "\u017e\u0002\u040b\u040c\u0005\u031f\u0190\u0002\u040c\u040d\u0005\u0303", + "\u0182\u0002\u040d\u040e\u0005\u031f\u0190\u0002\u040e\u040f\u0005\u0319", + "\u018d\u0002\u040f\u0410\u0005\u0303\u0182\u0002\u0410\u0411\u0005\u02ff", + "\u0180\u0002\u0411\u0412\u0005\u030b\u0186\u0002\u0412\u0413\u0005\u0305", + "\u0183\u0002\u0413\u0414\u0005\u030b\u0186\u0002\u0414\u0415\u0005\u02ff", + "\u0180\u0002\u0415@\u0003\u0002\u0002\u0002\u0416\u0417\u0005\u02ff", + "\u0180\u0002\u0417\u0418\u0005\u02fb\u017e\u0002\u0418\u0419\u0005\u031f", + "\u0190\u0002\u0419\u041a\u0005\u0321\u0191\u0002\u041aB\u0003\u0002", + "\u0002\u0002\u041b\u041c\u0005\u02ff\u0180\u0002\u041c\u041d\u0005\u0309", + "\u0185\u0002\u041d\u041e\u0005\u02fb\u017e\u0002\u041e\u041f\u0005\u031d", + "\u018f\u0002\u041fD\u0003\u0002\u0002\u0002\u0420\u0421\u0005\u02ff", + "\u0180\u0002\u0421\u0422\u0005\u0309\u0185\u0002\u0422\u0423\u0005\u02fb", + "\u017e\u0002\u0423\u0424\u0005\u031d\u018f\u0002\u0424\u0425\u0005\u02fb", + "\u017e\u0002\u0425\u0426\u0005\u02ff\u0180\u0002\u0426\u0427\u0005\u0321", + "\u0191\u0002\u0427\u0428\u0005\u0303\u0182\u0002\u0428\u0429\u0005\u031d", + "\u018f\u0002\u0429F\u0003\u0002\u0002\u0002\u042a\u042b\u0005\u02ff", + "\u0180\u0002\u042b\u042c\u0005\u0309\u0185\u0002\u042c\u042d\u0005\u02fb", + "\u017e\u0002\u042d\u042e\u0005\u031d\u018f\u0002\u042e\u042f\u0005\u031f", + "\u0190\u0002\u042f\u0430\u0005\u0303\u0182\u0002\u0430\u0431\u0005\u0321", + "\u0191\u0002\u0431H\u0003\u0002\u0002\u0002\u0432\u0433\u0005\u02ff", + "\u0180\u0002\u0433\u0434\u0005\u0311\u0189\u0002\u0434\u0435\u0005\u030b", + "\u0186\u0002\u0435\u0436\u0005\u0303\u0182\u0002\u0436\u0437\u0005\u0315", + "\u018b\u0002\u0437\u0438\u0005\u0321\u0191\u0002\u0438J\u0003\u0002", + "\u0002\u0002\u0439\u043a\u0005\u02ff\u0180\u0002\u043a\u043b\u0005\u0311", + "\u0189\u0002\u043b\u043c\u0005\u0317\u018c\u0002\u043c\u043d\u0005\u031f", + "\u0190\u0002\u043d\u043e\u0005\u0303\u0182\u0002\u043eL\u0003\u0002", + "\u0002\u0002\u043f\u0440\u0005\u02ff\u0180\u0002\u0440\u0441\u0005\u0311", + "\u0189\u0002\u0441\u0442\u0005\u0323\u0192\u0002\u0442\u0443\u0005\u031f", + "\u0190\u0002\u0443\u0444\u0005\u0321\u0191\u0002\u0444\u0445\u0005\u0303", + "\u0182\u0002\u0445\u0446\u0005\u031d\u018f\u0002\u0446\u0447\u0005\u0303", + "\u0182\u0002\u0447\u0448\u0005\u0301\u0181\u0002\u0448N\u0003\u0002", + "\u0002\u0002\u0449\u044a\u0005\u02ff\u0180\u0002\u044a\u044b\u0005\u0313", + "\u018a\u0002\u044b\u044c\u0005\u0319\u018d\u0002\u044cP\u0003\u0002", + "\u0002\u0002\u044d\u044e\u0005\u02ff\u0180\u0002\u044e\u044f\u0005\u0317", + "\u018c\u0002\u044f\u0450\u0005\u0311\u0189\u0002\u0450\u0451\u0005\u0311", + "\u0189\u0002\u0451\u0452\u0005\u0303\u0182\u0002\u0452\u0453\u0005\u02ff", + "\u0180\u0002\u0453\u0454\u0005\u0321\u0191\u0002\u0454R\u0003\u0002", + "\u0002\u0002\u0455\u0456\u0005\u02ff\u0180\u0002\u0456\u0457\u0005\u0317", + "\u018c\u0002\u0457\u0458\u0005\u0311\u0189\u0002\u0458\u0459\u0005\u0311", + "\u0189\u0002\u0459\u045a\u0005\u0303\u0182\u0002\u045a\u045b\u0005\u02ff", + "\u0180\u0002\u045b\u045c\u0005\u0321\u0191\u0002\u045c\u045d\u0005\u030b", + "\u0186\u0002\u045d\u045e\u0005\u0317\u018c\u0002\u045e\u045f\u0005\u0315", + "\u018b\u0002\u045fT\u0003\u0002\u0002\u0002\u0460\u0461\u0005\u02ff", + "\u0180\u0002\u0461\u0462\u0005\u0317\u018c\u0002\u0462\u0463\u0005\u0311", + "\u0189\u0002\u0463\u0464\u0005\u0323\u0192\u0002\u0464\u0465\u0005\u0313", + "\u018a\u0002\u0465\u0466\u0005\u0315\u018b\u0002\u0466V\u0003\u0002", + "\u0002\u0002\u0467\u0468\u0005\u02ff\u0180\u0002\u0468\u0469\u0005\u0317", + "\u018c\u0002\u0469\u046a\u0005\u0313\u018a\u0002\u046a\u046b\u0005\u0313", + "\u018a\u0002\u046b\u046c\u0005\u0303\u0182\u0002\u046c\u046d\u0005\u0315", + "\u018b\u0002\u046d\u046e\u0005\u0321\u0191\u0002\u046eX\u0003\u0002", + "\u0002\u0002\u046f\u0470\u0005\u02ff\u0180\u0002\u0470\u0471\u0005\u0317", + "\u018c\u0002\u0471\u0472\u0005\u0315\u018b\u0002\u0472\u0473\u0005\u031f", + "\u0190\u0002\u0473\u0474\u0005\u0321\u0191\u0002\u0474\u0475\u0005\u02fb", + "\u017e\u0002\u0475\u0476\u0005\u0315\u018b\u0002\u0476\u0477\u0005\u0321", + "\u0191\u0002\u0477Z\u0003\u0002\u0002\u0002\u0478\u0479\u0005\u02ff", + "\u0180\u0002\u0479\u047a\u0005\u0317\u018c\u0002\u047a\u047b\u0005\u0313", + "\u018a\u0002\u047b\u047c\u0005\u0313\u018a\u0002\u047c\u047d\u0005\u030b", + "\u0186\u0002\u047d\u047e\u0005\u0321\u0191\u0002\u047e\\\u0003\u0002", + "\u0002\u0002\u047f\u0480\u0005\u02ff\u0180\u0002\u0480\u0481\u0005\u0317", + "\u018c\u0002\u0481\u0482\u0005\u0313\u018a\u0002\u0482\u0483\u0005\u0319", + "\u018d\u0002\u0483\u0484\u0005\u031d\u018f\u0002\u0484\u0485\u0005\u0303", + "\u0182\u0002\u0485\u0486\u0005\u031f\u0190\u0002\u0486\u0487\u0005\u031f", + "\u0190\u0002\u0487^\u0003\u0002\u0002\u0002\u0488\u0489\u0005\u02ff", + "\u0180\u0002\u0489\u048a\u0005\u0317\u018c\u0002\u048a\u048b\u0005\u0315", + "\u018b\u0002\u048b\u048c\u0005\u02ff\u0180\u0002\u048c\u048d\u0005\u02fb", + "\u017e\u0002\u048d\u048e\u0005\u0321\u0191\u0002\u048e`\u0003\u0002", + "\u0002\u0002\u048f\u0490\u0005\u02ff\u0180\u0002\u0490\u0491\u0005\u0317", + "\u018c\u0002\u0491\u0492\u0005\u0315\u018b\u0002\u0492\u0493\u0005\u0301", + "\u0181\u0002\u0493\u0494\u0005\u030b\u0186\u0002\u0494\u0495\u0005\u0321", + "\u0191\u0002\u0495\u0496\u0005\u030b\u0186\u0002\u0496\u0497\u0005\u0317", + "\u018c\u0002\u0497\u0498\u0005\u0315\u018b\u0002\u0498b\u0003\u0002", + "\u0002\u0002\u0499\u049a\u0005\u02ff\u0180\u0002\u049a\u049b\u0005\u0317", + "\u018c\u0002\u049b\u049c\u0005\u0315\u018b\u0002\u049c\u049d\u0005\u031f", + "\u0190\u0002\u049d\u049e\u0005\u0321\u0191\u0002\u049e\u049f\u0005\u031d", + "\u018f\u0002\u049f\u04a0\u0005\u02fb\u017e\u0002\u04a0\u04a1\u0005\u030b", + "\u0186\u0002\u04a1\u04a2\u0005\u0315\u018b\u0002\u04a2\u04a3\u0005\u0321", + "\u0191\u0002\u04a3d\u0003\u0002\u0002\u0002\u04a4\u04a5\u0005\u02ff", + "\u0180\u0002\u04a5\u04a6\u0005\u0317\u018c\u0002\u04a6\u04a7\u0005\u0315", + "\u018b\u0002\u04a7\u04a8\u0005\u0321\u0191\u0002\u04a8\u04a9\u0005\u030b", + "\u0186\u0002\u04a9\u04aa\u0005\u0315\u018b\u0002\u04aa\u04ab\u0005\u0323", + "\u0192\u0002\u04ab\u04ac\u0005\u0303\u0182\u0002\u04acf\u0003\u0002", + "\u0002\u0002\u04ad\u04ae\u0005\u02ff\u0180\u0002\u04ae\u04af\u0005\u0317", + "\u018c\u0002\u04af\u04b0\u0005\u0319\u018d\u0002\u04b0\u04b1\u0005\u032b", + "\u0196\u0002\u04b1h\u0003\u0002\u0002\u0002\u04b2\u04b3\u0005\u02ff", + "\u0180\u0002\u04b3\u04b4\u0005\u0317\u018c\u0002\u04b4\u04b5\u0005\u0323", + "\u0192\u0002\u04b5\u04b6\u0005\u0315\u018b\u0002\u04b6\u04b7\u0005\u0321", + "\u0191\u0002\u04b7j\u0003\u0002\u0002\u0002\u04b8\u04b9\u0005\u02ff", + "\u0180\u0002\u04b9\u04ba\u0005\u0317\u018c\u0002\u04ba\u04bb\u0005\u0323", + "\u0192\u0002\u04bb\u04bc\u0005\u0315\u018b\u0002\u04bc\u04bd\u0005\u0321", + "\u0191\u0002\u04bd\u04be\u0007a\u0002\u0002\u04be\u04bf\u0005\u02fd", + "\u017f\u0002\u04bf\u04c0\u0005\u030b\u0186\u0002\u04c0\u04c1\u0005\u0307", + "\u0184\u0002\u04c1l\u0003\u0002\u0002\u0002\u04c2\u04c3\u0005\u02ff", + "\u0180\u0002\u04c3\u04c4\u0005\u031d\u018f\u0002\u04c4\u04c5\u0005\u0303", + "\u0182\u0002\u04c5\u04c6\u0005\u02fb\u017e\u0002\u04c6\u04c7\u0005\u0321", + "\u0191\u0002\u04c7\u04c8\u0005\u0303\u0182\u0002\u04c8n\u0003\u0002", + "\u0002\u0002\u04c9\u04ca\u0005\u02ff\u0180\u0002\u04ca\u04cb\u0005\u031d", + "\u018f\u0002\u04cb\u04cc\u0005\u0303\u0182\u0002\u04cc\u04cd\u0005\u02fb", + "\u017e\u0002\u04cd\u04ce\u0005\u0321\u0191\u0002\u04ce\u04cf\u0005\u030b", + "\u0186\u0002\u04cf\u04d0\u0005\u0317\u018c\u0002\u04d0\u04d1\u0005\u0315", + "\u018b\u0002\u04d1p\u0003\u0002\u0002\u0002\u04d2\u04d3\u0005\u02ff", + "\u0180\u0002\u04d3\u04d4\u0005\u031d\u018f\u0002\u04d4\u04d5\u0005\u0303", + "\u0182\u0002\u04d5\u04d6\u0005\u02fb\u017e\u0002\u04d6\u04d7\u0005\u0321", + "\u0191\u0002\u04d7\u04d8\u0005\u0317\u018c\u0002\u04d8\u04d9\u0005\u031d", + "\u018f\u0002\u04d9r\u0003\u0002\u0002\u0002\u04da\u04db\u0005\u02ff", + "\u0180\u0002\u04db\u04dc\u0005\u031f\u0190\u0002\u04dct\u0003\u0002", + "\u0002\u0002\u04dd\u04de\u0005\u02ff\u0180\u0002\u04de\u04df\u0005\u0323", + "\u0192\u0002\u04df\u04e0\u0005\u031d\u018f\u0002\u04e0\u04e1\u0005\u031d", + "\u018f\u0002\u04e1\u04e2\u0005\u0303\u0182\u0002\u04e2\u04e3\u0005\u0315", + "\u018b\u0002\u04e3\u04e4\u0005\u0321\u0191\u0002\u04e4v\u0003\u0002", + "\u0002\u0002\u04e5\u04e6\u0005\u02ff\u0180\u0002\u04e6\u04e7\u0005\u0323", + "\u0192\u0002\u04e7\u04e8\u0005\u031d\u018f\u0002\u04e8\u04e9\u0005\u031d", + "\u018f\u0002\u04e9\u04ea\u0005\u0303\u0182\u0002\u04ea\u04eb\u0005\u0315", + "\u018b\u0002\u04eb\u04ec\u0005\u0321\u0191\u0002\u04ec\u04ed\u0007a", + "\u0002\u0002\u04ed\u04ee\u0005\u031f\u0190\u0002\u04ee\u04ef\u0005\u02ff", + "\u0180\u0002\u04ef\u04f0\u0005\u0309\u0185\u0002\u04f0\u04f1\u0005\u0303", + "\u0182\u0002\u04f1\u04f2\u0005\u0313\u018a\u0002\u04f2\u04f3\u0005\u02fb", + "\u017e\u0002\u04f3x\u0003\u0002\u0002\u0002\u04f4\u04f5\u0005\u02ff", + "\u0180\u0002\u04f5\u04f6\u0005\u0323\u0192\u0002\u04f6\u04f7\u0005\u031d", + "\u018f\u0002\u04f7\u04f8\u0005\u031f\u0190\u0002\u04f8\u04f9\u0005\u0317", + "\u018c\u0002\u04f9\u04fa\u0005\u031d\u018f\u0002\u04faz\u0003\u0002", + "\u0002\u0002\u04fb\u04fc\u0005\u0301\u0181\u0002\u04fc\u04fd\u0005\u02fb", + "\u017e\u0002\u04fd\u04fe\u0005\u0321\u0191\u0002\u04fe\u04ff\u0005\u02fb", + "\u017e\u0002\u04ff\u0500\u0005\u02fd\u017f\u0002\u0500\u0501\u0005\u02fb", + "\u017e\u0002\u0501\u0502\u0005\u031f\u0190\u0002\u0502\u0503\u0005\u0303", + "\u0182\u0002\u0503|\u0003\u0002\u0002\u0002\u0504\u0505\u0005\u0301", + "\u0181\u0002\u0505\u0506\u0005\u02fb\u017e\u0002\u0506\u0507\u0005\u0321", + "\u0191\u0002\u0507\u0508\u0005\u02fb\u017e\u0002\u0508~\u0003\u0002", + "\u0002\u0002\u0509\u050a\u0005\u0301\u0181\u0002\u050a\u050b\u0005\u02fb", + "\u017e\u0002\u050b\u050c\u0005\u0321\u0191\u0002\u050c\u050d\u0005\u0303", + "\u0182\u0002\u050d\u0080\u0003\u0002\u0002\u0002\u050e\u050f\u0005\u0301", + "\u0181\u0002\u050f\u0510\u0005\u02fb\u017e\u0002\u0510\u0511\u0005\u0321", + "\u0191\u0002\u0511\u0512\u0005\u0303\u0182\u0002\u0512\u0513\u0005\u0321", + "\u0191\u0002\u0513\u0514\u0005\u030b\u0186\u0002\u0514\u0515\u0005\u0313", + "\u018a\u0002\u0515\u0516\u0005\u0303\u0182\u0002\u0516\u0082\u0003\u0002", + "\u0002\u0002\u0517\u0518\u0005\u0301\u0181\u0002\u0518\u0519\u0005\u02fb", + "\u017e\u0002\u0519\u051a\u0005\u032b\u0196\u0002\u051a\u0084\u0003\u0002", + "\u0002\u0002\u051b\u051c\u0005\u0301\u0181\u0002\u051c\u051d\u0005\u02fb", + "\u017e\u0002\u051d\u051e\u0005\u032b\u0196\u0002\u051e\u051f\u0005\u031f", + "\u0190\u0002\u051f\u0086\u0003\u0002\u0002\u0002\u0520\u0521\u0005\u0301", + "\u0181\u0002\u0521\u0522\u0005\u0303\u0182\u0002\u0522\u0523\u0005\u02ff", + "\u0180\u0002\u0523\u0088\u0003\u0002\u0002\u0002\u0524\u0525\u0005\u0301", + "\u0181\u0002\u0525\u0526\u0005\u0303\u0182\u0002\u0526\u0527\u0005\u02ff", + "\u0180\u0002\u0527\u0528\u0005\u030b\u0186\u0002\u0528\u0529\u0005\u0313", + "\u018a\u0002\u0529\u052a\u0005\u02fb\u017e\u0002\u052a\u052b\u0005\u0311", + "\u0189\u0002\u052b\u008a\u0003\u0002\u0002\u0002\u052c\u052d\u0005\u0301", + "\u0181\u0002\u052d\u052e\u0005\u0303\u0182\u0002\u052e\u052f\u0005\u02ff", + "\u0180\u0002\u052f\u0530\u0005\u0311\u0189\u0002\u0530\u0531\u0005\u02fb", + "\u017e\u0002\u0531\u0532\u0005\u031d\u018f\u0002\u0532\u0533\u0005\u0303", + "\u0182\u0002\u0533\u008c\u0003\u0002\u0002\u0002\u0534\u0535\u0005\u0301", + "\u0181\u0002\u0535\u0536\u0005\u0303\u0182\u0002\u0536\u0537\u0005\u0305", + "\u0183\u0002\u0537\u0538\u0005\u02fb\u017e\u0002\u0538\u0539\u0005\u0323", + "\u0192\u0002\u0539\u053a\u0005\u0311\u0189\u0002\u053a\u053b\u0005\u0321", + "\u0191\u0002\u053b\u008e\u0003\u0002\u0002\u0002\u053c\u053d\u0005\u0301", + "\u0181\u0002\u053d\u053e\u0005\u0303\u0182\u0002\u053e\u053f\u0005\u0305", + "\u0183\u0002\u053f\u0540\u0005\u0303\u0182\u0002\u0540\u0541\u0005\u031d", + "\u018f\u0002\u0541\u0542\u0005\u031d\u018f\u0002\u0542\u0543\u0005\u0303", + "\u0182\u0002\u0543\u0544\u0005\u0301\u0181\u0002\u0544\u0090\u0003\u0002", + "\u0002\u0002\u0545\u0546\u0005\u0301\u0181\u0002\u0546\u0547\u0005\u0303", + "\u0182\u0002\u0547\u0548\u0005\u0305\u0183\u0002\u0548\u0549\u0005\u030b", + "\u0186\u0002\u0549\u054a\u0005\u0315\u018b\u0002\u054a\u054b\u0005\u0303", + "\u0182\u0002\u054b\u054c\u0005\u0301\u0181\u0002\u054c\u0092\u0003\u0002", + "\u0002\u0002\u054d\u054e\u0005\u0301\u0181\u0002\u054e\u054f\u0005\u0303", + "\u0182\u0002\u054f\u0550\u0005\u0305\u0183\u0002\u0550\u0551\u0005\u030b", + "\u0186\u0002\u0551\u0552\u0005\u0315\u018b\u0002\u0552\u0553\u0005\u0303", + "\u0182\u0002\u0553\u0554\u0005\u031d\u018f\u0002\u0554\u0094\u0003\u0002", + "\u0002\u0002\u0555\u0556\u0005\u0301\u0181\u0002\u0556\u0557\u0005\u0303", + "\u0182\u0002\u0557\u0558\u0005\u0305\u0183\u0002\u0558\u0559\u0005\u030b", + "\u0186\u0002\u0559\u055a\u0005\u0315\u018b\u0002\u055a\u055b\u0005\u030b", + "\u0186\u0002\u055b\u055c\u0005\u0321\u0191\u0002\u055c\u055d\u0005\u030b", + "\u0186\u0002\u055d\u055e\u0005\u0317\u018c\u0002\u055e\u055f\u0005\u0315", + "\u018b\u0002\u055f\u0096\u0003\u0002\u0002\u0002\u0560\u0561\u0005\u0301", + "\u0181\u0002\u0561\u0562\u0005\u0303\u0182\u0002\u0562\u0563\u0005\u0311", + "\u0189\u0002\u0563\u0564\u0005\u0303\u0182\u0002\u0564\u0565\u0005\u0321", + "\u0191\u0002\u0565\u0566\u0005\u0303\u0182\u0002\u0566\u0098\u0003\u0002", + "\u0002\u0002\u0567\u0568\u0005\u0301\u0181\u0002\u0568\u0569\u0005\u0303", + "\u0182\u0002\u0569\u056a\u0005\u0311\u0189\u0002\u056a\u056b\u0005\u030b", + "\u0186\u0002\u056b\u056c\u0005\u0313\u018a\u0002\u056c\u056d\u0005\u030b", + "\u0186\u0002\u056d\u056e\u0005\u0321\u0191\u0002\u056e\u056f\u0005\u0303", + "\u0182\u0002\u056f\u0570\u0005\u0301\u0181\u0002\u0570\u009a\u0003\u0002", + "\u0002\u0002\u0571\u0572\u0005\u0301\u0181\u0002\u0572\u0573\u0005\u0303", + "\u0182\u0002\u0573\u0574\u0005\u0311\u0189\u0002\u0574\u0575\u0005\u030b", + "\u0186\u0002\u0575\u0576\u0005\u0313\u018a\u0002\u0576\u0577\u0005\u030b", + "\u0186\u0002\u0577\u0578\u0005\u0321\u0191\u0002\u0578\u0579\u0005\u0303", + "\u0182\u0002\u0579\u057a\u0005\u031d\u018f\u0002\u057a\u009c\u0003\u0002", + "\u0002\u0002\u057b\u057c\u0005\u0301\u0181\u0002\u057c\u057d\u0005\u0303", + "\u0182\u0002\u057d\u057e\u0005\u031f\u0190\u0002\u057e\u057f\u0005\u02ff", + "\u0180\u0002\u057f\u009e\u0003\u0002\u0002\u0002\u0580\u0581\u0005\u0301", + "\u0181\u0002\u0581\u0582\u0005\u0303\u0182\u0002\u0582\u0583\u0005\u031f", + "\u0190\u0002\u0583\u0584\u0005\u02ff\u0180\u0002\u0584\u0585\u0005\u031d", + "\u018f\u0002\u0585\u0586\u0005\u030b\u0186\u0002\u0586\u0587\u0005\u02fd", + "\u017f\u0002\u0587\u0588\u0005\u0303\u0182\u0002\u0588\u00a0\u0003\u0002", + "\u0002\u0002\u0589\u058a\u0005\u0301\u0181\u0002\u058a\u058b\u0005\u030b", + "\u0186\u0002\u058b\u058c\u0005\u02fb\u017e\u0002\u058c\u058d\u0005\u0307", + "\u0184\u0002\u058d\u058e\u0005\u0315\u018b\u0002\u058e\u058f\u0005\u0317", + "\u018c\u0002\u058f\u0590\u0005\u031f\u0190\u0002\u0590\u0591\u0005\u0321", + "\u0191\u0002\u0591\u0592\u0005\u030b\u0186\u0002\u0592\u0593\u0005\u02ff", + "\u0180\u0002\u0593\u0594\u0005\u031f\u0190\u0002\u0594\u00a2\u0003\u0002", + "\u0002\u0002\u0595\u0596\u0005\u0301\u0181\u0002\u0596\u0597\u0005\u030b", + "\u0186\u0002\u0597\u0598\u0005\u031d\u018f\u0002\u0598\u00a4\u0003\u0002", + "\u0002\u0002\u0599\u059a\u0005\u0301\u0181\u0002\u059a\u059b\u0005\u030b", + "\u0186\u0002\u059b\u059c\u0005\u031d\u018f\u0002\u059c\u059d\u0005\u0303", + "\u0182\u0002\u059d\u059e\u0005\u02ff\u0180\u0002\u059e\u059f\u0005\u0321", + "\u0191\u0002\u059f\u05a0\u0005\u0317\u018c\u0002\u05a0\u05a1\u0005\u031d", + "\u018f\u0002\u05a1\u05a2\u0005\u032b\u0196\u0002\u05a2\u00a6\u0003\u0002", + "\u0002\u0002\u05a3\u05a4\u0005\u0301\u0181\u0002\u05a4\u05a5\u0005\u030b", + "\u0186\u0002\u05a5\u05a6\u0005\u031f\u0190\u0002\u05a6\u05a7\u0005\u0321", + "\u0191\u0002\u05a7\u05a8\u0005\u030b\u0186\u0002\u05a8\u05a9\u0005\u0315", + "\u018b\u0002\u05a9\u05aa\u0005\u02ff\u0180\u0002\u05aa\u05ab\u0005\u0321", + "\u0191\u0002\u05ab\u00a8\u0003\u0002\u0002\u0002\u05ac\u05ad\u0005\u0301", + "\u0181\u0002\u05ad\u05ae\u0005\u030b\u0186\u0002\u05ae\u05af\u0005\u031f", + "\u0190\u0002\u05af\u05b0\u0005\u0321\u0191\u0002\u05b0\u05b1\u0005\u031d", + "\u018f\u0002\u05b1\u05b2\u0005\u030b\u0186\u0002\u05b2\u05b3\u0005\u02fd", + "\u017f\u0002\u05b3\u05b4\u0005\u0323\u0192\u0002\u05b4\u05b5\u0005\u0321", + "\u0191\u0002\u05b5\u05b6\u0005\u0303\u0182\u0002\u05b6\u00aa\u0003\u0002", + "\u0002\u0002\u05b7\u05b8\u0005\u0301\u0181\u0002\u05b8\u05b9\u0005\u0317", + "\u018c\u0002\u05b9\u00ac\u0003\u0002\u0002\u0002\u05ba\u05bb\u0005\u0301", + "\u0181\u0002\u05bb\u05bc\u0005\u0317\u018c\u0002\u05bc\u05bd\u0005\u0323", + "\u0192\u0002\u05bd\u05be\u0005\u02fd\u017f\u0002\u05be\u05bf\u0005\u0311", + "\u0189\u0002\u05bf\u05c0\u0005\u0303\u0182\u0002\u05c0\u00ae\u0003\u0002", + "\u0002\u0002\u05c1\u05c2\u0005\u0301\u0181\u0002\u05c2\u05c3\u0005\u031d", + "\u018f\u0002\u05c3\u05c4\u0005\u0317\u018c\u0002\u05c4\u05c5\u0005\u0319", + "\u018d\u0002\u05c5\u00b0\u0003\u0002\u0002\u0002\u05c6\u05c7\u0005\u0301", + "\u0181\u0002\u05c7\u05c8\u0005\u032b\u0196\u0002\u05c8\u05c9\u0005\u0315", + "\u018b\u0002\u05c9\u05ca\u0005\u02fb\u017e\u0002\u05ca\u05cb\u0005\u0313", + "\u018a\u0002\u05cb\u05cc\u0005\u030b\u0186\u0002\u05cc\u05cd\u0005\u02ff", + "\u0180\u0002\u05cd\u00b2\u0003\u0002\u0002\u0002\u05ce\u05cf\u0005\u0303", + "\u0182\u0002\u05cf\u05d0\u0005\u0311\u0189\u0002\u05d0\u05d1\u0005\u031f", + "\u0190\u0002\u05d1\u05d2\u0005\u0303\u0182\u0002\u05d2\u00b4\u0003\u0002", + "\u0002\u0002\u05d3\u05d4\u0005\u0303\u0182\u0002\u05d4\u05d5\u0005\u0311", + "\u0189\u0002\u05d5\u05d6\u0005\u031f\u0190\u0002\u05d6\u05d7\u0005\u0303", + "\u0182\u0002\u05d7\u05d8\u0005\u030b\u0186\u0002\u05d8\u05d9\u0005\u0305", + "\u0183\u0002\u05d9\u00b6\u0003\u0002\u0002\u0002\u05da\u05db\u0005\u0303", + "\u0182\u0002\u05db\u05dc\u0005\u0311\u0189\u0002\u05dc\u05dd\u0005\u031f", + "\u0190\u0002\u05dd\u05de\u0005\u030b\u0186\u0002\u05de\u05df\u0005\u0305", + "\u0183\u0002\u05df\u00b8\u0003\u0002\u0002\u0002\u05e0\u05e1\u0005\u0303", + "\u0182\u0002\u05e1\u05e2\u0005\u0315\u018b\u0002\u05e2\u05e3\u0005\u02fb", + "\u017e\u0002\u05e3\u05e4\u0005\u02fd\u017f\u0002\u05e4\u05e5\u0005\u0311", + "\u0189\u0002\u05e5\u05e6\u0005\u0303\u0182\u0002\u05e6\u00ba\u0003\u0002", + "\u0002\u0002\u05e7\u05e8\u0005\u0303\u0182\u0002\u05e8\u05e9\u0005\u0315", + "\u018b\u0002\u05e9\u05ea\u0005\u0301\u0181\u0002\u05ea\u00bc\u0003\u0002", + "\u0002\u0002\u05eb\u05ec\u0005\u0303\u0182\u0002\u05ec\u05ed\u0005\u0315", + "\u018b\u0002\u05ed\u05ee\u0005\u0307\u0184\u0002\u05ee\u05ef\u0005\u030b", + "\u0186\u0002\u05ef\u05f0\u0005\u0315\u018b\u0002\u05f0\u05f1\u0005\u0303", + "\u0182\u0002\u05f1\u00be\u0003\u0002\u0002\u0002\u05f2\u05f3\u0005\u0303", + "\u0182\u0002\u05f3\u05f4\u0005\u031f\u0190\u0002\u05f4\u05f5\u0005\u02ff", + "\u0180\u0002\u05f5\u05f6\u0005\u02fb\u017e\u0002\u05f6\u05f7\u0005\u0319", + "\u018d\u0002\u05f7\u05f8\u0005\u0303\u0182\u0002\u05f8\u05f9\u0005\u0301", + "\u0181\u0002\u05f9\u00c0\u0003\u0002\u0002\u0002\u05fa\u05fb\u0005\u0303", + "\u0182\u0002\u05fb\u05fc\u0005\u0329\u0195\u0002\u05fc\u05fd\u0005\u02ff", + "\u0180\u0002\u05fd\u05fe\u0005\u0303\u0182\u0002\u05fe\u05ff\u0005\u0319", + "\u018d\u0002\u05ff\u0600\u0005\u0321\u0191\u0002\u0600\u00c2\u0003\u0002", + "\u0002\u0002\u0601\u0602\u0005\u0303\u0182\u0002\u0602\u0603\u0005\u0329", + "\u0195\u0002\u0603\u0604\u0005\u0303\u0182\u0002\u0604\u0605\u0005\u02ff", + "\u0180\u0002\u0605\u00c4\u0003\u0002\u0002\u0002\u0606\u0607\u0005\u0303", + "\u0182\u0002\u0607\u0608\u0005\u0329\u0195\u0002\u0608\u0609\u0005\u0303", + "\u0182\u0002\u0609\u060a\u0005\u02ff\u0180\u0002\u060a\u060b\u0005\u0323", + "\u0192\u0002\u060b\u060c\u0005\u0321\u0191\u0002\u060c\u060d\u0005\u0303", + "\u0182\u0002\u060d\u00c6\u0003\u0002\u0002\u0002\u060e\u060f\u0005\u0303", + "\u0182\u0002\u060f\u0610\u0005\u0329\u0195\u0002\u0610\u0611\u0005\u02ff", + "\u0180\u0002\u0611\u0612\u0005\u0303\u0182\u0002\u0612\u0613\u0005\u0319", + "\u018d\u0002\u0613\u0614\u0005\u0321\u0191\u0002\u0614\u0615\u0005\u030b", + "\u0186\u0002\u0615\u0616\u0005\u0317\u018c\u0002\u0616\u0617\u0005\u0315", + "\u018b\u0002\u0617\u00c8\u0003\u0002\u0002\u0002\u0618\u0619\u0005\u0303", + "\u0182\u0002\u0619\u061a\u0005\u0329\u0195\u0002\u061a\u061b\u0005\u02ff", + "\u0180\u0002\u061b\u061c\u0005\u0311\u0189\u0002\u061c\u061d\u0005\u0323", + "\u0192\u0002\u061d\u061e\u0005\u031f\u0190\u0002\u061e\u061f\u0005\u030b", + "\u0186\u0002\u061f\u0620\u0005\u0325\u0193\u0002\u0620\u0621\u0005\u0303", + "\u0182\u0002\u0621\u00ca\u0003\u0002\u0002\u0002\u0622\u0623\u0005\u0303", + "\u0182\u0002\u0623\u0624\u0005\u0329\u0195\u0002\u0624\u0625\u0005\u030b", + "\u0186\u0002\u0625\u0626\u0005\u031f\u0190\u0002\u0626\u0627\u0005\u0321", + "\u0191\u0002\u0627\u0628\u0005\u031f\u0190\u0002\u0628\u00cc\u0003\u0002", + "\u0002\u0002\u0629\u062a\u0005\u0303\u0182\u0002\u062a\u062b\u0005\u0329", + "\u0195\u0002\u062b\u062c\u0005\u030b\u0186\u0002\u062c\u062d\u0005\u0321", + "\u0191\u0002\u062d\u00ce\u0003\u0002\u0002\u0002\u062e\u062f\u0005\u0305", + "\u0183\u0002\u062f\u0630\u0005\u02fb\u017e\u0002\u0630\u0631\u0005\u0311", + "\u0189\u0002\u0631\u0632\u0005\u0311\u0189\u0002\u0632\u0633\u0005\u02fd", + "\u017f\u0002\u0633\u0634\u0005\u02fb\u017e\u0002\u0634\u0635\u0005\u02ff", + "\u0180\u0002\u0635\u0636\u0005\u030f\u0188\u0002\u0636\u00d0\u0003\u0002", + "\u0002\u0002\u0637\u0638\u0005\u0305\u0183\u0002\u0638\u0639\u0005\u02fb", + "\u017e\u0002\u0639\u063a\u0005\u0311\u0189\u0002\u063a\u063b\u0005\u031f", + "\u0190\u0002\u063b\u063c\u0005\u0303\u0182\u0002\u063c\u00d2\u0003\u0002", + "\u0002\u0002\u063d\u063e\u0005\u0305\u0183\u0002\u063e\u063f\u0005\u0303", + "\u0182\u0002\u063f\u0640\u0005\u0321\u0191\u0002\u0640\u0641\u0005\u02ff", + "\u0180\u0002\u0641\u0642\u0005\u0309\u0185\u0002\u0642\u00d4\u0003\u0002", + "\u0002\u0002\u0643\u0644\u0005\u0305\u0183\u0002\u0644\u0645\u0005\u030b", + "\u0186\u0002\u0645\u0646\u0005\u0303\u0182\u0002\u0646\u0647\u0005\u0311", + "\u0189\u0002\u0647\u0648\u0005\u0301\u0181\u0002\u0648\u0649\u0005\u031f", + "\u0190\u0002\u0649\u00d6\u0003\u0002\u0002\u0002\u064a\u064b\u0005\u0305", + "\u0183\u0002\u064b\u064c\u0005\u030b\u0186\u0002\u064c\u064d\u0005\u0311", + "\u0189\u0002\u064d\u064e\u0005\u0303\u0182\u0002\u064e\u00d8\u0003\u0002", + "\u0002\u0002\u064f\u0650\u0005\u0305\u0183\u0002\u0650\u0651\u0005\u030b", + "\u0186\u0002\u0651\u0652\u0005\u0311\u0189\u0002\u0652\u0653\u0005\u0303", + "\u0182\u0002\u0653\u0654\u0005\u031f\u0190\u0002\u0654\u00da\u0003\u0002", + "\u0002\u0002\u0655\u0656\u0005\u0305\u0183\u0002\u0656\u0657\u0005\u0311", + "\u0189\u0002\u0657\u0658\u0005\u0317\u018c\u0002\u0658\u0659\u0005\u02fb", + "\u017e\u0002\u0659\u065a\u0005\u0321\u0191\u0002\u065a\u00dc\u0003\u0002", + "\u0002\u0002\u065b\u065c\u0005\u0305\u0183\u0002\u065c\u065d\u0005\u0317", + "\u018c\u0002\u065d\u065e\u0005\u031d\u018f\u0002\u065e\u00de\u0003\u0002", + "\u0002\u0002\u065f\u0660\u0005\u0305\u0183\u0002\u0660\u0661\u0005\u0317", + "\u018c\u0002\u0661\u0662\u0005\u031d\u018f\u0002\u0662\u0663\u0005\u0303", + "\u0182\u0002\u0663\u0664\u0005\u030b\u0186\u0002\u0664\u0665\u0005\u0307", + "\u0184\u0002\u0665\u0666\u0005\u0315\u018b\u0002\u0666\u00e0\u0003\u0002", + "\u0002\u0002\u0667\u0668\u0005\u0305\u0183\u0002\u0668\u0669\u0005\u0317", + "\u018c\u0002\u0669\u066a\u0005\u031d\u018f\u0002\u066a\u066b\u0005\u0313", + "\u018a\u0002\u066b\u066c\u0005\u02fb\u017e\u0002\u066c\u066d\u0005\u0321", + "\u0191\u0002\u066d\u00e2\u0003\u0002\u0002\u0002\u066e\u066f\u0005\u0305", + "\u0183\u0002\u066f\u0670\u0005\u0317\u018c\u0002\u0670\u0671\u0005\u0323", + "\u0192\u0002\u0671\u0672\u0005\u0315\u018b\u0002\u0672\u0673\u0005\u0301", + "\u0181\u0002\u0673\u00e4\u0003\u0002\u0002\u0002\u0674\u0675\u0005\u0305", + "\u0183\u0002\u0675\u0676\u0005\u031d\u018f\u0002\u0676\u0677\u0005\u0317", + "\u018c\u0002\u0677\u0678\u0005\u0313\u018a\u0002\u0678\u00e6\u0003\u0002", + "\u0002\u0002\u0679\u067a\u0005\u0305\u0183\u0002\u067a\u067b\u0005\u0323", + "\u0192\u0002\u067b\u067c\u0005\u0311\u0189\u0002\u067c\u067d\u0005\u0311", + "\u0189\u0002\u067d\u00e8\u0003\u0002\u0002\u0002\u067e\u067f\u0005\u0305", + "\u0183\u0002\u067f\u0680\u0005\u0323\u0192\u0002\u0680\u0681\u0005\u0315", + "\u018b\u0002\u0681\u0682\u0005\u02ff\u0180\u0002\u0682\u0683\u0005\u0321", + "\u0191\u0002\u0683\u0684\u0005\u030b\u0186\u0002\u0684\u0685\u0005\u0317", + "\u018c\u0002\u0685\u0686\u0005\u0315\u018b\u0002\u0686\u00ea\u0003\u0002", + "\u0002\u0002\u0687\u0688\u0005\u0307\u0184\u0002\u0688\u0689\u0005\u0303", + "\u0182\u0002\u0689\u068a\u0005\u0321\u0191\u0002\u068a\u00ec\u0003\u0002", + "\u0002\u0002\u068b\u068c\u0005\u0307\u0184\u0002\u068c\u068d\u0005\u0311", + "\u0189\u0002\u068d\u068e\u0005\u0317\u018c\u0002\u068e\u068f\u0005\u02fd", + "\u017f\u0002\u068f\u0690\u0005\u02fb\u017e\u0002\u0690\u0691\u0005\u0311", + "\u0189\u0002\u0691\u00ee\u0003\u0002\u0002\u0002\u0692\u0693\u0005\u0307", + "\u0184\u0002\u0693\u0694\u0005\u0317\u018c\u0002\u0694\u00f0\u0003\u0002", + "\u0002\u0002\u0695\u0696\u0005\u0307\u0184\u0002\u0696\u0697\u0005\u031d", + "\u018f\u0002\u0697\u0698\u0005\u02fb\u017e\u0002\u0698\u0699\u0005\u0315", + "\u018b\u0002\u0699\u069a\u0005\u0321\u0191\u0002\u069a\u00f2\u0003\u0002", + "\u0002\u0002\u069b\u069c\u0005\u0307\u0184\u0002\u069c\u069d\u0005\u031d", + "\u018f\u0002\u069d\u069e\u0005\u0317\u018c\u0002\u069e\u069f\u0005\u0323", + "\u0192\u0002\u069f\u06a0\u0005\u0319\u018d\u0002\u06a0\u00f4\u0003\u0002", + "\u0002\u0002\u06a1\u06a2\u0005\u0309\u0185\u0002\u06a2\u06a3\u0005\u02fb", + "\u017e\u0002\u06a3\u06a4\u0005\u0315\u018b\u0002\u06a4\u06a5\u0005\u0301", + "\u0181\u0002\u06a5\u06a6\u0005\u0311\u0189\u0002\u06a6\u06a7\u0005\u0303", + "\u0182\u0002\u06a7\u06a8\u0005\u031d\u018f\u0002\u06a8\u00f6\u0003\u0002", + "\u0002\u0002\u06a9\u06aa\u0005\u0309\u0185\u0002\u06aa\u06ab\u0005\u02fb", + "\u017e\u0002\u06ab\u06ac\u0005\u031f\u0190\u0002\u06ac\u06ad\u0005\u0309", + "\u0185\u0002\u06ad\u00f8\u0003\u0002\u0002\u0002\u06ae\u06af\u0005\u0309", + "\u0185\u0002\u06af\u06b0\u0005\u02fb\u017e\u0002\u06b0\u06b1\u0005\u0325", + "\u0193\u0002\u06b1\u06b2\u0005\u030b\u0186\u0002\u06b2\u06b3\u0005\u0315", + "\u018b\u0002\u06b3\u06b4\u0005\u0307\u0184\u0002\u06b4\u00fa\u0003\u0002", + "\u0002\u0002\u06b5\u06b6\u0005\u0309\u0185\u0002\u06b6\u06b7\u0005\u0301", + "\u0181\u0002\u06b7\u06b8\u0005\u0305\u0183\u0002\u06b8\u06b9\u0005\u031f", + "\u0190\u0002\u06b9\u00fc\u0003\u0002\u0002\u0002\u06ba\u06bb\u0005\u0309", + "\u0185\u0002\u06bb\u06bc\u0005\u030b\u0186\u0002\u06bc\u06bd\u0005\u0325", + "\u0193\u0002\u06bd\u06be\u0005\u0303\u0182\u0002\u06be\u00fe\u0003\u0002", + "\u0002\u0002\u06bf\u06c0\u0005\u0309\u0185\u0002\u06c0\u06c1\u0005\u0317", + "\u018c\u0002\u06c1\u06c2\u0005\u031f\u0190\u0002\u06c2\u06c3\u0005\u0321", + "\u0191\u0002\u06c3\u0100\u0003\u0002\u0002\u0002\u06c4\u06c5\u0005\u030b", + "\u0186\u0002\u06c5\u06c6\u0005\u0301\u0181\u0002\u06c6\u06c7\u0005\u0303", + "\u0182\u0002\u06c7\u06c8\u0005\u0315\u018b\u0002\u06c8\u06c9\u0005\u0321", + "\u0191\u0002\u06c9\u06ca\u0005\u030b\u0186\u0002\u06ca\u06cb\u0005\u0321", + "\u0191\u0002\u06cb\u06cc\u0005\u032b\u0196\u0002\u06cc\u0102\u0003\u0002", + "\u0002\u0002\u06cd\u06ce\u0005\u030b\u0186\u0002\u06ce\u06cf\u0005\u0305", + "\u0183\u0002\u06cf\u0104\u0003\u0002\u0002\u0002\u06d0\u06d1\u0005\u030b", + "\u0186\u0002\u06d1\u06d2\u0005\u0307\u0184\u0002\u06d2\u06d3\u0005\u0315", + "\u018b\u0002\u06d3\u06d4\u0005\u0317\u018c\u0002\u06d4\u06d5\u0005\u031d", + "\u018f\u0002\u06d5\u06d6\u0005\u0303\u0182\u0002\u06d6\u0106\u0003\u0002", + "\u0002\u0002\u06d7\u06d8\u0005\u030b\u0186\u0002\u06d8\u06d9\u0005\u0313", + "\u018a\u0002\u06d9\u06da\u0005\u0313\u018a\u0002\u06da\u06db\u0005\u0303", + "\u0182\u0002\u06db\u06dc\u0005\u0301\u0181\u0002\u06dc\u06dd\u0005\u030b", + "\u0186\u0002\u06dd\u06de\u0005\u02fb\u017e\u0002\u06de\u06df\u0005\u0321", + "\u0191\u0002\u06df\u06e0\u0005\u0303\u0182\u0002\u06e0\u0108\u0003\u0002", + "\u0002\u0002\u06e1\u06e2\u0005\u030b\u0186\u0002\u06e2\u06e3\u0005\u0315", + "\u018b\u0002\u06e3\u010a\u0003\u0002\u0002\u0002\u06e4\u06e5\u0005\u030b", + "\u0186\u0002\u06e5\u06e6\u0005\u0315\u018b\u0002\u06e6\u06e7\u0005\u02ff", + "\u0180\u0002\u06e7\u06e8\u0005\u0311\u0189\u0002\u06e8\u06e9\u0005\u0323", + "\u0192\u0002\u06e9\u06ea\u0005\u0301\u0181\u0002\u06ea\u06eb\u0005\u0303", + "\u0182\u0002\u06eb\u010c\u0003\u0002\u0002\u0002\u06ec\u06ed\u0005\u030b", + "\u0186\u0002\u06ed\u06ee\u0005\u0315\u018b\u0002\u06ee\u06ef\u0005\u0301", + "\u0181\u0002\u06ef\u06f0\u0005\u0303\u0182\u0002\u06f0\u06f1\u0005\u0329", + "\u0195\u0002\u06f1\u010e\u0003\u0002\u0002\u0002\u06f2\u06f3\u0005\u030b", + "\u0186\u0002\u06f3\u06f4\u0005\u0315\u018b\u0002\u06f4\u06f5\u0005\u030b", + "\u0186\u0002\u06f5\u06f6\u0005\u0321\u0191\u0002\u06f6\u06f7\u0005\u031d", + "\u018f\u0002\u06f7\u06f8\u0005\u02fb\u017e\u0002\u06f8\u06f9\u0005\u0315", + "\u018b\u0002\u06f9\u06fa\u0005\u031f\u0190\u0002\u06fa\u0110\u0003\u0002", + "\u0002\u0002\u06fb\u06fc\u0005\u030b\u0186\u0002\u06fc\u06fd\u0005\u0315", + "\u018b\u0002\u06fd\u06fe\u0005\u0315\u018b\u0002\u06fe\u06ff\u0005\u0303", + "\u0182\u0002\u06ff\u0700\u0005\u031d\u018f\u0002\u0700\u0112\u0003\u0002", + "\u0002\u0002\u0701\u0702\u0005\u030b\u0186\u0002\u0702\u0703\u0005\u0315", + "\u018b\u0002\u0703\u0704\u0005\u0317\u018c\u0002\u0704\u0705\u0005\u0323", + "\u0192\u0002\u0705\u0706\u0005\u0321\u0191\u0002\u0706\u0114\u0003\u0002", + "\u0002\u0002\u0707\u0708\u0005\u030b\u0186\u0002\u0708\u0709\u0005\u0315", + "\u018b\u0002\u0709\u070a\u0005\u031f\u0190\u0002\u070a\u070b\u0005\u0303", + "\u0182\u0002\u070b\u070c\u0005\u031d\u018f\u0002\u070c\u070d\u0005\u0321", + "\u0191\u0002\u070d\u0116\u0003\u0002\u0002\u0002\u070e\u070f\u0005\u030b", + "\u0186\u0002\u070f\u0710\u0005\u0315\u018b\u0002\u0710\u0711\u0005\u0321", + "\u0191\u0002\u0711\u0118\u0003\u0002\u0002\u0002\u0712\u0713\u0005\u030b", + "\u0186\u0002\u0713\u0714\u0005\u0315\u018b\u0002\u0714\u0715\u0005\u0321", + "\u0191\u0002\u0715\u0716\u00074\u0002\u0002\u0716\u011a\u0003\u0002", + "\u0002\u0002\u0717\u0718\u0005\u030b\u0186\u0002\u0718\u0719\u0005\u0315", + "\u018b\u0002\u0719\u071a\u0005\u0321\u0191\u0002\u071a\u071b\u00076", + "\u0002\u0002\u071b\u011c\u0003\u0002\u0002\u0002\u071c\u071d\u0005\u030b", + "\u0186\u0002\u071d\u071e\u0005\u0315\u018b\u0002\u071e\u071f\u0005\u0321", + "\u0191\u0002\u071f\u0720\u0007:\u0002\u0002\u0720\u011e\u0003\u0002", + "\u0002\u0002\u0721\u0722\u0005\u030b\u0186\u0002\u0722\u0723\u0005\u0315", + "\u018b\u0002\u0723\u0724\u0005\u0321\u0191\u0002\u0724\u0725\u0005\u0303", + "\u0182\u0002\u0725\u0726\u0005\u0307\u0184\u0002\u0726\u0727\u0005\u0303", + "\u0182\u0002\u0727\u0728\u0005\u031d\u018f\u0002\u0728\u0120\u0003\u0002", + "\u0002\u0002\u0729\u072a\u0005\u030b\u0186\u0002\u072a\u072b\u0005\u0315", + "\u018b\u0002\u072b\u072c\u0005\u0321\u0191\u0002\u072c\u072d\u0005\u0303", + "\u0182\u0002\u072d\u072e\u0005\u031d\u018f\u0002\u072e\u072f\u0005\u031f", + "\u0190\u0002\u072f\u0730\u0005\u0303\u0182\u0002\u0730\u0731\u0005\u02ff", + "\u0180\u0002\u0731\u0732\u0005\u0321\u0191\u0002\u0732\u0122\u0003\u0002", + "\u0002\u0002\u0733\u0734\u0005\u030b\u0186\u0002\u0734\u0735\u0005\u0315", + "\u018b\u0002\u0735\u0736\u0005\u0321\u0191\u0002\u0736\u0737\u0005\u0303", + "\u0182\u0002\u0737\u0738\u0005\u031d\u018f\u0002\u0738\u0739\u0005\u0325", + "\u0193\u0002\u0739\u073a\u0005\u02fb\u017e\u0002\u073a\u073b\u0005\u0311", + "\u0189\u0002\u073b\u0124\u0003\u0002\u0002\u0002\u073c\u073d\u0005\u030b", + "\u0186\u0002\u073d\u073e\u0005\u0315\u018b\u0002\u073e\u073f\u0005\u0321", + "\u0191\u0002\u073f\u0740\u0005\u0317\u018c\u0002\u0740\u0126\u0003\u0002", + "\u0002\u0002\u0741\u0742\u0005\u030b\u0186\u0002\u0742\u0743\u0005\u0315", + "\u018b\u0002\u0743\u0744\u0005\u0325\u0193\u0002\u0744\u0745\u0005\u0317", + "\u018c\u0002\u0745\u0746\u0005\u030f\u0188\u0002\u0746\u0747\u0005\u0303", + "\u0182\u0002\u0747\u0748\u0005\u031d\u018f\u0002\u0748\u0128\u0003\u0002", + "\u0002\u0002\u0749\u074a\u0005\u030b\u0186\u0002\u074a\u074b\u0005\u031f", + "\u0190\u0002\u074b\u012a\u0003\u0002\u0002\u0002\u074c\u074d\u0005\u030b", + "\u0186\u0002\u074d\u074e\u0005\u031f\u0190\u0002\u074e\u074f\u0005\u0317", + "\u018c\u0002\u074f\u0750\u0005\u0319\u018d\u0002\u0750\u0751\u0005\u0303", + "\u0182\u0002\u0751\u0752\u0005\u0315\u018b\u0002\u0752\u012c\u0003\u0002", + "\u0002\u0002\u0753\u0754\u0005\u030b\u0186\u0002\u0754\u0755\u0005\u0321", + "\u0191\u0002\u0755\u0756\u0005\u0303\u0182\u0002\u0756\u0757\u0005\u0313", + "\u018a\u0002\u0757\u0758\u0005\u031f\u0190\u0002\u0758\u012e\u0003\u0002", + "\u0002\u0002\u0759\u075a\u0005\u030d\u0187\u0002\u075a\u075b\u0005\u0317", + "\u018c\u0002\u075b\u075c\u0005\u030b\u0186\u0002\u075c\u075d\u0005\u0315", + "\u018b\u0002\u075d\u0130\u0003\u0002\u0002\u0002\u075e\u075f\u0005\u030f", + "\u0188\u0002\u075f\u0760\u0005\u0303\u0182\u0002\u0760\u0761\u0005\u0303", + "\u0182\u0002\u0761\u0762\u0005\u0319\u018d\u0002\u0762\u0132\u0003\u0002", + "\u0002\u0002\u0763\u0764\u0005\u030f\u0188\u0002\u0764\u0765\u0005\u0303", + "\u0182\u0002\u0765\u0766\u0005\u032b\u0196\u0002\u0766\u0134\u0003\u0002", + "\u0002\u0002\u0767\u0768\u0005\u030f\u0188\u0002\u0768\u0769\u0005\u0303", + "\u0182\u0002\u0769\u076a\u0005\u032b\u0196\u0002\u076a\u076b\u0005\u031f", + "\u0190\u0002\u076b\u0136\u0003\u0002\u0002\u0002\u076c\u076d\u0005\u0311", + "\u0189\u0002\u076d\u076e\u0005\u02fb\u017e\u0002\u076e\u076f\u0005\u0315", + "\u018b\u0002\u076f\u0770\u0005\u0307\u0184\u0002\u0770\u0771\u0005\u0323", + "\u0192\u0002\u0771\u0772\u0005\u02fb\u017e\u0002\u0772\u0773\u0005\u0307", + "\u0184\u0002\u0773\u0774\u0005\u0303\u0182\u0002\u0774\u0138\u0003\u0002", + "\u0002\u0002\u0775\u0776\u0005\u0311\u0189\u0002\u0776\u0777\u0005\u0303", + "\u0182\u0002\u0777\u0778\u0005\u02fb\u017e\u0002\u0778\u0779\u0005\u0325", + "\u0193\u0002\u0779\u077a\u0005\u0303\u0182\u0002\u077a\u013a\u0003\u0002", + "\u0002\u0002\u077b\u077c\u0005\u0311\u0189\u0002\u077c\u077d\u0005\u0303", + "\u0182\u0002\u077d\u077e\u0005\u0305\u0183\u0002\u077e\u077f\u0005\u0321", + "\u0191\u0002\u077f\u013c\u0003\u0002\u0002\u0002\u0780\u0781\u0005\u0311", + "\u0189\u0002\u0781\u0782\u0005\u030b\u0186\u0002\u0782\u0783\u0005\u030f", + "\u0188\u0002\u0783\u0784\u0005\u0303\u0182\u0002\u0784\u013e\u0003\u0002", + "\u0002\u0002\u0785\u0786\u0005\u0311\u0189\u0002\u0786\u0787\u0005\u030b", + "\u0186\u0002\u0787\u0788\u0005\u0313\u018a\u0002\u0788\u0789\u0005\u030b", + "\u0186\u0002\u0789\u078a\u0005\u0321\u0191\u0002\u078a\u0140\u0003\u0002", + "\u0002\u0002\u078b\u078c\u0005\u0311\u0189\u0002\u078c\u078d\u0005\u030b", + "\u0186\u0002\u078d\u078e\u0005\u0315\u018b\u0002\u078e\u078f\u0005\u0303", + "\u0182\u0002\u078f\u0790\u0005\u031f\u0190\u0002\u0790\u0142\u0003\u0002", + "\u0002\u0002\u0791\u0792\u0005\u0311\u0189\u0002\u0792\u0793\u0005\u0317", + "\u018c\u0002\u0793\u0794\u0005\u02ff\u0180\u0002\u0794\u0795\u0005\u02fb", + "\u017e\u0002\u0795\u0796\u0005\u0311\u0189\u0002\u0796\u0144\u0003\u0002", + "\u0002\u0002\u0797\u0798\u0005\u0311\u0189\u0002\u0798\u0799\u0005\u0317", + "\u018c\u0002\u0799\u079a\u0005\u02ff\u0180\u0002\u079a\u079b\u0005\u02fb", + "\u017e\u0002\u079b\u079c\u0005\u0321\u0191\u0002\u079c\u079d\u0005\u030b", + "\u0186\u0002\u079d\u079e\u0005\u0317\u018c\u0002\u079e\u079f\u0005\u0315", + "\u018b\u0002\u079f\u0146\u0003\u0002\u0002\u0002\u07a0\u07a1\u0005\u0311", + "\u0189\u0002\u07a1\u07a2\u0005\u0317\u018c\u0002\u07a2\u07a3\u0005\u02ff", + "\u0180\u0002\u07a3\u07a4\u0005\u02fb\u017e\u0002\u07a4\u07a5\u0005\u0321", + "\u0191\u0002\u07a5\u07a6\u0005\u0317\u018c\u0002\u07a6\u07a7\u0005\u031d", + "\u018f\u0002\u07a7\u0148\u0003\u0002\u0002\u0002\u07a8\u07a9\u0005\u0311", + "\u0189\u0002\u07a9\u07aa\u0005\u0317\u018c\u0002\u07aa\u07ab\u0005\u02ff", + "\u0180\u0002\u07ab\u07ac\u0005\u02fb\u017e\u0002\u07ac\u07ad\u0005\u0321", + "\u0191\u0002\u07ad\u07ae\u0005\u0317\u018c\u0002\u07ae\u07af\u0005\u031d", + "\u018f\u0002\u07af\u07b0\u0005\u031f\u0190\u0002\u07b0\u014a\u0003\u0002", + "\u0002\u0002\u07b1\u07b2\u0005\u0311\u0189\u0002\u07b2\u07b3\u0005\u0317", + "\u018c\u0002\u07b3\u07b4\u0005\u02ff\u0180\u0002\u07b4\u07b5\u0005\u030f", + "\u0188\u0002\u07b5\u07b6\u0005\u031f\u0190\u0002\u07b6\u014c\u0003\u0002", + "\u0002\u0002\u07b7\u07b8\u0005\u0311\u0189\u0002\u07b8\u07b9\u0005\u0317", + "\u018c\u0002\u07b9\u07ba\u0005\u0307\u0184\u0002\u07ba\u014e\u0003\u0002", + "\u0002\u0002\u07bb\u07bc\u0005\u0311\u0189\u0002\u07bc\u07bd\u0005\u0317", + "\u018c\u0002\u07bd\u07be\u0005\u0307\u0184\u0002\u07be\u07bf\u0005\u0307", + "\u0184\u0002\u07bf\u07c0\u0005\u0303\u0182\u0002\u07c0\u07c1\u0005\u0301", + "\u0181\u0002\u07c1\u0150\u0003\u0002\u0002\u0002\u07c2\u07c3\u0005\u0311", + "\u0189\u0002\u07c3\u07c4\u0005\u0317\u018c\u0002\u07c4\u07c5\u0005\u0307", + "\u0184\u0002\u07c5\u07c6\u0005\u0307\u0184\u0002\u07c6\u07c7\u0005\u030b", + "\u0186\u0002\u07c7\u07c8\u0005\u0315\u018b\u0002\u07c8\u07c9\u0005\u0307", + "\u0184\u0002\u07c9\u0152\u0003\u0002\u0002\u0002\u07ca\u07cb\u0005\u0311", + "\u0189\u0002\u07cb\u07cc\u0005\u0317\u018c\u0002\u07cc\u07cd\u0005\u0317", + "\u018c\u0002\u07cd\u07ce\u0005\u0319\u018d\u0002\u07ce\u0154\u0003\u0002", + "\u0002\u0002\u07cf\u07d0\u0005\u0313\u018a\u0002\u07d0\u07d1\u0005\u02fb", + "\u017e\u0002\u07d1\u07d2\u0005\u0319\u018d\u0002\u07d2\u0156\u0003\u0002", + "\u0002\u0002\u07d3\u07d4\u0005\u0313\u018a\u0002\u07d4\u07d5\u0005\u02fb", + "\u017e\u0002\u07d5\u07d6\u0005\u0321\u0191\u0002\u07d6\u07d7\u0005\u02ff", + "\u0180\u0002\u07d7\u07d8\u0005\u0309\u0185\u0002\u07d8\u07d9\u0005\u0303", + "\u0182\u0002\u07d9\u07da\u0005\u0301\u0181\u0002\u07da\u0158\u0003\u0002", + "\u0002\u0002\u07db\u07dc\u0005\u0313\u018a\u0002\u07dc\u07dd\u0005\u02fb", + "\u017e\u0002\u07dd\u07de\u0005\u0329\u0195\u0002\u07de\u015a\u0003\u0002", + "\u0002\u0002\u07df\u07e0\u0005\u0313\u018a\u0002\u07e0\u07e1\u0005\u02fb", + "\u017e\u0002\u07e1\u07e2\u0005\u0329\u0195\u0002\u07e2\u07e3\u0005\u0321", + "\u0191\u0002\u07e3\u07e4\u0005\u031d\u018f\u0002\u07e4\u07e5\u0005\u02fb", + "\u017e\u0002\u07e5\u07e6\u0005\u0315\u018b\u0002\u07e6\u07e7\u0005\u031f", + "\u0190\u0002\u07e7\u015c\u0003\u0002\u0002\u0002\u07e8\u07e9\u0005\u0313", + "\u018a\u0002\u07e9\u07ea\u0005\u0303\u0182\u0002\u07ea\u07eb\u0005\u031d", + "\u018f\u0002\u07eb\u07ec\u0005\u0307\u0184\u0002\u07ec\u07ed\u0005\u0303", + "\u0182\u0002\u07ed\u015e\u0003\u0002\u0002\u0002\u07ee\u07ef\u0005\u0313", + "\u018a\u0002\u07ef\u07f0\u0005\u0303\u0182\u0002\u07f0\u07f1\u0005\u031f", + "\u0190\u0002\u07f1\u07f2\u0005\u031f\u0190\u0002\u07f2\u07f3\u0005\u02fb", + "\u017e\u0002\u07f3\u07f4\u0005\u0307\u0184\u0002\u07f4\u07f5\u0005\u0303", + "\u0182\u0002\u07f5\u07f6\u0007a\u0002\u0002\u07f6\u07f7\u0005\u0321", + "\u0191\u0002\u07f7\u07f8\u0005\u0303\u0182\u0002\u07f8\u07f9\u0005\u0329", + "\u0195\u0002\u07f9\u07fa\u0005\u0321\u0191\u0002\u07fa\u0160\u0003\u0002", + "\u0002\u0002\u07fb\u07fc\u0005\u0313\u018a\u0002\u07fc\u07fd\u0005\u030b", + "\u0186\u0002\u07fd\u07fe\u0005\u02ff\u0180\u0002\u07fe\u07ff\u0005\u031d", + "\u018f\u0002\u07ff\u0800\u0005\u0317\u018c\u0002\u0800\u0801\u0005\u031f", + "\u0190\u0002\u0801\u0802\u0005\u0303\u0182\u0002\u0802\u0803\u0005\u02ff", + "\u0180\u0002\u0803\u0804\u0005\u0317\u018c\u0002\u0804\u0805\u0005\u0315", + "\u018b\u0002\u0805\u0806\u0005\u0301\u0181\u0002\u0806\u0162\u0003\u0002", + "\u0002\u0002\u0807\u0808\u0005\u0313\u018a\u0002\u0808\u0809\u0005\u030b", + "\u0186\u0002\u0809\u080a\u0005\u02ff\u0180\u0002\u080a\u080b\u0005\u031d", + "\u018f\u0002\u080b\u080c\u0005\u0317\u018c\u0002\u080c\u080d\u0005\u031f", + "\u0190\u0002\u080d\u080e\u0005\u0303\u0182\u0002\u080e\u080f\u0005\u02ff", + "\u0180\u0002\u080f\u0810\u0005\u0317\u018c\u0002\u0810\u0811\u0005\u0315", + "\u018b\u0002\u0811\u0812\u0005\u0301\u0181\u0002\u0812\u0813\u0005\u031f", + "\u0190\u0002\u0813\u0164\u0003\u0002\u0002\u0002\u0814\u0815\u0005\u0313", + "\u018a\u0002\u0815\u0816\u0005\u030b\u0186\u0002\u0816\u0817\u0005\u0315", + "\u018b\u0002\u0817\u0166\u0003\u0002\u0002\u0002\u0818\u0819\u0005\u0313", + "\u018a\u0002\u0819\u081a\u0005\u0323\u0192\u0002\u081a\u081b\u0005\u0311", + "\u0189\u0002\u081b\u081c\u0005\u0321\u0191\u0002\u081c\u081d\u0005\u030b", + "\u0186\u0002\u081d\u081e\u0005\u031f\u0190\u0002\u081e\u081f\u0005\u0303", + "\u0182\u0002\u081f\u0820\u0005\u0321\u0191\u0002\u0820\u0168\u0003\u0002", + "\u0002\u0002\u0821\u0822\u0005\u0315\u018b\u0002\u0822\u0823\u0005\u02ff", + "\u0180\u0002\u0823\u0824\u0005\u0309\u0185\u0002\u0824\u0825\u0005\u02fb", + "\u017e\u0002\u0825\u0826\u0005\u031d\u018f\u0002\u0826\u016a\u0003\u0002", + "\u0002\u0002\u0827\u0828\u0005\u0315\u018b\u0002\u0828\u0829\u0005\u0303", + "\u0182\u0002\u0829\u082a\u0005\u0327\u0194\u0002\u082a\u016c\u0003\u0002", + "\u0002\u0002\u082b\u082c\u0005\u0315\u018b\u0002\u082c\u082d\u0005\u0325", + "\u0193\u0002\u082d\u082e\u0005\u02fb\u017e\u0002\u082e\u082f\u0005\u031d", + "\u018f\u0002\u082f\u0830\u0005\u02ff\u0180\u0002\u0830\u0831\u0005\u0309", + "\u0185\u0002\u0831\u0832\u0005\u02fb\u017e\u0002\u0832\u0833\u0005\u031d", + "\u018f\u0002\u0833\u016e\u0003\u0002\u0002\u0002\u0834\u0835\u0005\u0315", + "\u018b\u0002\u0835\u0836\u0005\u0317\u018c\u0002\u0836\u0170\u0003\u0002", + "\u0002\u0002\u0837\u0838\u0005\u0315\u018b\u0002\u0838\u0839\u0005\u0317", + "\u018c\u0002\u0839\u083a\u0005\u02ff\u0180\u0002\u083a\u083b\u0005\u0317", + "\u018c\u0002\u083b\u083c\u0005\u0323\u0192\u0002\u083c\u083d\u0005\u0315", + "\u018b\u0002\u083d\u083e\u0005\u0321\u0191\u0002\u083e\u0172\u0003\u0002", + "\u0002\u0002\u083f\u0840\u0005\u0315\u018b\u0002\u0840\u0841\u0005\u0317", + "\u018c\u0002\u0841\u0842\u0005\u02ff\u0180\u0002\u0842\u0843\u0005\u0317", + "\u018c\u0002\u0843\u0844\u0005\u0313\u018a\u0002\u0844\u0845\u0005\u0319", + "\u018d\u0002\u0845\u0846\u0005\u031d\u018f\u0002\u0846\u0847\u0005\u0303", + "\u0182\u0002\u0847\u0848\u0005\u031f\u0190\u0002\u0848\u0849\u0005\u031f", + "\u0190\u0002\u0849\u0174\u0003\u0002\u0002\u0002\u084a\u084b\u0005\u0315", + "\u018b\u0002\u084b\u084c\u0005\u0317\u018c\u0002\u084c\u084d\u0005\u0311", + "\u0189\u0002\u084d\u084e\u0005\u0317\u018c\u0002\u084e\u084f\u0005\u0307", + "\u0184\u0002\u084f\u0850\u0005\u0307\u0184\u0002\u0850\u0851\u0005\u030b", + "\u0186\u0002\u0851\u0852\u0005\u0315\u018b\u0002\u0852\u0853\u0005\u0307", + "\u0184\u0002\u0853\u0176\u0003\u0002\u0002\u0002\u0854\u0855\u0005\u0315", + "\u018b\u0002\u0855\u0856\u0005\u0317\u018c\u0002\u0856\u0857\u0005\u0315", + "\u018b\u0002\u0857\u0858\u0005\u0303\u0182\u0002\u0858\u0178\u0003\u0002", + "\u0002\u0002\u0859\u085a\u0005\u0315\u018b\u0002\u085a\u085b\u0005\u0317", + "\u018c\u0002\u085b\u085c\u0005\u0321\u0191\u0002\u085c\u017a\u0003\u0002", + "\u0002\u0002\u085d\u085e\u0005\u0315\u018b\u0002\u085e\u085f\u0005\u0317", + "\u018c\u0002\u085f\u0860\u0005\u0321\u0191\u0002\u0860\u0861\u0005\u0305", + "\u0183\u0002\u0861\u0862\u0005\u0317\u018c\u0002\u0862\u0863\u0005\u0323", + "\u0192\u0002\u0863\u0864\u0005\u0315\u018b\u0002\u0864\u0865\u0005\u0301", + "\u0181\u0002\u0865\u017c\u0003\u0002\u0002\u0002\u0866\u0867\u0005\u0315", + "\u018b\u0002\u0867\u0868\u0005\u0323\u0192\u0002\u0868\u0869\u0005\u0311", + "\u0189\u0002\u0869\u086a\u0005\u0311\u0189\u0002\u086a\u017e\u0003\u0002", + "\u0002\u0002\u086b\u086c\u0005\u0315\u018b\u0002\u086c\u086d\u0005\u0323", + "\u0192\u0002\u086d\u086e\u0005\u0313\u018a\u0002\u086e\u086f\u0005\u0303", + "\u0182\u0002\u086f\u0870\u0005\u031d\u018f\u0002\u0870\u0871\u0005\u030b", + "\u0186\u0002\u0871\u0872\u0005\u02ff\u0180\u0002\u0872\u0180\u0003\u0002", + "\u0002\u0002\u0873\u0874\u0005\u0315\u018b\u0002\u0874\u0875\u0005\u0323", + "\u0192\u0002\u0875\u0876\u0005\u0313\u018a\u0002\u0876\u0877\u0005\u02fd", + "\u017f\u0002\u0877\u0878\u0005\u0303\u0182\u0002\u0878\u0879\u0005\u031d", + "\u018f\u0002\u0879\u0182\u0003\u0002\u0002\u0002\u087a\u087b\u0005\u0317", + "\u018c\u0002\u087b\u087c\u0005\u02fd\u017f\u0002\u087c\u087d\u0005\u030d", + "\u0187\u0002\u087d\u087e\u0005\u0303\u0182\u0002\u087e\u087f\u0005\u02ff", + "\u0180\u0002\u087f\u0880\u0005\u0321\u0191\u0002\u0880\u0184\u0003\u0002", + "\u0002\u0002\u0881\u0882\u0005\u0317\u018c\u0002\u0882\u0883\u0005\u0305", + "\u0183\u0002\u0883\u0884\u0005\u0305\u0183\u0002\u0884\u0186\u0003\u0002", + "\u0002\u0002\u0885\u0886\u0005\u0317\u018c\u0002\u0886\u0887\u0005\u0315", + "\u018b\u0002\u0887\u0188\u0003\u0002\u0002\u0002\u0888\u0889\u0005\u0317", + "\u018c\u0002\u0889\u088a\u0005\u0315\u018b\u0002\u088a\u088b\u0005\u0311", + "\u0189\u0002\u088b\u088c\u0005\u032b\u0196\u0002\u088c\u018a\u0003\u0002", + "\u0002\u0002\u088d\u088e\u0005\u0317\u018c\u0002\u088e\u088f\u0005\u0319", + "\u018d\u0002\u088f\u0890\u0005\u0303\u0182\u0002\u0890\u0891\u0005\u0315", + "\u018b\u0002\u0891\u018c\u0003\u0002\u0002\u0002\u0892\u0893\u0005\u0317", + "\u018c\u0002\u0893\u0894\u0005\u031d\u018f\u0002\u0894\u018e\u0003\u0002", + "\u0002\u0002\u0895\u0896\u0005\u0317\u018c\u0002\u0896\u0897\u0005\u031d", + "\u018f\u0002\u0897\u0898\u0005\u0301\u0181\u0002\u0898\u0899\u0005\u0303", + "\u0182\u0002\u0899\u089a\u0005\u031d\u018f\u0002\u089a\u0190\u0003\u0002", + "\u0002\u0002\u089b\u089c\u0005\u0317\u018c\u0002\u089c\u089d\u0005\u0323", + "\u0192\u0002\u089d\u089e\u0005\u0321\u0191\u0002\u089e\u0192\u0003\u0002", + "\u0002\u0002\u089f\u08a0\u0005\u0317\u018c\u0002\u08a0\u08a1\u0005\u0323", + "\u0192\u0002\u08a1\u08a2\u0005\u0321\u0191\u0002\u08a2\u08a3\u0005\u0303", + "\u0182\u0002\u08a3\u08a4\u0005\u031d\u018f\u0002\u08a4\u0194\u0003\u0002", + "\u0002\u0002\u08a5\u08a6\u0005\u0317\u018c\u0002\u08a6\u08a7\u0005\u0325", + "\u0193\u0002\u08a7\u08a8\u0005\u0303\u0182\u0002\u08a8\u08a9\u0005\u031d", + "\u018f\u0002\u08a9\u0196\u0003\u0002\u0002\u0002\u08aa\u08ab\u0005\u0317", + "\u018c\u0002\u08ab\u08ac\u0005\u0325\u0193\u0002\u08ac\u08ad\u0005\u0303", + "\u0182\u0002\u08ad\u08ae\u0005\u031d\u018f\u0002\u08ae\u08af\u0005\u0327", + "\u0194\u0002\u08af\u08b0\u0005\u031d\u018f\u0002\u08b0\u08b1\u0005\u030b", + "\u0186\u0002\u08b1\u08b2\u0005\u0321\u0191\u0002\u08b2\u08b3\u0005\u0303", + "\u0182\u0002\u08b3\u0198\u0003\u0002\u0002\u0002\u08b4\u08b5\u0005\u0317", + "\u018c\u0002\u08b5\u08b6\u0005\u0327\u0194\u0002\u08b6\u08b7\u0005\u0315", + "\u018b\u0002\u08b7\u08b8\u0005\u0303\u0182\u0002\u08b8\u08b9\u0005\u031d", + "\u018f\u0002\u08b9\u019a\u0003\u0002\u0002\u0002\u08ba\u08bb\u0005\u0319", + "\u018d\u0002\u08bb\u08bc\u0005\u02fb\u017e\u0002\u08bc\u08bd\u0005\u02ff", + "\u0180\u0002\u08bd\u08be\u0005\u030f\u0188\u0002\u08be\u08bf\u0005\u02fb", + "\u017e\u0002\u08bf\u08c0\u0005\u0307\u0184\u0002\u08c0\u08c1\u0005\u0303", + "\u0182\u0002\u08c1\u019c\u0003\u0002\u0002\u0002\u08c2\u08c3\u0005\u0319", + "\u018d\u0002\u08c3\u08c4\u0005\u02fb\u017e\u0002\u08c4\u08c5\u0005\u031d", + "\u018f\u0002\u08c5\u08c6\u0005\u0321\u0191\u0002\u08c6\u08c7\u0005\u030b", + "\u0186\u0002\u08c7\u08c8\u0005\u0321\u0191\u0002\u08c8\u08c9\u0005\u030b", + "\u0186\u0002\u08c9\u08ca\u0005\u0317\u018c\u0002\u08ca\u08cb\u0005\u0315", + "\u018b\u0002\u08cb\u019e\u0003\u0002\u0002\u0002\u08cc\u08cd\u0005\u0319", + "\u018d\u0002\u08cd\u08ce\u0005\u02ff\u0180\u0002\u08ce\u08cf\u0005\u0321", + "\u0191\u0002\u08cf\u08d0\u0005\u0305\u0183\u0002\u08d0\u08d1\u0005\u031d", + "\u018f\u0002\u08d1\u08d2\u0005\u0303\u0182\u0002\u08d2\u08d3\u0005\u0303", + "\u0182\u0002\u08d3\u01a0\u0003\u0002\u0002\u0002\u08d4\u08d5\u0005\u0319", + "\u018d\u0002\u08d5\u08d6\u0005\u02ff\u0180\u0002\u08d6\u08d7\u0005\u0321", + "\u0191\u0002\u08d7\u08d8\u0005\u0323\u0192\u0002\u08d8\u08d9\u0005\u031f", + "\u0190\u0002\u08d9\u08da\u0005\u0303\u0182\u0002\u08da\u08db\u0005\u0301", + "\u0181\u0002\u08db\u01a2\u0003\u0002\u0002\u0002\u08dc\u08dd\u0005\u0319", + "\u018d\u0002\u08dd\u08de\u0005\u0311\u0189\u0002\u08de\u08df\u0005\u031f", + "\u0190\u0002\u08df\u08e0\u0007a\u0002\u0002\u08e0\u08e1\u0005\u030b", + "\u0186\u0002\u08e1\u08e2\u0005\u0315\u018b\u0002\u08e2\u08e3\u0005\u0321", + "\u0191\u0002\u08e3\u08e4\u0005\u0303\u0182\u0002\u08e4\u08e5\u0005\u0307", + "\u0184\u0002\u08e5\u08e6\u0005\u0303\u0182\u0002\u08e6\u08e7\u0005\u031d", + "\u018f\u0002\u08e7\u01a4\u0003\u0002\u0002\u0002\u08e8\u08e9\u0005\u0319", + "\u018d\u0002\u08e9\u08ea\u0005\u031d\u018f\u0002\u08ea\u08eb\u0005\u0303", + "\u0182\u0002\u08eb\u08ec\u0005\u02ff\u0180\u0002\u08ec\u08ed\u0005\u030b", + "\u0186\u0002\u08ed\u08ee\u0005\u031f\u0190\u0002\u08ee\u08ef\u0005\u030b", + "\u0186\u0002\u08ef\u08f0\u0005\u0317\u018c\u0002\u08f0\u08f1\u0005\u0315", + "\u018b\u0002\u08f1\u01a6\u0003\u0002\u0002\u0002\u08f2\u08f3\u0005\u0319", + "\u018d\u0002\u08f3\u08f4\u0005\u031d\u018f\u0002\u08f4\u08f5\u0005\u0303", + "\u0182\u0002\u08f5\u08f6\u0005\u031f\u0190\u0002\u08f6\u08f7\u0005\u0303", + "\u0182\u0002\u08f7\u08f8\u0005\u031d\u018f\u0002\u08f8\u08f9\u0005\u0325", + "\u0193\u0002\u08f9\u08fa\u0005\u0303\u0182\u0002\u08fa\u01a8\u0003\u0002", + "\u0002\u0002\u08fb\u08fc\u0005\u0319\u018d\u0002\u08fc\u08fd\u0005\u031d", + "\u018f\u0002\u08fd\u08fe\u0005\u030b\u0186\u0002\u08fe\u08ff\u0005\u0313", + "\u018a\u0002\u08ff\u0900\u0005\u02fb\u017e\u0002\u0900\u0901\u0005\u031d", + "\u018f\u0002\u0901\u0902\u0005\u032b\u0196\u0002\u0902\u01aa\u0003\u0002", + "\u0002\u0002\u0903\u0904\u0005\u0319\u018d\u0002\u0904\u0905\u0005\u031d", + "\u018f\u0002\u0905\u0906\u0005\u030b\u0186\u0002\u0906\u0907\u0005\u0315", + "\u018b\u0002\u0907\u0908\u0005\u0321\u0191\u0002\u0908\u01ac\u0003\u0002", + "\u0002\u0002\u0909\u090a\u0005\u0319\u018d\u0002\u090a\u090b\u0005\u031d", + "\u018f\u0002\u090b\u090c\u0005\u0317\u018c\u0002\u090c\u090d\u0005\u02ff", + "\u0180\u0002\u090d\u01ae\u0003\u0002\u0002\u0002\u090e\u090f\u0005\u0319", + "\u018d\u0002\u090f\u0910\u0005\u031d\u018f\u0002\u0910\u0911\u0005\u0317", + "\u018c\u0002\u0911\u0912\u0005\u02ff\u0180\u0002\u0912\u0913\u0005\u0303", + "\u0182\u0002\u0913\u0914\u0005\u0301\u0181\u0002\u0914\u0915\u0005\u0323", + "\u0192\u0002\u0915\u0916\u0005\u031d\u018f\u0002\u0916\u0917\u0005\u0303", + "\u0182\u0002\u0917\u01b0\u0003\u0002\u0002\u0002\u0918\u0919\u0005\u031b", + "\u018e\u0002\u0919\u091a\u0005\u0323\u0192\u0002\u091a\u091b\u0005\u02fb", + "\u017e\u0002\u091b\u091c\u0005\u0311\u0189\u0002\u091c\u091d\u0005\u030b", + "\u0186\u0002\u091d\u091e\u0005\u0305\u0183\u0002\u091e\u091f\u0005\u032b", + "\u0196\u0002\u091f\u01b2\u0003\u0002\u0002\u0002\u0920\u0921\u0005\u031b", + "\u018e\u0002\u0921\u0922\u0005\u0323\u0192\u0002\u0922\u0923\u0005\u0303", + "\u0182\u0002\u0923\u0924\u0005\u031d\u018f\u0002\u0924\u0925\u0005\u032b", + "\u0196\u0002\u0925\u0926\u0007a\u0002\u0002\u0926\u0927\u0005\u02fd", + "\u017f\u0002\u0927\u0928\u0005\u02fb\u017e\u0002\u0928\u0929\u0005\u0315", + "\u018b\u0002\u0929\u092a\u0005\u0301\u0181\u0002\u092a\u01b4\u0003\u0002", + "\u0002\u0002\u092b\u092c\u0005\u031b\u018e\u0002\u092c\u092d\u0005\u0323", + "\u0192\u0002\u092d\u092e\u0005\u030b\u0186\u0002\u092e\u092f\u0005\u0321", + "\u0191\u0002\u092f\u01b6\u0003\u0002\u0002\u0002\u0930\u0931\u0005\u031b", + "\u018e\u0002\u0931\u0932\u0005\u0323\u0192\u0002\u0932\u0933\u0005\u0317", + "\u018c\u0002\u0933\u0934\u0005\u0321\u0191\u0002\u0934\u0935\u0005\u0303", + "\u0182\u0002\u0935\u0936\u0005\u0301\u0181\u0002\u0936\u0937\u0007a", + "\u0002\u0002\u0937\u0938\u0005\u030b\u0186\u0002\u0938\u0939\u0005\u0301", + "\u0181\u0002\u0939\u093a\u0005\u0303\u0182\u0002\u093a\u093b\u0005\u0315", + "\u018b\u0002\u093b\u093c\u0005\u0321\u0191\u0002\u093c\u093d\u0005\u030b", + "\u0186\u0002\u093d\u093e\u0005\u0305\u0183\u0002\u093e\u093f\u0005\u030b", + "\u0186\u0002\u093f\u0940\u0005\u0303\u0182\u0002\u0940\u0941\u0005\u031d", + "\u018f\u0002\u0941\u01b8\u0003\u0002\u0002\u0002\u0942\u0943\u0005\u031d", + "\u018f\u0002\u0943\u0944\u0005\u02fb\u017e\u0002\u0944\u0945\u0005\u030b", + "\u0186\u0002\u0945\u0946\u0005\u031f\u0190\u0002\u0946\u0947\u0005\u0303", + "\u0182\u0002\u0947\u01ba\u0003\u0002\u0002\u0002\u0948\u0949\u0005\u031d", + "\u018f\u0002\u0949\u094a\u0005\u0303\u0182\u0002\u094a\u094b\u0005\u02fb", + "\u017e\u0002\u094b\u094c\u0005\u0311\u0189\u0002\u094c\u01bc\u0003\u0002", + "\u0002\u0002\u094d\u094e\u0005\u031d\u018f\u0002\u094e\u094f\u0005\u0303", + "\u0182\u0002\u094f\u0950\u0005\u0305\u0183\u0002\u0950\u0951\u0005\u0303", + "\u0182\u0002\u0951\u0952\u0005\u031d\u018f\u0002\u0952\u0953\u0005\u0303", + "\u0182\u0002\u0953\u0954\u0005\u0315\u018b\u0002\u0954\u0955\u0005\u02ff", + "\u0180\u0002\u0955\u0956\u0005\u0303\u0182\u0002\u0956\u0957\u0005\u031f", + "\u0190\u0002\u0957\u01be\u0003\u0002\u0002\u0002\u0958\u0959\u0005\u031d", + "\u018f\u0002\u0959\u095a\u0005\u0303\u0182\u0002\u095a\u095b\u0005\u0307", + "\u0184\u0002\u095b\u095c\u0005\u0303\u0182\u0002\u095c\u095d\u0005\u0329", + "\u0195\u0002\u095d\u095e\u0005\u0319\u018d\u0002\u095e\u01c0\u0003\u0002", + "\u0002\u0002\u095f\u0960\u0005\u031d\u018f\u0002\u0960\u0961\u0005\u0303", + "\u0182\u0002\u0961\u0962\u0005\u0319\u018d\u0002\u0962\u0963\u0005\u0311", + "\u0189\u0002\u0963\u0964\u0005\u02fb\u017e\u0002\u0964\u0965\u0005\u02ff", + "\u0180\u0002\u0965\u0966\u0005\u0303\u0182\u0002\u0966\u01c2\u0003\u0002", + "\u0002\u0002\u0967\u0968\u0005\u031d\u018f\u0002\u0968\u0969\u0005\u0303", + "\u0182\u0002\u0969\u096a\u0005\u031f\u0190\u0002\u096a\u096b\u0005\u030b", + "\u0186\u0002\u096b\u096c\u0005\u0307\u0184\u0002\u096c\u096d\u0005\u0315", + "\u018b\u0002\u096d\u096e\u0005\u02fb\u017e\u0002\u096e\u096f\u0005\u0311", + "\u0189\u0002\u096f\u01c4\u0003\u0002\u0002\u0002\u0970\u0971\u0005\u031d", + "\u018f\u0002\u0971\u0972\u0005\u0303\u0182\u0002\u0972\u0973\u0005\u031f", + "\u0190\u0002\u0973\u0974\u0005\u0321\u0191\u0002\u0974\u0975\u0005\u031d", + "\u018f\u0002\u0975\u0976\u0005\u030b\u0186\u0002\u0976\u0977\u0005\u02ff", + "\u0180\u0002\u0977\u0978\u0005\u0321\u0191\u0002\u0978\u01c6\u0003\u0002", + "\u0002\u0002\u0979\u097a\u0005\u031d\u018f\u0002\u097a\u097b\u0005\u0303", + "\u0182\u0002\u097b\u097c\u0005\u031f\u0190\u0002\u097c\u097d\u0005\u0323", + "\u0192\u0002\u097d\u097e\u0005\u0311\u0189\u0002\u097e\u097f\u0005\u0321", + "\u0191\u0002\u097f\u01c8\u0003\u0002\u0002\u0002\u0980\u0981\u0005\u031d", + "\u018f\u0002\u0981\u0982\u0005\u0303\u0182\u0002\u0982\u0983\u0005\u031f", + "\u0190\u0002\u0983\u0984\u0005\u0323\u0192\u0002\u0984\u0985\u0005\u0311", + "\u0189\u0002\u0985\u0986\u0005\u0321\u0191\u0002\u0986\u0987\u0007a", + "\u0002\u0002\u0987\u0988\u0005\u031f\u0190\u0002\u0988\u0989\u0005\u0303", + "\u0182\u0002\u0989\u098a\u0005\u0321\u0191\u0002\u098a\u098b\u0007a", + "\u0002\u0002\u098b\u098c\u0005\u0311\u0189\u0002\u098c\u098d\u0005\u0317", + "\u018c\u0002\u098d\u098e\u0005\u02ff\u0180\u0002\u098e\u098f\u0005\u02fb", + "\u017e\u0002\u098f\u0990\u0005\u0321\u0191\u0002\u0990\u0991\u0005\u0317", + "\u018c\u0002\u0991\u0992\u0005\u031d\u018f\u0002\u0992\u01ca\u0003\u0002", + "\u0002\u0002\u0993\u0994\u0005\u031d\u018f\u0002\u0994\u0995\u0005\u0303", + "\u0182\u0002\u0995\u0996\u0005\u0321\u0191\u0002\u0996\u0997\u0005\u0323", + "\u0192\u0002\u0997\u0998\u0005\u031d\u018f\u0002\u0998\u0999\u0005\u0315", + "\u018b\u0002\u0999\u01cc\u0003\u0002\u0002\u0002\u099a\u099b\u0005\u031d", + "\u018f\u0002\u099b\u099c\u0005\u0303\u0182\u0002\u099c\u099d\u0005\u0321", + "\u0191\u0002\u099d\u099e\u0005\u0323\u0192\u0002\u099e\u099f\u0005\u031d", + "\u018f\u0002\u099f\u09a0\u0005\u0315\u018b\u0002\u09a0\u09a1\u0005\u031f", + "\u0190\u0002\u09a1\u01ce\u0003\u0002\u0002\u0002\u09a2\u09a3\u0005\u031d", + "\u018f\u0002\u09a3\u09a4\u0005\u0303\u0182\u0002\u09a4\u09a5\u0005\u0325", + "\u0193\u0002\u09a5\u09a6\u0005\u0303\u0182\u0002\u09a6\u09a7\u0005\u031d", + "\u018f\u0002\u09a7\u09a8\u0005\u031f\u0190\u0002\u09a8\u09a9\u0005\u0303", + "\u0182\u0002\u09a9\u01d0\u0003\u0002\u0002\u0002\u09aa\u09ab\u0005\u031d", + "\u018f\u0002\u09ab\u09ac\u0005\u030b\u0186\u0002\u09ac\u09ad\u0005\u0307", + "\u0184\u0002\u09ad\u09ae\u0005\u0309\u0185\u0002\u09ae\u09af\u0005\u0321", + "\u0191\u0002\u09af\u01d2\u0003\u0002\u0002\u0002\u09b0\u09b1\u0005\u031d", + "\u018f\u0002\u09b1\u09b2\u0005\u0311\u0189\u0002\u09b2\u09b3\u0005\u030b", + "\u0186\u0002\u09b3\u09b4\u0005\u030f\u0188\u0002\u09b4\u09b5\u0005\u0303", + "\u0182\u0002\u09b5\u01d4\u0003\u0002\u0002\u0002\u09b6\u09b7\u0005\u031d", + "\u018f\u0002\u09b7\u09b8\u0005\u0317\u018c\u0002\u09b8\u09b9\u0005\u0311", + "\u0189\u0002\u09b9\u09ba\u0005\u0303\u0182\u0002\u09ba\u01d6\u0003\u0002", + "\u0002\u0002\u09bb\u09bc\u0005\u031d\u018f\u0002\u09bc\u09bd\u0005\u0317", + "\u018c\u0002\u09bd\u09be\u0005\u0311\u0189\u0002\u09be\u09bf\u0005\u0311", + "\u0189\u0002\u09bf\u09c0\u0005\u02fd\u017f\u0002\u09c0\u09c1\u0005\u02fb", + "\u017e\u0002\u09c1\u09c2\u0005\u02ff\u0180\u0002\u09c2\u09c3\u0005\u030f", + "\u0188\u0002\u09c3\u01d8\u0003\u0002\u0002\u0002\u09c4\u09c5\u0005\u031d", + "\u018f\u0002\u09c5\u09c6\u0005\u0317\u018c\u0002\u09c6\u09c7\u0005\u0327", + "\u0194\u0002\u09c7\u01da\u0003\u0002\u0002\u0002\u09c8\u09c9\u0005\u031d", + "\u018f\u0002\u09c9\u09ca\u0005\u0317\u018c\u0002\u09ca\u09cb\u0005\u0327", + "\u0194\u0002\u09cb\u09cc\u0005\u031f\u0190\u0002\u09cc\u01dc\u0003\u0002", + "\u0002\u0002\u09cd\u09ce\u0005\u031d\u018f\u0002\u09ce\u09cf\u0005\u0317", + "\u018c\u0002\u09cf\u09d0\u0005\u0327\u0194\u0002\u09d0\u09d1\u0005\u0321", + "\u0191\u0002\u09d1\u09d2\u0005\u032b\u0196\u0002\u09d2\u09d3\u0005\u0319", + "\u018d\u0002\u09d3\u09d4\u0005\u0303\u0182\u0002\u09d4\u01de\u0003\u0002", + "\u0002\u0002\u09d5\u09d6\u0005\u031d\u018f\u0002\u09d6\u09d7\u0005\u0317", + "\u018c\u0002\u09d7\u09d8\u0005\u0327\u0194\u0002\u09d8\u09d9\u0007a", + "\u0002\u0002\u09d9\u09da\u0005\u02ff\u0180\u0002\u09da\u09db\u0005\u0317", + "\u018c\u0002\u09db\u09dc\u0005\u0323\u0192\u0002\u09dc\u09dd\u0005\u0315", + "\u018b\u0002\u09dd\u09de\u0005\u0321\u0191\u0002\u09de\u01e0\u0003\u0002", + "\u0002\u0002\u09df\u09e0\u0005\u031d\u018f\u0002\u09e0\u09e1\u0005\u031d", + "\u018f\u0002\u09e1\u01e2\u0003\u0002\u0002\u0002\u09e2\u09e3\u0005\u031d", + "\u018f\u0002\u09e3\u09e4\u0005\u031f\u0190\u0002\u09e4\u01e4\u0003\u0002", + "\u0002\u0002\u09e5\u09e6\u0005\u0319\u018d\u0002\u09e6\u09e7\u0005\u0327", + "\u0194\u0002\u09e7\u09e8\u0005\u0301\u0181\u0002\u09e8\u01e6\u0003\u0002", + "\u0002\u0002\u09e9\u09ea\u0005\u0321\u0191\u0002\u09ea\u09eb\u0005\u031d", + "\u018f\u0002\u09eb\u09ec\u0005\u030b\u0186\u0002\u09ec\u09ed\u0005\u0313", + "\u018a\u0002\u09ed\u01e8\u0003\u0002\u0002\u0002\u09ee\u09ef\u0005\u031f", + "\u0190\u0002\u09ef\u09f0\u0005\u02ff\u0180\u0002\u09f0\u09f1\u0005\u0309", + "\u0185\u0002\u09f1\u09f2\u0005\u0303\u0182\u0002\u09f2\u09f3\u0005\u0313", + "\u018a\u0002\u09f3\u09f4\u0005\u02fb\u017e\u0002\u09f4\u01ea\u0003\u0002", + "\u0002\u0002\u09f5\u09f6\u0005\u031f\u0190\u0002\u09f6\u09f7\u0005\u0303", + "\u0182\u0002\u09f7\u09f8\u0005\u02ff\u0180\u0002\u09f8\u09f9\u0005\u0317", + "\u018c\u0002\u09f9\u09fa\u0005\u0315\u018b\u0002\u09fa\u09fb\u0005\u0301", + "\u0181\u0002\u09fb\u01ec\u0003\u0002\u0002\u0002\u09fc\u09fd\u0005\u031f", + "\u0190\u0002\u09fd\u09fe\u0005\u0303\u0182\u0002\u09fe\u09ff\u0005\u02ff", + "\u0180\u0002\u09ff\u0a00\u0005\u0317\u018c\u0002\u0a00\u0a01\u0005\u0315", + "\u018b\u0002\u0a01\u0a02\u0005\u0301\u0181\u0002\u0a02\u0a03\u0005\u031f", + "\u0190\u0002\u0a03\u01ee\u0003\u0002\u0002\u0002\u0a04\u0a05\u0005\u031f", + "\u0190\u0002\u0a05\u0a06\u0005\u0303\u0182\u0002\u0a06\u0a07\u0005\u02ff", + "\u0180\u0002\u0a07\u0a08\u0005\u0323\u0192\u0002\u0a08\u0a09\u0005\u031d", + "\u018f\u0002\u0a09\u0a0a\u0005\u030b\u0186\u0002\u0a0a\u0a0b\u0005\u0321", + "\u0191\u0002\u0a0b\u0a0c\u0005\u032b\u0196\u0002\u0a0c\u01f0\u0003\u0002", + "\u0002\u0002\u0a0d\u0a0e\u0005\u031f\u0190\u0002\u0a0e\u0a0f\u0005\u0303", + "\u0182\u0002\u0a0f\u0a10\u0005\u0307\u0184\u0002\u0a10\u0a11\u0005\u0313", + "\u018a\u0002\u0a11\u0a12\u0005\u0303\u0182\u0002\u0a12\u0a13\u0005\u0315", + "\u018b\u0002\u0a13\u0a14\u0005\u0321\u0191\u0002\u0a14\u01f2\u0003\u0002", + "\u0002\u0002\u0a15\u0a16\u0005\u031f\u0190\u0002\u0a16\u0a17\u0005\u0303", + "\u0182\u0002\u0a17\u0a18\u0005\u0311\u0189\u0002\u0a18\u01f4\u0003\u0002", + "\u0002\u0002\u0a19\u0a1a\u0005\u031f\u0190\u0002\u0a1a\u0a1b\u0005\u0303", + "\u0182\u0002\u0a1b\u0a1c\u0005\u0311\u0189\u0002\u0a1c\u0a1d\u0005\u0303", + "\u0182\u0002\u0a1d\u0a1e\u0005\u02ff\u0180\u0002\u0a1e\u0a1f\u0005\u0321", + "\u0191\u0002\u0a1f\u01f6\u0003\u0002\u0002\u0002\u0a20\u0a21\u0005\u031f", + "\u0190\u0002\u0a21\u0a22\u0005\u0303\u0182\u0002\u0a22\u0a23\u0005\u0321", + "\u0191\u0002\u0a23\u01f8\u0003\u0002\u0002\u0002\u0a24\u0a25\u0005\u031f", + "\u0190\u0002\u0a25\u0a26\u0005\u0303\u0182\u0002\u0a26\u0a27\u0005\u031f", + "\u0190\u0002\u0a27\u0a28\u0005\u031f\u0190\u0002\u0a28\u0a29\u0005\u030b", + "\u0186\u0002\u0a29\u0a2a\u0005\u0317\u018c\u0002\u0a2a\u0a2b\u0005\u0315", + "\u018b\u0002\u0a2b\u01fa\u0003\u0002\u0002\u0002\u0a2c\u0a2d\u0005\u031f", + "\u0190\u0002\u0a2d\u0a2e\u0005\u0303\u0182\u0002\u0a2e\u0a2f\u0005\u031f", + "\u0190\u0002\u0a2f\u0a30\u0005\u031f\u0190\u0002\u0a30\u0a31\u0005\u030b", + "\u0186\u0002\u0a31\u0a32\u0005\u0317\u018c\u0002\u0a32\u0a33\u0005\u0315", + "\u018b\u0002\u0a33\u0a34\u0005\u031f\u0190\u0002\u0a34\u01fc\u0003\u0002", + "\u0002\u0002\u0a35\u0a36\u0005\u031f\u0190\u0002\u0a36\u0a37\u0005\u0303", + "\u0182\u0002\u0a37\u0a38\u0005\u0321\u0191\u0002\u0a38\u0a39\u0005\u031f", + "\u0190\u0002\u0a39\u01fe\u0003\u0002\u0002\u0002\u0a3a\u0a3b\u0005\u031f", + "\u0190\u0002\u0a3b\u0a3c\u0005\u0309\u0185\u0002\u0a3c\u0a3d\u0005\u02fb", + "\u017e\u0002\u0a3d\u0a3e\u0005\u031d\u018f\u0002\u0a3e\u0a3f\u0005\u0303", + "\u0182\u0002\u0a3f\u0200\u0003\u0002\u0002\u0002\u0a40\u0a41\u0005\u031f", + "\u0190\u0002\u0a41\u0a42\u0005\u030b\u0186\u0002\u0a42\u0a43\u0005\u0307", + "\u0184\u0002\u0a43\u0a44\u0005\u0315\u018b\u0002\u0a44\u0a45\u0005\u02fb", + "\u017e\u0002\u0a45\u0a46\u0005\u0311\u0189\u0002\u0a46\u0202\u0003\u0002", + "\u0002\u0002\u0a47\u0a48\u0005\u031f\u0190\u0002\u0a48\u0a49\u0005\u030b", + "\u0186\u0002\u0a49\u0a4a\u0005\u0313\u018a\u0002\u0a4a\u0a4b\u0005\u0319", + "\u018d\u0002\u0a4b\u0a4c\u0005\u0311\u0189\u0002\u0a4c\u0a4d\u0005\u0303", + "\u0182\u0002\u0a4d\u0a4e\u0007a\u0002\u0002\u0a4e\u0a4f\u0005\u0301", + "\u0181\u0002\u0a4f\u0a50\u0005\u0317\u018c\u0002\u0a50\u0a51\u0005\u0323", + "\u0192\u0002\u0a51\u0a52\u0005\u02fd\u017f\u0002\u0a52\u0a53\u0005\u0311", + "\u0189\u0002\u0a53\u0a54\u0005\u0303\u0182\u0002\u0a54\u0204\u0003\u0002", + "\u0002\u0002\u0a55\u0a56\u0005\u031f\u0190\u0002\u0a56\u0a57\u0005\u030b", + "\u0186\u0002\u0a57\u0a58\u0005\u0313\u018a\u0002\u0a58\u0a59\u0005\u0319", + "\u018d\u0002\u0a59\u0a5a\u0005\u0311\u0189\u0002\u0a5a\u0a5b\u0005\u0303", + "\u0182\u0002\u0a5b\u0a5c\u0007a\u0002\u0002\u0a5c\u0a5d\u0005\u0305", + "\u0183\u0002\u0a5d\u0a5e\u0005\u0311\u0189\u0002\u0a5e\u0a5f\u0005\u0317", + "\u018c\u0002\u0a5f\u0a60\u0005\u02fb\u017e\u0002\u0a60\u0a61\u0005\u0321", + "\u0191\u0002\u0a61\u0206\u0003\u0002\u0002\u0002\u0a62\u0a63\u0005\u031f", + "\u0190\u0002\u0a63\u0a64\u0005\u030b\u0186\u0002\u0a64\u0a65\u0005\u0313", + "\u018a\u0002\u0a65\u0a66\u0005\u0319\u018d\u0002\u0a66\u0a67\u0005\u0311", + "\u0189\u0002\u0a67\u0a68\u0005\u0303\u0182\u0002\u0a68\u0a69\u0007a", + "\u0002\u0002\u0a69\u0a6a\u0005\u030b\u0186\u0002\u0a6a\u0a6b\u0005\u0315", + "\u018b\u0002\u0a6b\u0a6c\u0005\u0321\u0191\u0002\u0a6c\u0a6d\u0005\u0303", + "\u0182\u0002\u0a6d\u0a6e\u0005\u0307\u0184\u0002\u0a6e\u0a6f\u0005\u0303", + "\u0182\u0002\u0a6f\u0a70\u0005\u031d\u018f\u0002\u0a70\u0208\u0003\u0002", + "\u0002\u0002\u0a71\u0a72\u0005\u031f\u0190\u0002\u0a72\u0a73\u0005\u0313", + "\u018a\u0002\u0a73\u0a74\u0005\u02fb\u017e\u0002\u0a74\u0a75\u0005\u0311", + "\u0189\u0002\u0a75\u0a76\u0005\u0311\u0189\u0002\u0a76\u0a77\u0005\u0301", + "\u0181\u0002\u0a77\u0a78\u0005\u02fb\u017e\u0002\u0a78\u0a79\u0005\u0321", + "\u0191\u0002\u0a79\u0a7a\u0005\u0303\u0182\u0002\u0a7a\u0a7b\u0005\u0321", + "\u0191\u0002\u0a7b\u0a7c\u0005\u030b\u0186\u0002\u0a7c\u0a7d\u0005\u0313", + "\u018a\u0002\u0a7d\u0a7e\u0005\u0303\u0182\u0002\u0a7e\u020a\u0003\u0002", + "\u0002\u0002\u0a7f\u0a80\u0005\u031f\u0190\u0002\u0a80\u0a81\u0005\u0313", + "\u018a\u0002\u0a81\u0a82\u0005\u02fb\u017e\u0002\u0a82\u0a83\u0005\u0311", + "\u0189\u0002\u0a83\u0a84\u0005\u0311\u0189\u0002\u0a84\u0a85\u0005\u030b", + "\u0186\u0002\u0a85\u0a86\u0005\u0315\u018b\u0002\u0a86\u0a87\u0005\u0321", + "\u0191\u0002\u0a87\u020c\u0003\u0002\u0002\u0002\u0a88\u0a89\u0005\u031f", + "\u0190\u0002\u0a89\u0a8a\u0005\u031b\u018e\u0002\u0a8a\u0a8b\u0005\u0311", + "\u0189\u0002\u0a8b\u020e\u0003\u0002\u0002\u0002\u0a8c\u0a8d\u0005\u031f", + "\u0190\u0002\u0a8d\u0a8e\u0005\u031b\u018e\u0002\u0a8e\u0a8f\u0005\u0311", + "\u0189\u0002\u0a8f\u0a90\u0005\u0303\u0182\u0002\u0a90\u0a91\u0005\u0329", + "\u0195\u0002\u0a91\u0a92\u0005\u02ff\u0180\u0002\u0a92\u0a93\u0005\u0303", + "\u0182\u0002\u0a93\u0a94\u0005\u0319\u018d\u0002\u0a94\u0a95\u0005\u0321", + "\u0191\u0002\u0a95\u0a96\u0005\u030b\u0186\u0002\u0a96\u0a97\u0005\u0317", + "\u018c\u0002\u0a97\u0a98\u0005\u0315\u018b\u0002\u0a98\u0210\u0003\u0002", + "\u0002\u0002\u0a99\u0a9a\u0005\u031f\u0190\u0002\u0a9a\u0a9b\u0005\u031b", + "\u018e\u0002\u0a9b\u0a9c\u0005\u0311\u0189\u0002\u0a9c\u0a9d\u0005\u030b", + "\u0186\u0002\u0a9d\u0a9e\u0005\u0315\u018b\u0002\u0a9e\u0a9f\u0005\u031f", + "\u0190\u0002\u0a9f\u0aa0\u0005\u0303\u0182\u0002\u0aa0\u0aa1\u0005\u031d", + "\u018f\u0002\u0aa1\u0aa2\u0005\u0321\u0191\u0002\u0aa2\u0212\u0003\u0002", + "\u0002\u0002\u0aa3\u0aa4\u0005\u031f\u0190\u0002\u0aa4\u0aa5\u0005\u031b", + "\u018e\u0002\u0aa5\u0aa6\u0005\u0311\u0189\u0002\u0aa6\u0aa7\u0005\u031f", + "\u0190\u0002\u0aa7\u0aa8\u0005\u0321\u0191\u0002\u0aa8\u0aa9\u0005\u02fb", + "\u017e\u0002\u0aa9\u0aaa\u0005\u0321\u0191\u0002\u0aaa\u0aab\u0005\u0303", + "\u0182\u0002\u0aab\u0214\u0003\u0002\u0002\u0002\u0aac\u0aad\u0005\u031f", + "\u0190\u0002\u0aad\u0aae\u0005\u031b\u018e\u0002\u0aae\u0aaf\u0005\u0311", + "\u0189\u0002\u0aaf\u0ab0\u0005\u0327\u0194\u0002\u0ab0\u0ab1\u0005\u02fb", + "\u017e\u0002\u0ab1\u0ab2\u0005\u031d\u018f\u0002\u0ab2\u0ab3\u0005\u0315", + "\u018b\u0002\u0ab3\u0ab4\u0005\u030b\u0186\u0002\u0ab4\u0ab5\u0005\u0315", + "\u018b\u0002\u0ab5\u0ab6\u0005\u0307\u0184\u0002\u0ab6\u0216\u0003\u0002", + "\u0002\u0002\u0ab7\u0ab8\u0005\u031f\u0190\u0002\u0ab8\u0ab9\u0005\u0321", + "\u0191\u0002\u0ab9\u0aba\u0005\u02fb\u017e\u0002\u0aba\u0abb\u0005\u0321", + "\u0191\u0002\u0abb\u0abc\u0005\u031f\u0190\u0002\u0abc\u0218\u0003\u0002", + "\u0002\u0002\u0abd\u0abe\u0005\u031f\u0190\u0002\u0abe\u0abf\u0005\u0321", + "\u0191\u0002\u0abf\u0ac0\u0005\u02fb\u017e\u0002\u0ac0\u0ac1\u0005\u0321", + "\u0191\u0002\u0ac1\u0ac2\u0005\u030b\u0186\u0002\u0ac2\u0ac3\u0005\u031f", + "\u0190\u0002\u0ac3\u0ac4\u0005\u0321\u0191\u0002\u0ac4\u0ac5\u0005\u030b", + "\u0186\u0002\u0ac5\u0ac6\u0005\u02ff\u0180\u0002\u0ac6\u0ac7\u0005\u031f", + "\u0190\u0002\u0ac7\u021a\u0003\u0002\u0002\u0002\u0ac8\u0ac9\u0005\u031f", + "\u0190\u0002\u0ac9\u0aca\u0005\u0321\u0191\u0002\u0aca\u0acb\u0005\u0303", + "\u0182\u0002\u0acb\u0acc\u0005\u0319\u018d\u0002\u0acc\u021c\u0003\u0002", + "\u0002\u0002\u0acd\u0ace\u0005\u031f\u0190\u0002\u0ace\u0acf\u0005\u0321", + "\u0191\u0002\u0acf\u0ad0\u0005\u0317\u018c\u0002\u0ad0\u0ad1\u0005\u031d", + "\u018f\u0002\u0ad1\u0ad2\u0005\u02fb\u017e\u0002\u0ad2\u0ad3\u0005\u0307", + "\u0184\u0002\u0ad3\u0ad4\u0005\u0303\u0182\u0002\u0ad4\u021e\u0003\u0002", + "\u0002\u0002\u0ad5\u0ad6\u0005\u031f\u0190\u0002\u0ad6\u0ad7\u0005\u0321", + "\u0191\u0002\u0ad7\u0ad8\u0005\u0317\u018c\u0002\u0ad8\u0ad9\u0005\u031d", + "\u018f\u0002\u0ad9\u0ada\u0005\u0303\u0182\u0002\u0ada\u0adb\u0005\u0301", + "\u0181\u0002\u0adb\u0220\u0003\u0002\u0002\u0002\u0adc\u0add\u0005\u031f", + "\u0190\u0002\u0add\u0ade\u0005\u0321\u0191\u0002\u0ade\u0adf\u0005\u031d", + "\u018f\u0002\u0adf\u0ae0\u0005\u030b\u0186\u0002\u0ae0\u0ae1\u0005\u0315", + "\u018b\u0002\u0ae1\u0ae2\u0005\u0307\u0184\u0002\u0ae2\u0222\u0003\u0002", + "\u0002\u0002\u0ae3\u0ae4\u0005\u031f\u0190\u0002\u0ae4\u0ae5\u0005\u0323", + "\u0192\u0002\u0ae5\u0ae6\u0005\u02fd\u017f\u0002\u0ae6\u0ae7\u0005\u0301", + "\u0181\u0002\u0ae7\u0ae8\u0005\u030b\u0186\u0002\u0ae8\u0ae9\u0005\u031d", + "\u018f\u0002\u0ae9\u0224\u0003\u0002\u0002\u0002\u0aea\u0aeb\u0005\u031f", + "\u0190\u0002\u0aeb\u0aec\u0005\u0323\u0192\u0002\u0aec\u0aed\u0005\u02fd", + "\u017f\u0002\u0aed\u0aee\u0005\u031f\u0190\u0002\u0aee\u0aef\u0005\u0321", + "\u0191\u0002\u0aef\u0af0\u0005\u031d\u018f\u0002\u0af0\u0af1\u0005\u030b", + "\u0186\u0002\u0af1\u0af2\u0005\u0315\u018b\u0002\u0af2\u0af3\u0005\u0307", + "\u0184\u0002\u0af3\u0226\u0003\u0002\u0002\u0002\u0af4\u0af5\u0005\u031f", + "\u0190\u0002\u0af5\u0af6\u0005\u0323\u0192\u0002\u0af6\u0af7\u0005\u0313", + "\u018a\u0002\u0af7\u0228\u0003\u0002\u0002\u0002\u0af8\u0af9\u0005\u031f", + "\u0190\u0002\u0af9\u0afa\u0005\u0323\u0192\u0002\u0afa\u0afb\u0005\u0313", + "\u018a\u0002\u0afb\u0afc\u0005\u0313\u018a\u0002\u0afc\u0afd\u0005\u02fb", + "\u017e\u0002\u0afd\u0afe\u0005\u031d\u018f\u0002\u0afe\u0aff\u0005\u032b", + "\u0196\u0002\u0aff\u022a\u0003\u0002\u0002\u0002\u0b00\u0b01\u0005\u031f", + "\u0190\u0002\u0b01\u0b02\u0005\u032b\u0196\u0002\u0b02\u0b03\u0005\u031f", + "\u0190\u0002\u0b03\u0b04\u0007a\u0002\u0002\u0b04\u0b05\u0005\u031d", + "\u018f\u0002\u0b05\u0b06\u0005\u0303\u0182\u0002\u0b06\u0b07\u0005\u0305", + "\u0183\u0002\u0b07\u0b08\u0005\u02ff\u0180\u0002\u0b08\u0b09\u0005\u0323", + "\u0192\u0002\u0b09\u0b0a\u0005\u031d\u018f\u0002\u0b0a\u0b0b\u0005\u031f", + "\u0190\u0002\u0b0b\u0b0c\u0005\u0317\u018c\u0002\u0b0c\u0b0d\u0005\u031d", + "\u018f\u0002\u0b0d\u022c\u0003\u0002\u0002\u0002\u0b0e\u0b0f\u0005\u0321", + "\u0191\u0002\u0b0f\u0b10\u0005\u02fb\u017e\u0002\u0b10\u0b11\u0005\u02fd", + "\u017f\u0002\u0b11\u0b12\u0005\u0311\u0189\u0002\u0b12\u0b13\u0005\u0303", + "\u0182\u0002\u0b13\u022e\u0003\u0002\u0002\u0002\u0b14\u0b15\u0005\u0321", + "\u0191\u0002\u0b15\u0b16\u0005\u02fb\u017e\u0002\u0b16\u0b17\u0005\u02fd", + "\u017f\u0002\u0b17\u0b18\u0005\u0311\u0189\u0002\u0b18\u0b19\u0005\u0303", + "\u0182\u0002\u0b19\u0b1a\u0005\u031f\u0190\u0002\u0b1a\u0b1b\u0005\u0319", + "\u018d\u0002\u0b1b\u0b1c\u0005\u02fb\u017e\u0002\u0b1c\u0b1d\u0005\u02ff", + "\u0180\u0002\u0b1d\u0b1e\u0005\u0303\u0182\u0002\u0b1e\u0230\u0003\u0002", + "\u0002\u0002\u0b1f\u0b20\u0005\u0321\u0191\u0002\u0b20\u0b21\u0005\u0303", + "\u0182\u0002\u0b21\u0b22\u0005\u0313\u018a\u0002\u0b22\u0b23\u0005\u0319", + "\u018d\u0002\u0b23\u0b24\u0005\u0317\u018c\u0002\u0b24\u0b25\u0005\u031d", + "\u018f\u0002\u0b25\u0b26\u0005\u02fb\u017e\u0002\u0b26\u0b27\u0005\u031d", + "\u018f\u0002\u0b27\u0b28\u0005\u032b\u0196\u0002\u0b28\u0232\u0003\u0002", + "\u0002\u0002\u0b29\u0b2a\u0005\u0321\u0191\u0002\u0b2a\u0b2b\u0005\u0303", + "\u0182\u0002\u0b2b\u0b2c\u0005\u031d\u018f\u0002\u0b2c\u0b2d\u0005\u0313", + "\u018a\u0002\u0b2d\u0b2e\u0005\u030b\u0186\u0002\u0b2e\u0b2f\u0005\u0315", + "\u018b\u0002\u0b2f\u0b30\u0005\u02fb\u017e\u0002\u0b30\u0b31\u0005\u0321", + "\u0191\u0002\u0b31\u0b32\u0005\u0303\u0182\u0002\u0b32\u0b33\u0005\u0301", + "\u0181\u0002\u0b33\u0234\u0003\u0002\u0002\u0002\u0b34\u0b35\u0005\u0321", + "\u0191\u0002\u0b35\u0b36\u0005\u0303\u0182\u0002\u0b36\u0b37\u0005\u0329", + "\u0195\u0002\u0b37\u0b38\u0005\u0321\u0191\u0002\u0b38\u0b39\u0005\u030b", + "\u0186\u0002\u0b39\u0b3a\u0005\u0313\u018a\u0002\u0b3a\u0b3b\u0005\u02fb", + "\u017e\u0002\u0b3b\u0b3c\u0005\u0307\u0184\u0002\u0b3c\u0b3d\u0005\u0303", + "\u0182\u0002\u0b3d\u0b3e\u0007a\u0002\u0002\u0b3e\u0b3f\u0005\u0317", + "\u018c\u0002\u0b3f\u0b40\u0005\u0315\u018b\u0002\u0b40\u0236\u0003\u0002", + "\u0002\u0002\u0b41\u0b42\u0005\u0321\u0191\u0002\u0b42\u0b43\u0005\u0309", + "\u0185\u0002\u0b43\u0b44\u0005\u0303\u0182\u0002\u0b44\u0b45\u0005\u0315", + "\u018b\u0002\u0b45\u0238\u0003\u0002\u0002\u0002\u0b46\u0b47\u0005\u0321", + "\u0191\u0002\u0b47\u0b48\u0005\u030b\u0186\u0002\u0b48\u0b49\u0005\u0313", + "\u018a\u0002\u0b49\u0b4a\u0005\u0303\u0182\u0002\u0b4a\u0b4b\u0005\u031f", + "\u0190\u0002\u0b4b\u0b4c\u0005\u0321\u0191\u0002\u0b4c\u0b4d\u0005\u02fb", + "\u017e\u0002\u0b4d\u0b4e\u0005\u0313\u018a\u0002\u0b4e\u0b4f\u0005\u0319", + "\u018d\u0002\u0b4f\u023a\u0003\u0002\u0002\u0002\u0b50\u0b51\u0005\u0321", + "\u0191\u0002\u0b51\u0b52\u0005\u030b\u0186\u0002\u0b52\u0b53\u0005\u0315", + "\u018b\u0002\u0b53\u0b54\u0005\u032b\u0196\u0002\u0b54\u0b55\u0005\u030b", + "\u0186\u0002\u0b55\u0b56\u0005\u0315\u018b\u0002\u0b56\u0b57\u0005\u0321", + "\u0191\u0002\u0b57\u023c\u0003\u0002\u0002\u0002\u0b58\u0b59\u0005\u0321", + "\u0191\u0002\u0b59\u0b5a\u0005\u030b\u0186\u0002\u0b5a\u0b5b\u0005\u0321", + "\u0191\u0002\u0b5b\u0b5c\u0005\u0311\u0189\u0002\u0b5c\u0b5d\u0005\u0303", + "\u0182\u0002\u0b5d\u023e\u0003\u0002\u0002\u0002\u0b5e\u0b5f\u0005\u0321", + "\u0191\u0002\u0b5f\u0b60\u0005\u0317\u018c\u0002\u0b60\u0240\u0003\u0002", + "\u0002\u0002\u0b61\u0b62\u0005\u0321\u0191\u0002\u0b62\u0b63\u0005\u0317", + "\u018c\u0002\u0b63\u0b64\u0005\u0319\u018d\u0002\u0b64\u0242\u0003\u0002", + "\u0002\u0002\u0b65\u0b66\u0005\u0321\u0191\u0002\u0b66\u0b67\u0005\u031d", + "\u018f\u0002\u0b67\u0b68\u0005\u02fb\u017e\u0002\u0b68\u0b69\u0005\u0315", + "\u018b\u0002\u0b69\u0b6a\u0005\u031f\u0190\u0002\u0b6a\u0b6b\u0005\u02fb", + "\u017e\u0002\u0b6b\u0b6c\u0005\u02ff\u0180\u0002\u0b6c\u0b6d\u0005\u0321", + "\u0191\u0002\u0b6d\u0b6e\u0005\u030b\u0186\u0002\u0b6e\u0b6f\u0005\u0317", + "\u018c\u0002\u0b6f\u0b70\u0005\u0315\u018b\u0002\u0b70\u0244\u0003\u0002", + "\u0002\u0002\u0b71\u0b72\u0005\u0321\u0191\u0002\u0b72\u0b73\u0005\u031d", + "\u018f\u0002\u0b73\u0b74\u0005\u0323\u0192\u0002\u0b74\u0b75\u0005\u0303", + "\u0182\u0002\u0b75\u0246\u0003\u0002\u0002\u0002\u0b76\u0b77\u0005\u0321", + "\u0191\u0002\u0b77\u0b78\u0005\u031d\u018f\u0002\u0b78\u0b79\u0005\u0323", + "\u0192\u0002\u0b79\u0b7a\u0005\u0315\u018b\u0002\u0b7a\u0b7b\u0005\u02ff", + "\u0180\u0002\u0b7b\u0b7c\u0005\u02fb\u017e\u0002\u0b7c\u0b7d\u0005\u0321", + "\u0191\u0002\u0b7d\u0b7e\u0005\u0303\u0182\u0002\u0b7e\u0248\u0003\u0002", + "\u0002\u0002\u0b7f\u0b80\u0005\u0321\u0191\u0002\u0b80\u0b81\u0005\u032b", + "\u0196\u0002\u0b81\u0b82\u0005\u0319\u018d\u0002\u0b82\u0b83\u0005\u0303", + "\u0182\u0002\u0b83\u024a\u0003\u0002\u0002\u0002\u0b84\u0b85\u0005\u0323", + "\u0192\u0002\u0b85\u0b86\u0005\u0315\u018b\u0002\u0b86\u0b87\u0005\u030b", + "\u0186\u0002\u0b87\u0b88\u0005\u0317\u018c\u0002\u0b88\u0b89\u0005\u0315", + "\u018b\u0002\u0b89\u024c\u0003\u0002\u0002\u0002\u0b8a\u0b8b\u0005\u0323", + "\u0192\u0002\u0b8b\u0b8c\u0005\u0315\u018b\u0002\u0b8c\u0b8d\u0005\u030b", + "\u0186\u0002\u0b8d\u0b8e\u0005\u031b\u018e\u0002\u0b8e\u0b8f\u0005\u0323", + "\u0192\u0002\u0b8f\u0b90\u0005\u0303\u0182\u0002\u0b90\u024e\u0003\u0002", + "\u0002\u0002\u0b91\u0b92\u0005\u0323\u0192\u0002\u0b92\u0b93\u0005\u0319", + "\u018d\u0002\u0b93\u0b94\u0005\u0301\u0181\u0002\u0b94\u0b95\u0005\u02fb", + "\u017e\u0002\u0b95\u0b96\u0005\u0321\u0191\u0002\u0b96\u0b97\u0005\u0303", + "\u0182\u0002\u0b97\u0250\u0003\u0002\u0002\u0002\u0b98\u0b99\u0005\u0323", + "\u0192\u0002\u0b99\u0b9a\u0005\u031d\u018f\u0002\u0b9a\u0252\u0003\u0002", + "\u0002\u0002\u0b9b\u0b9c\u0005\u0323\u0192\u0002\u0b9c\u0b9d\u0005\u031f", + "\u0190\u0002\u0b9d\u0b9e\u0005\u0303\u0182\u0002\u0b9e\u0254\u0003\u0002", + "\u0002\u0002\u0b9f\u0ba0\u0005\u0323\u0192\u0002\u0ba0\u0ba1\u0005\u031f", + "\u0190\u0002\u0ba1\u0ba2\u0005\u030b\u0186\u0002\u0ba2\u0ba3\u0005\u0315", + "\u018b\u0002\u0ba3\u0ba4\u0005\u0307\u0184\u0002\u0ba4\u0256\u0003\u0002", + "\u0002\u0002\u0ba5\u0ba6\u0005\u0325\u0193\u0002\u0ba6\u0ba7\u0005\u02fb", + "\u017e\u0002\u0ba7\u0ba8\u0005\u0311\u0189\u0002\u0ba8\u0ba9\u0005\u0323", + "\u0192\u0002\u0ba9\u0baa\u0005\u0303\u0182\u0002\u0baa\u0258\u0003\u0002", + "\u0002\u0002\u0bab\u0bac\u0005\u0325\u0193\u0002\u0bac\u0bad\u0005\u02fb", + "\u017e\u0002\u0bad\u0bae\u0005\u0311\u0189\u0002\u0bae\u0baf\u0005\u0323", + "\u0192\u0002\u0baf\u0bb0\u0005\u0303\u0182\u0002\u0bb0\u0bb1\u0005\u031f", + "\u0190\u0002\u0bb1\u025a\u0003\u0002\u0002\u0002\u0bb2\u0bb3\u0005\u0325", + "\u0193\u0002\u0bb3\u0bb4\u0005\u02fb\u017e\u0002\u0bb4\u0bb5\u0005\u031d", + "\u018f\u0002\u0bb5\u025c\u0003\u0002\u0002\u0002\u0bb6\u0bb7\u0005\u0325", + "\u0193\u0002\u0bb7\u0bb8\u0005\u02fb\u017e\u0002\u0bb8\u0bb9\u0005\u031d", + "\u018f\u0002\u0bb9\u0bba\u0005\u02ff\u0180\u0002\u0bba\u0bbb\u0005\u0309", + "\u0185\u0002\u0bbb\u0bbc\u0005\u02fb\u017e\u0002\u0bbc\u0bbd\u0005\u031d", + "\u018f\u0002\u0bbd\u025e\u0003\u0002\u0002\u0002\u0bbe\u0bbf\u0005\u0325", + "\u0193\u0002\u0bbf\u0bc0\u0005\u02fb\u017e\u0002\u0bc0\u0bc1\u0005\u031d", + "\u018f\u0002\u0bc1\u0bc2\u0005\u02ff\u0180\u0002\u0bc2\u0bc3\u0005\u0309", + "\u0185\u0002\u0bc3\u0bc4\u0005\u02fb\u017e\u0002\u0bc4\u0bc5\u0005\u031d", + "\u018f\u0002\u0bc5\u0bc6\u00074\u0002\u0002\u0bc6\u0260\u0003\u0002", + "\u0002\u0002\u0bc7\u0bc8\u0005\u0325\u0193\u0002\u0bc8\u0bc9\u0005\u02fb", + "\u017e\u0002\u0bc9\u0bca\u0005\u031d\u018f\u0002\u0bca\u0bcb\u0005\u032b", + "\u0196\u0002\u0bcb\u0bcc\u0005\u030b\u0186\u0002\u0bcc\u0bcd\u0005\u0315", + "\u018b\u0002\u0bcd\u0bce\u0005\u0307\u0184\u0002\u0bce\u0262\u0003\u0002", + "\u0002\u0002\u0bcf\u0bd0\u0005\u0325\u0193\u0002\u0bd0\u0bd1\u0005\u0317", + "\u018c\u0002\u0bd1\u0bd2\u0005\u0311\u0189\u0002\u0bd2\u0bd3\u0005\u02fb", + "\u017e\u0002\u0bd3\u0bd4\u0005\u0321\u0191\u0002\u0bd4\u0bd5\u0005\u030b", + "\u0186\u0002\u0bd5\u0bd6\u0005\u0311\u0189\u0002\u0bd6\u0bd7\u0005\u0303", + "\u0182\u0002\u0bd7\u0264\u0003\u0002\u0002\u0002\u0bd8\u0bd9\u0005\u0327", + "\u0194\u0002\u0bd9\u0bda\u0005\u0309\u0185\u0002\u0bda\u0bdb\u0005\u0303", + "\u0182\u0002\u0bdb\u0bdc\u0005\u0315\u018b\u0002\u0bdc\u0266\u0003\u0002", + "\u0002\u0002\u0bdd\u0bde\u0005\u0327\u0194\u0002\u0bde\u0bdf\u0005\u0309", + "\u0185\u0002\u0bdf\u0be0\u0005\u0303\u0182\u0002\u0be0\u0be1\u0005\u031d", + "\u018f\u0002\u0be1\u0be2\u0005\u0303\u0182\u0002\u0be2\u0268\u0003\u0002", + "\u0002\u0002\u0be3\u0be4\u0005\u0327\u0194\u0002\u0be4\u0be5\u0005\u0309", + "\u0185\u0002\u0be5\u0be6\u0005\u030b\u0186\u0002\u0be6\u0be7\u0005\u0311", + "\u0189\u0002\u0be7\u0be8\u0005\u0303\u0182\u0002\u0be8\u026a\u0003\u0002", + "\u0002\u0002\u0be9\u0bea\u0005\u0327\u0194\u0002\u0bea\u0beb\u0005\u030b", + "\u0186\u0002\u0beb\u0bec\u0005\u0321\u0191\u0002\u0bec\u0bed\u0005\u0309", + "\u0185\u0002\u0bed\u026c\u0003\u0002\u0002\u0002\u0bee\u0bef\u0005\u0327", + "\u0194\u0002\u0bef\u0bf0\u0005\u030b\u0186\u0002\u0bf0\u0bf1\u0005\u0321", + "\u0191\u0002\u0bf1\u0bf2\u0005\u0309\u0185\u0002\u0bf2\u0bf3\u0005\u0317", + "\u018c\u0002\u0bf3\u0bf4\u0005\u0323\u0192\u0002\u0bf4\u0bf5\u0005\u0321", + "\u0191\u0002\u0bf5\u026e\u0003\u0002\u0002\u0002\u0bf6\u0bf7\u0005\u0327", + "\u0194\u0002\u0bf7\u0bf8\u0005\u0317\u018c\u0002\u0bf8\u0bf9\u0005\u031d", + "\u018f\u0002\u0bf9\u0bfa\u0005\u030f\u0188\u0002\u0bfa\u0270\u0003\u0002", + "\u0002\u0002\u0bfb\u0bfc\u0005\u0329\u0195\u0002\u0bfc\u0bfd\u0005\u02fb", + "\u017e\u0002\u0bfd\u0bfe\u0005\u02ff\u0180\u0002\u0bfe\u0bff\u0005\u0321", + "\u0191\u0002\u0bff\u0c00\u0007a\u0002\u0002\u0c00\u0c01\u0005\u02fb", + "\u017e\u0002\u0c01\u0c02\u0005\u02fd\u017f\u0002\u0c02\u0c03\u0005\u0317", + "\u018c\u0002\u0c03\u0c04\u0005\u031d\u018f\u0002\u0c04\u0c05\u0005\u0321", + "\u0191\u0002\u0c05\u0272\u0003\u0002\u0002\u0002\u0c06\u0c07\u0005\u0329", + "\u0195\u0002\u0c07\u0c08\u0005\u0313\u018a\u0002\u0c08\u0c09\u0005\u0311", + "\u0189\u0002\u0c09\u0274\u0003\u0002\u0002\u0002\u0c0a\u0c0b\u0005\u032b", + "\u0196\u0002\u0c0b\u0c0c\u0005\u0303\u0182\u0002\u0c0c\u0c0d\u0005\u031f", + "\u0190\u0002\u0c0d\u0276\u0003\u0002\u0002\u0002\u0c0e\u0c0f\u0005\u02fb", + "\u017e\u0002\u0c0f\u0c10\u0005\u02ff\u0180\u0002\u0c10\u0c11\u0005\u0321", + "\u0191\u0002\u0c11\u0c12\u0005\u030b\u0186\u0002\u0c12\u0c13\u0005\u0325", + "\u0193\u0002\u0c13\u0c14\u0005\u030b\u0186\u0002\u0c14\u0c15\u0005\u0321", + "\u0191\u0002\u0c15\u0c16\u0005\u032b\u0196\u0002\u0c16\u0c17\u0007a", + "\u0002\u0002\u0c17\u0c18\u0005\u02ff\u0180\u0002\u0c18\u0c19\u0005\u0317", + "\u018c\u0002\u0c19\u0c1a\u0005\u0323\u0192\u0002\u0c1a\u0c1b\u0005\u0315", + "\u018b\u0002\u0c1b\u0c1c\u0005\u0321\u0191\u0002\u0c1c\u0278\u0003\u0002", + "\u0002\u0002\u0c1d\u0c1e\u0005\u02ff\u0180\u0002\u0c1e\u0c1f\u0005\u0323", + "\u0192\u0002\u0c1f\u0c20\u0005\u0313\u018a\u0002\u0c20\u0c21\u0005\u0303", + "\u0182\u0002\u0c21\u0c22\u0007a\u0002\u0002\u0c22\u0c23\u0005\u0301", + "\u0181\u0002\u0c23\u0c24\u0005\u030b\u0186\u0002\u0c24\u0c25\u0005\u031f", + "\u0190\u0002\u0c25\u0c26\u0005\u0321\u0191\u0002\u0c26\u027a\u0003\u0002", + "\u0002\u0002\u0c27\u0c28\u0005\u02ff\u0180\u0002\u0c28\u0c29\u0005\u0323", + "\u0192\u0002\u0c29\u0c2a\u0005\u031d\u018f\u0002\u0c2a\u0c2b\u0005\u031d", + "\u018f\u0002\u0c2b\u0c2c\u0005\u0303\u0182\u0002\u0c2c\u0c2d\u0005\u0315", + "\u018b\u0002\u0c2d\u0c2e\u0005\u0321\u0191\u0002\u0c2e\u0c2f\u0007a", + "\u0002\u0002\u0c2f\u0c30\u0005\u0301\u0181\u0002\u0c30\u0c31\u0005\u02fb", + "\u017e\u0002\u0c31\u0c32\u0005\u0321\u0191\u0002\u0c32\u0c33\u0005\u0303", + "\u0182\u0002\u0c33\u027c\u0003\u0002\u0002\u0002\u0c34\u0c35\u0005\u02ff", + "\u0180\u0002\u0c35\u0c36\u0005\u0323\u0192\u0002\u0c36\u0c37\u0005\u031d", + "\u018f\u0002\u0c37\u0c38\u0005\u031d\u018f\u0002\u0c38\u0c39\u0005\u0303", + "\u0182\u0002\u0c39\u0c3a\u0005\u0315\u018b\u0002\u0c3a\u0c3b\u0005\u0321", + "\u0191\u0002\u0c3b\u0c3c\u0007a\u0002\u0002\u0c3c\u0c3d\u0005\u0321", + "\u0191\u0002\u0c3d\u0c3e\u0005\u030b\u0186\u0002\u0c3e\u0c3f\u0005\u0313", + "\u018a\u0002\u0c3f\u0c40\u0005\u0303\u0182\u0002\u0c40\u0c41\u0005\u031f", + "\u0190\u0002\u0c41\u0c42\u0005\u0321\u0191\u0002\u0c42\u0c43\u0005\u02fb", + "\u017e\u0002\u0c43\u0c44\u0005\u0313\u018a\u0002\u0c44\u0c45\u0005\u0319", + "\u018d\u0002\u0c45\u027e\u0003\u0002\u0002\u0002\u0c46\u0c47\u0005\u02ff", + "\u0180\u0002\u0c47\u0c48\u0005\u0323\u0192\u0002\u0c48\u0c49\u0005\u031d", + "\u018f\u0002\u0c49\u0c4a\u0005\u031d\u018f\u0002\u0c4a\u0c4b\u0005\u0303", + "\u0182\u0002\u0c4b\u0c4c\u0005\u0315\u018b\u0002\u0c4c\u0c4d\u0005\u0321", + "\u0191\u0002\u0c4d\u0c4e\u0007a\u0002\u0002\u0c4e\u0c4f\u0005\u0323", + "\u0192\u0002\u0c4f\u0c50\u0005\u031f\u0190\u0002\u0c50\u0c51\u0005\u0303", + "\u0182\u0002\u0c51\u0c52\u0005\u031d\u018f\u0002\u0c52\u0280\u0003\u0002", + "\u0002\u0002\u0c53\u0c54\u0005\u0301\u0181\u0002\u0c54\u0c55\u0005\u0303", + "\u0182\u0002\u0c55\u0c56\u0005\u0315\u018b\u0002\u0c56\u0c57\u0005\u031f", + "\u0190\u0002\u0c57\u0c58\u0005\u0303\u0182\u0002\u0c58\u0c59\u0007a", + "\u0002\u0002\u0c59\u0c5a\u0005\u031d\u018f\u0002\u0c5a\u0c5b\u0005\u02fb", + "\u017e\u0002\u0c5b\u0c5c\u0005\u0315\u018b\u0002\u0c5c\u0c5d\u0005\u030f", + "\u0188\u0002\u0c5d\u0282\u0003\u0002\u0002\u0002\u0c5e\u0c5f\u0005\u0305", + "\u0183\u0002\u0c5f\u0c60\u0005\u030b\u0186\u0002\u0c60\u0c61\u0005\u031d", + "\u018f\u0002\u0c61\u0c62\u0005\u031f\u0190\u0002\u0c62\u0c63\u0005\u0321", + "\u0191\u0002\u0c63\u0c64\u0007a\u0002\u0002\u0c64\u0c65\u0005\u0325", + "\u0193\u0002\u0c65\u0c66\u0005\u02fb\u017e\u0002\u0c66\u0c67\u0005\u0311", + "\u0189\u0002\u0c67\u0c68\u0005\u0323\u0192\u0002\u0c68\u0c69\u0005\u0303", + "\u0182\u0002\u0c69\u0284\u0003\u0002\u0002\u0002\u0c6a\u0c6b\u0005\u0311", + "\u0189\u0002\u0c6b\u0c6c\u0005\u02fb\u017e\u0002\u0c6c\u0c6d\u0005\u0307", + "\u0184\u0002\u0c6d\u0286\u0003\u0002\u0002\u0002\u0c6e\u0c6f\u0005\u0311", + "\u0189\u0002\u0c6f\u0c70\u0005\u02fb\u017e\u0002\u0c70\u0c71\u0005\u031f", + "\u0190\u0002\u0c71\u0c72\u0005\u0321\u0191\u0002\u0c72\u0c73\u0007a", + "\u0002\u0002\u0c73\u0c74\u0005\u0325\u0193\u0002\u0c74\u0c75\u0005\u02fb", + "\u017e\u0002\u0c75\u0c76\u0005\u0311\u0189\u0002\u0c76\u0c77\u0005\u0323", + "\u0192\u0002\u0c77\u0c78\u0005\u0303\u0182\u0002\u0c78\u0288\u0003\u0002", + "\u0002\u0002\u0c79\u0c7a\u0005\u0311\u0189\u0002\u0c7a\u0c7b\u0005\u0303", + "\u0182\u0002\u0c7b\u0c7c\u0005\u02fb\u017e\u0002\u0c7c\u0c7d\u0005\u0301", + "\u0181\u0002\u0c7d\u028a\u0003\u0002\u0002\u0002\u0c7e\u0c7f\u0005\u0313", + "\u018a\u0002\u0c7f\u0c80\u0005\u02fb\u017e\u0002\u0c80\u0c81\u0005\u0329", + "\u0195\u0002\u0c81\u0c82\u0007a\u0002\u0002\u0c82\u0c83\u0005\u0319", + "\u018d\u0002\u0c83\u0c84\u0005\u02fb\u017e\u0002\u0c84\u0c85\u0005\u031d", + "\u018f\u0002\u0c85\u0c86\u0005\u0321\u0191\u0002\u0c86\u0c87\u0007a", + "\u0002\u0002\u0c87\u0c88\u0005\u031f\u0190\u0002\u0c88\u0c89\u0005\u0321", + "\u0191\u0002\u0c89\u0c8a\u0005\u031d\u018f\u0002\u0c8a\u0c8b\u0005\u030b", + "\u0186\u0002\u0c8b\u0c8c\u0005\u0315\u018b\u0002\u0c8c\u0c8d\u0005\u0307", + "\u0184\u0002\u0c8d\u028c\u0003\u0002\u0002\u0002\u0c8e\u0c8f\u0005\u0313", + "\u018a\u0002\u0c8f\u0c90\u0005\u030b\u0186\u0002\u0c90\u0c91\u0005\u0315", + "\u018b\u0002\u0c91\u0c92\u0007a\u0002\u0002\u0c92\u0c93\u0005\u0319", + "\u018d\u0002\u0c93\u0c94\u0005\u02fb\u017e\u0002\u0c94\u0c95\u0005\u031d", + "\u018f\u0002\u0c95\u0c96\u0005\u0321\u0191\u0002\u0c96\u0c97\u0007a", + "\u0002\u0002\u0c97\u0c98\u0005\u031f\u0190\u0002\u0c98\u0c99\u0005\u0321", + "\u0191\u0002\u0c99\u0c9a\u0005\u031d\u018f\u0002\u0c9a\u0c9b\u0005\u030b", + "\u0186\u0002\u0c9b\u0c9c\u0005\u0315\u018b\u0002\u0c9c\u0c9d\u0005\u0307", + "\u0184\u0002\u0c9d\u028e\u0003\u0002\u0002\u0002\u0c9e\u0c9f\u0005\u0313", + "\u018a\u0002\u0c9f\u0ca0\u0005\u02fb\u017e\u0002\u0ca0\u0ca1\u0005\u0329", + "\u0195\u0002\u0ca1\u0ca2\u0007a\u0002\u0002\u0ca2\u0ca3\u0005\u0319", + "\u018d\u0002\u0ca3\u0ca4\u0005\u02fb\u017e\u0002\u0ca4\u0ca5\u0005\u031d", + "\u018f\u0002\u0ca5\u0ca6\u0005\u0321\u0191\u0002\u0ca6\u0ca7\u0007a", + "\u0002\u0002\u0ca7\u0ca8\u0005\u030b\u0186\u0002\u0ca8\u0ca9\u0005\u0315", + "\u018b\u0002\u0ca9\u0caa\u0005\u0321\u0191\u0002\u0caa\u0290\u0003\u0002", + "\u0002\u0002\u0cab\u0cac\u0005\u0313\u018a\u0002\u0cac\u0cad\u0005\u030b", + "\u0186\u0002\u0cad\u0cae\u0005\u0315\u018b\u0002\u0cae\u0caf\u0007a", + "\u0002\u0002\u0caf\u0cb0\u0005\u0319\u018d\u0002\u0cb0\u0cb1\u0005\u02fb", + "\u017e\u0002\u0cb1\u0cb2\u0005\u031d\u018f\u0002\u0cb2\u0cb3\u0005\u0321", + "\u0191\u0002\u0cb3\u0cb4\u0007a\u0002\u0002\u0cb4\u0cb5\u0005\u030b", + "\u0186\u0002\u0cb5\u0cb6\u0005\u0315\u018b\u0002\u0cb6\u0cb7\u0005\u0321", + "\u0191\u0002\u0cb7\u0292\u0003\u0002\u0002\u0002\u0cb8\u0cb9\u0005\u0313", + "\u018a\u0002\u0cb9\u0cba\u0005\u02fb\u017e\u0002\u0cba\u0cbb\u0005\u0329", + "\u0195\u0002\u0cbb\u0cbc\u0007a\u0002\u0002\u0cbc\u0cbd\u0005\u0319", + "\u018d\u0002\u0cbd\u0cbe\u0005\u02fb\u017e\u0002\u0cbe\u0cbf\u0005\u031d", + "\u018f\u0002\u0cbf\u0cc0\u0005\u0321\u0191\u0002\u0cc0\u0cc1\u0007a", + "\u0002\u0002\u0cc1\u0cc2\u0005\u0301\u0181\u0002\u0cc2\u0cc3\u0005\u02fb", + "\u017e\u0002\u0cc3\u0cc4\u0005\u0321\u0191\u0002\u0cc4\u0cc5\u0005\u0303", + "\u0182\u0002\u0cc5\u0294\u0003\u0002\u0002\u0002\u0cc6\u0cc7\u0005\u0313", + "\u018a\u0002\u0cc7\u0cc8\u0005\u030b\u0186\u0002\u0cc8\u0cc9\u0005\u0315", + "\u018b\u0002\u0cc9\u0cca\u0007a\u0002\u0002\u0cca\u0ccb\u0005\u0319", + "\u018d\u0002\u0ccb\u0ccc\u0005\u02fb\u017e\u0002\u0ccc\u0ccd\u0005\u031d", + "\u018f\u0002\u0ccd\u0cce\u0005\u0321\u0191\u0002\u0cce\u0ccf\u0007a", + "\u0002\u0002\u0ccf\u0cd0\u0005\u0301\u0181\u0002\u0cd0\u0cd1\u0005\u02fb", + "\u017e\u0002\u0cd1\u0cd2\u0005\u0321\u0191\u0002\u0cd2\u0cd3\u0005\u0303", + "\u0182\u0002\u0cd3\u0296\u0003\u0002\u0002\u0002\u0cd4\u0cd5\u0005\u0319", + "\u018d\u0002\u0cd5\u0cd6\u0005\u02fb\u017e\u0002\u0cd6\u0cd7\u0005\u031d", + "\u018f\u0002\u0cd7\u0cd8\u0005\u0321\u0191\u0002\u0cd8\u0cd9\u0007a", + "\u0002\u0002\u0cd9\u0cda\u0005\u02ff\u0180\u0002\u0cda\u0cdb\u0005\u0317", + "\u018c\u0002\u0cdb\u0cdc\u0005\u0323\u0192\u0002\u0cdc\u0cdd\u0005\u0315", + "\u018b\u0002\u0cdd\u0cde\u0005\u0321\u0191\u0002\u0cde\u0298\u0003\u0002", + "\u0002\u0002\u0cdf\u0ce0\u0005\u0319\u018d\u0002\u0ce0\u0ce1\u0005\u02fb", + "\u017e\u0002\u0ce1\u0ce2\u0005\u031d\u018f\u0002\u0ce2\u0ce3\u0005\u0321", + "\u0191\u0002\u0ce3\u0ce4\u0007a\u0002\u0002\u0ce4\u0ce5\u0005\u0311", + "\u0189\u0002\u0ce5\u0ce6\u0005\u0317\u018c\u0002\u0ce6\u0ce7\u0005\u02ff", + "\u0180\u0002\u0ce7\u029a\u0003\u0002\u0002\u0002\u0ce8\u0ce9\u0005\u031d", + "\u018f\u0002\u0ce9\u0cea\u0005\u02fb\u017e\u0002\u0cea\u0ceb\u0005\u0315", + "\u018b\u0002\u0ceb\u0cec\u0005\u030f\u0188\u0002\u0cec\u029c\u0003\u0002", + "\u0002\u0002\u0ced\u0cee\u0005\u031d\u018f\u0002\u0cee\u0cef\u0005\u0317", + "\u018c\u0002\u0cef\u0cf0\u0005\u0327\u0194\u0002\u0cf0\u0cf1\u0007a", + "\u0002\u0002\u0cf1\u0cf2\u0005\u0315\u018b\u0002\u0cf2\u0cf3\u0005\u0323", + "\u0192\u0002\u0cf3\u0cf4\u0005\u0313\u018a\u0002\u0cf4\u0cf5\u0005\u02fd", + "\u017f\u0002\u0cf5\u0cf6\u0005\u0303\u0182\u0002\u0cf6\u0cf7\u0005\u031d", + "\u018f\u0002\u0cf7\u029e\u0003\u0002\u0002\u0002\u0cf8\u0cf9\u0005\u031f", + "\u0190\u0002\u0cf9\u0cfa\u0005\u0321\u0191\u0002\u0cfa\u0cfb\u0005\u0301", + "\u0181\u0002\u0cfb\u0cfc\u0005\u0303\u0182\u0002\u0cfc\u0cfd\u0005\u0325", + "\u0193\u0002\u0cfd\u02a0\u0003\u0002\u0002\u0002\u0cfe\u0cff\u0005\u031f", + "\u0190\u0002\u0cff\u0d00\u0005\u032b\u0196\u0002\u0d00\u0d01\u0005\u031f", + "\u0190\u0002\u0d01\u0d02\u0005\u0301\u0181\u0002\u0d02\u0d03\u0005\u02fb", + "\u017e\u0002\u0d03\u0d04\u0005\u0321\u0191\u0002\u0d04\u0d05\u0005\u0303", + "\u0182\u0002\u0d05\u02a2\u0003\u0002\u0002\u0002\u0d06\u0d07\u0005\u0325", + "\u0193\u0002\u0d07\u0d08\u0005\u02fb\u017e\u0002\u0d08\u0d09\u0005\u031d", + "\u018f\u0002\u0d09\u0d0a\u0005\u030b\u0186\u0002\u0d0a\u0d0b\u0005\u02fb", + "\u017e\u0002\u0d0b\u0d0c\u0005\u0315\u018b\u0002\u0d0c\u0d0d\u0005\u02ff", + "\u0180\u0002\u0d0d\u0d0e\u0005\u0303\u0182\u0002\u0d0e\u02a4\u0003\u0002", + "\u0002\u0002\u0d0f\u0d10\u0005\u0323\u0192\u0002\u0d10\u0d11\u0005\u031f", + "\u0190\u0002\u0d11\u0d12\u0005\u0303\u0182\u0002\u0d12\u0d13\u0005\u031d", + "\u018f\u0002\u0d13\u02a6\u0003\u0002\u0002\u0002\u0d14\u0d15\u0007-", + "\u0002\u0002\u0d15\u02a8\u0003\u0002\u0002\u0002\u0d16\u0d17\u0007<", + "\u0002\u0002\u0d17\u02aa\u0003\u0002\u0002\u0002\u0d18\u0d19\u0007.", + "\u0002\u0002\u0d19\u02ac\u0003\u0002\u0002\u0002\u0d1a\u0d1b\u0007~", + "\u0002\u0002\u0d1b\u0d1c\u0007~\u0002\u0002\u0d1c\u02ae\u0003\u0002", + "\u0002\u0002\u0d1d\u0d1e\u00071\u0002\u0002\u0d1e\u02b0\u0003\u0002", + "\u0002\u0002\u0d1f\u0d20\u00070\u0002\u0002\u0d20\u02b2\u0003\u0002", + "\u0002\u0002\u0d21\u0d22\u00070\u0002\u0002\u0d22\u0d23\u00070\u0002", + "\u0002\u0d23\u02b4\u0003\u0002\u0002\u0002\u0d24\u0d25\u0007?\u0002", + "\u0002\u0d25\u02b6\u0003\u0002\u0002\u0002\u0d26\u0d27\u0007?\u0002", + "\u0002\u0d27\u0d28\u0007?\u0002\u0002\u0d28\u02b8\u0003\u0002\u0002", + "\u0002\u0d29\u0d2a\u0007%\u0002\u0002\u0d2a\u02ba\u0003\u0002\u0002", + "\u0002\u0d2b\u0d2c\u0007#\u0002\u0002\u0d2c\u02bc\u0003\u0002\u0002", + "\u0002\u0d2d\u0d2e\u0007>\u0002\u0002\u0d2e\u0d2f\u0007@\u0002\u0002", + "\u0d2f\u02be\u0003\u0002\u0002\u0002\u0d30\u0d31\u0007#\u0002\u0002", + "\u0d31\u0d32\u0007?\u0002\u0002\u0d32\u02c0\u0003\u0002\u0002\u0002", + "\u0d33\u0d34\u0007@\u0002\u0002\u0d34\u02c2\u0003\u0002\u0002\u0002", + "\u0d35\u0d36\u0007@\u0002\u0002\u0d36\u0d37\u0007?\u0002\u0002\u0d37", + "\u02c4\u0003\u0002\u0002\u0002\u0d38\u0d39\u0007>\u0002\u0002\u0d39", + "\u02c6\u0003\u0002\u0002\u0002\u0d3a\u0d3b\u0007>\u0002\u0002\u0d3b", + "\u0d3c\u0007?\u0002\u0002\u0d3c\u02c8\u0003\u0002\u0002\u0002\u0d3d", + "\u0d3e\u0007,\u0002\u0002\u0d3e\u02ca\u0003\u0002\u0002\u0002\u0d3f", + "\u0d40\u0007\'\u0002\u0002\u0d40\u02cc\u0003\u0002\u0002\u0002\u0d41", + "\u0d42\u0007B\u0002\u0002\u0d42\u02ce\u0003\u0002\u0002\u0002\u0d43", + "\u0d44\u0007}\u0002\u0002\u0d44\u02d0\u0003\u0002\u0002\u0002\u0d45", + "\u0d46\u0007*\u0002\u0002\u0d46\u02d2\u0003\u0002\u0002\u0002\u0d47", + "\u0d48\u0007]\u0002\u0002\u0d48\u02d4\u0003\u0002\u0002\u0002\u0d49", + "\u0d4a\u0007\u007f\u0002\u0002\u0d4a\u02d6\u0003\u0002\u0002\u0002\u0d4b", + "\u0d4c\u0007+\u0002\u0002\u0d4c\u02d8\u0003\u0002\u0002\u0002\u0d4d", + "\u0d4e\u0007_\u0002\u0002\u0d4e\u02da\u0003\u0002\u0002\u0002\u0d4f", + "\u0d50\u0007=\u0002\u0002\u0d50\u02dc\u0003\u0002\u0002\u0002\u0d51", + "\u0d52\u0007/\u0002\u0002\u0d52\u02de\u0003\u0002\u0002\u0002\u0d53", + "\u0d54\u0005\u02f3\u017a\u0002\u0d54\u02e0\u0003\u0002\u0002\u0002\u0d55", + "\u0d5d\u0007)\u0002\u0002\u0d56\u0d57\u0007)\u0002\u0002\u0d57\u0d5c", + "\u0007)\u0002\u0002\u0d58\u0d59\u0007^\u0002\u0002\u0d59\u0d5c\u0007", + ")\u0002\u0002\u0d5a\u0d5c\n\u0002\u0002\u0002\u0d5b\u0d56\u0003\u0002", + "\u0002\u0002\u0d5b\u0d58\u0003\u0002\u0002\u0002\u0d5b\u0d5a\u0003\u0002", + "\u0002\u0002\u0d5c\u0d5f\u0003\u0002\u0002\u0002\u0d5d\u0d5b\u0003\u0002", + "\u0002\u0002\u0d5d\u0d5e\u0003\u0002\u0002\u0002\u0d5e\u0d60\u0003\u0002", + "\u0002\u0002\u0d5f\u0d5d\u0003\u0002\u0002\u0002\u0d60\u0d61\u0007)", + "\u0002\u0002\u0d61\u02e2\u0003\u0002\u0002\u0002\u0d62\u0d67\u0007$", + "\u0002\u0002\u0d63\u0d66\u0005\u02f5\u017b\u0002\u0d64\u0d66\u000b\u0002", + "\u0002\u0002\u0d65\u0d63\u0003\u0002\u0002\u0002\u0d65\u0d64\u0003\u0002", + "\u0002\u0002\u0d66\u0d69\u0003\u0002\u0002\u0002\u0d67\u0d68\u0003\u0002", + "\u0002\u0002\u0d67\u0d65\u0003\u0002\u0002\u0002\u0d68\u0d6a\u0003\u0002", + "\u0002\u0002\u0d69\u0d67\u0003\u0002\u0002\u0002\u0d6a\u0d6b\u0007$", + "\u0002\u0002\u0d6b\u02e4\u0003\u0002\u0002\u0002\u0d6c\u0d6e\u0005\u02f7", + "\u017c\u0002\u0d6d\u0d6c\u0003\u0002\u0002\u0002\u0d6e\u0d6f\u0003\u0002", + "\u0002\u0002\u0d6f\u0d6d\u0003\u0002\u0002\u0002\u0d6f\u0d70\u0003\u0002", + "\u0002\u0002\u0d70\u02e6\u0003\u0002\u0002\u0002\u0d71\u0d73\u0005\u02f7", + "\u017c\u0002\u0d72\u0d71\u0003\u0002\u0002\u0002\u0d73\u0d74\u0003\u0002", + "\u0002\u0002\u0d74\u0d72\u0003\u0002\u0002\u0002\u0d74\u0d75\u0003\u0002", + "\u0002\u0002\u0d75\u0d76\u0003\u0002\u0002\u0002\u0d76\u0d77\u00070", + "\u0002\u0002\u0d77\u0d7b\n\u0003\u0002\u0002\u0d78\u0d7a\u0005\u02f7", + "\u017c\u0002\u0d79\u0d78\u0003\u0002\u0002\u0002\u0d7a\u0d7d\u0003\u0002", + "\u0002\u0002\u0d7b\u0d79\u0003\u0002\u0002\u0002\u0d7b\u0d7c\u0003\u0002", + "\u0002\u0002\u0d7c\u0d85\u0003\u0002\u0002\u0002\u0d7d\u0d7b\u0003\u0002", + "\u0002\u0002\u0d7e\u0d80\u00070\u0002\u0002\u0d7f\u0d81\u0005\u02f7", + "\u017c\u0002\u0d80\u0d7f\u0003\u0002\u0002\u0002\u0d81\u0d82\u0003\u0002", + "\u0002\u0002\u0d82\u0d80\u0003\u0002\u0002\u0002\u0d82\u0d83\u0003\u0002", + "\u0002\u0002\u0d83\u0d85\u0003\u0002\u0002\u0002\u0d84\u0d72\u0003\u0002", + "\u0002\u0002\u0d84\u0d7e\u0003\u0002\u0002\u0002\u0d85\u02e8\u0003\u0002", + "\u0002\u0002\u0d86\u0d88\u0005\u02f9\u017d\u0002\u0d87\u0d86\u0003\u0002", + "\u0002\u0002\u0d88\u0d89\u0003\u0002\u0002\u0002\u0d89\u0d87\u0003\u0002", + "\u0002\u0002\u0d89\u0d8a\u0003\u0002\u0002\u0002\u0d8a\u0d8b\u0003\u0002", + "\u0002\u0002\u0d8b\u0d8c\b\u0175\u0002\u0002\u0d8c\u02ea\u0003\u0002", + "\u0002\u0002\u0d8d\u0d8e\u00071\u0002\u0002\u0d8e\u0d8f\u0007,\u0002", + "\u0002\u0d8f\u0d93\u0003\u0002\u0002\u0002\u0d90\u0d92\u000b\u0002\u0002", + "\u0002\u0d91\u0d90\u0003\u0002\u0002\u0002\u0d92\u0d95\u0003\u0002\u0002", + "\u0002\u0d93\u0d94\u0003\u0002\u0002\u0002\u0d93\u0d91\u0003\u0002\u0002", + "\u0002\u0d94\u0d96\u0003\u0002\u0002\u0002\u0d95\u0d93\u0003\u0002\u0002", + "\u0002\u0d96\u0d97\u0007,\u0002\u0002\u0d97\u0d98\u00071\u0002\u0002", + "\u0d98\u0d99\u0003\u0002\u0002\u0002\u0d99\u0d9a\b\u0176\u0003\u0002", + "\u0d9a\u02ec\u0003\u0002\u0002\u0002\u0d9b\u0d9c\u0007/\u0002\u0002", + "\u0d9c\u0da0\u0007/\u0002\u0002\u0d9d\u0d9e\u00071\u0002\u0002\u0d9e", + "\u0da0\u00071\u0002\u0002\u0d9f\u0d9b\u0003\u0002\u0002\u0002\u0d9f", + "\u0d9d\u0003\u0002\u0002\u0002\u0da0\u0da4\u0003\u0002\u0002\u0002\u0da1", + "\u0da3\u000b\u0002\u0002\u0002\u0da2\u0da1\u0003\u0002\u0002\u0002\u0da3", + "\u0da6\u0003\u0002\u0002\u0002\u0da4\u0da5\u0003\u0002\u0002\u0002\u0da4", + "\u0da2\u0003\u0002\u0002\u0002\u0da5\u0da8\u0003\u0002\u0002\u0002\u0da6", + "\u0da4\u0003\u0002\u0002\u0002\u0da7\u0da9\u0007\u000f\u0002\u0002\u0da8", + "\u0da7\u0003\u0002\u0002\u0002\u0da8\u0da9\u0003\u0002\u0002\u0002\u0da9", + "\u0daa\u0003\u0002\u0002\u0002\u0daa\u0dab\u0007\f\u0002\u0002\u0dab", + "\u0dac\u0003\u0002\u0002\u0002\u0dac\u0dad\b\u0177\u0003\u0002\u0dad", + "\u02ee\u0003\u0002\u0002\u0002\u0dae\u0daf\t\u0004\u0002\u0002\u0daf", + "\u0db1\u0007<\u0002\u0002\u0db0\u0db2\u0007^\u0002\u0002\u0db1\u0db0", + "\u0003\u0002\u0002\u0002\u0db1\u0db2\u0003\u0002\u0002\u0002\u0db2\u0db4", + "\u0003\u0002\u0002\u0002\u0db3\u0dae\u0003\u0002\u0002\u0002\u0db3\u0db4", + "\u0003\u0002\u0002\u0002\u0db4\u0db5\u0003\u0002\u0002\u0002\u0db5\u0dba", + "\u0005\u02df\u0170\u0002\u0db6\u0db7\u0007^\u0002\u0002\u0db7\u0db9", + "\u0005\u02df\u0170\u0002\u0db8\u0db6\u0003\u0002\u0002\u0002\u0db9\u0dbc", + "\u0003\u0002\u0002\u0002\u0dba\u0db8\u0003\u0002\u0002\u0002\u0dba\u0dbb", + "\u0003\u0002\u0002\u0002\u0dbb\u02f0\u0003\u0002\u0002\u0002\u0dbc\u0dba", + "\u0003\u0002\u0002\u0002\u0dbd\u0dc1\t\u0004\u0002\u0002\u0dbe\u0dc1", + "\u0005\u02f7\u017c\u0002\u0dbf\u0dc1\u0007a\u0002\u0002\u0dc0\u0dbd", + "\u0003\u0002\u0002\u0002\u0dc0\u0dbe\u0003\u0002\u0002\u0002\u0dc0\u0dbf", + "\u0003\u0002\u0002\u0002\u0dc1\u0dc4\u0003\u0002\u0002\u0002\u0dc2\u0dc0", + "\u0003\u0002\u0002\u0002\u0dc2\u0dc3\u0003\u0002\u0002\u0002\u0dc3\u0dc5", + "\u0003\u0002\u0002\u0002\u0dc4\u0dc2\u0003\u0002\u0002\u0002\u0dc5\u0dc6", + "\u0007<\u0002\u0002\u0dc6\u02f2\u0003\u0002\u0002\u0002\u0dc7\u0dcd", + "\t\u0004\u0002\u0002\u0dc8\u0dcc\t\u0004\u0002\u0002\u0dc9\u0dcc\u0005", + "\u02f7\u017c\u0002\u0dca\u0dcc\u0007a\u0002\u0002\u0dcb\u0dc8\u0003", + "\u0002\u0002\u0002\u0dcb\u0dc9\u0003\u0002\u0002\u0002\u0dcb\u0dca\u0003", + "\u0002\u0002\u0002\u0dcc\u0dcf\u0003\u0002\u0002\u0002\u0dcd\u0dcb\u0003", + "\u0002\u0002\u0002\u0dcd\u0dce\u0003\u0002\u0002\u0002\u0dce\u0dfa\u0003", + "\u0002\u0002\u0002\u0dcf\u0dcd\u0003\u0002\u0002\u0002\u0dd0\u0dd1\u0007", + "&\u0002\u0002\u0dd1\u0dd5\u0007}\u0002\u0002\u0dd2\u0dd4\u000b\u0002", + "\u0002\u0002\u0dd3\u0dd2\u0003\u0002\u0002\u0002\u0dd4\u0dd7\u0003\u0002", + "\u0002\u0002\u0dd5\u0dd6\u0003\u0002\u0002\u0002\u0dd5\u0dd3\u0003\u0002", + "\u0002\u0002\u0dd6\u0dd8\u0003\u0002\u0002\u0002\u0dd7\u0dd5\u0003\u0002", + "\u0002\u0002\u0dd8\u0dfa\u0007\u007f\u0002\u0002\u0dd9\u0ddd\t\u0005", + "\u0002\u0002\u0dda\u0dde\t\u0004\u0002\u0002\u0ddb\u0dde\u0005\u02f7", + "\u017c\u0002\u0ddc\u0dde\t\u0005\u0002\u0002\u0ddd\u0dda\u0003\u0002", + "\u0002\u0002\u0ddd\u0ddb\u0003\u0002\u0002\u0002\u0ddd\u0ddc\u0003\u0002", + "\u0002\u0002\u0dde\u0ddf\u0003\u0002\u0002\u0002\u0ddf\u0ddd\u0003\u0002", + "\u0002\u0002\u0ddf\u0de0\u0003\u0002\u0002\u0002\u0de0\u0dfa\u0003\u0002", + "\u0002\u0002\u0de1\u0de5\u0007$\u0002\u0002\u0de2\u0de4\u000b\u0002", + "\u0002\u0002\u0de3\u0de2\u0003\u0002\u0002\u0002\u0de4\u0de7\u0003\u0002", + "\u0002\u0002\u0de5\u0de6\u0003\u0002\u0002\u0002\u0de5\u0de3\u0003\u0002", + "\u0002\u0002\u0de6\u0de8\u0003\u0002\u0002\u0002\u0de7\u0de5\u0003\u0002", + "\u0002\u0002\u0de8\u0dfa\u0007$\u0002\u0002\u0de9\u0ded\u0007]\u0002", + "\u0002\u0dea\u0dec\u000b\u0002\u0002\u0002\u0deb\u0dea\u0003\u0002\u0002", + "\u0002\u0dec\u0def\u0003\u0002\u0002\u0002\u0ded\u0dee\u0003\u0002\u0002", + "\u0002\u0ded\u0deb\u0003\u0002\u0002\u0002\u0dee\u0df0\u0003\u0002\u0002", + "\u0002\u0def\u0ded\u0003\u0002\u0002\u0002\u0df0\u0dfa\u0007_\u0002", + "\u0002\u0df1\u0df5\u0007b\u0002\u0002\u0df2\u0df4\u000b\u0002\u0002", + "\u0002\u0df3\u0df2\u0003\u0002\u0002\u0002\u0df4\u0df7\u0003\u0002\u0002", + "\u0002\u0df5\u0df6\u0003\u0002\u0002\u0002\u0df5\u0df3\u0003\u0002\u0002", + "\u0002\u0df6\u0df8\u0003\u0002\u0002\u0002\u0df7\u0df5\u0003\u0002\u0002", + "\u0002\u0df8\u0dfa\u0007b\u0002\u0002\u0df9\u0dc7\u0003\u0002\u0002", + "\u0002\u0df9\u0dd0\u0003\u0002\u0002\u0002\u0df9\u0dd9\u0003\u0002\u0002", + "\u0002\u0df9\u0de1\u0003\u0002\u0002\u0002\u0df9\u0de9\u0003\u0002\u0002", + "\u0002\u0df9\u0df1\u0003\u0002\u0002\u0002\u0dfa\u02f4\u0003\u0002\u0002", + "\u0002\u0dfb\u0dfc\u0007$\u0002\u0002\u0dfc\u0e00\u0007$\u0002\u0002", + "\u0dfd\u0dfe\u0007^\u0002\u0002\u0dfe\u0e00\u0007$\u0002\u0002\u0dff", + "\u0dfb\u0003\u0002\u0002\u0002\u0dff\u0dfd\u0003\u0002\u0002\u0002\u0e00", + "\u02f6\u0003\u0002\u0002\u0002\u0e01\u0e02\t\u0006\u0002\u0002\u0e02", + "\u02f8\u0003\u0002\u0002\u0002\u0e03\u0e04\t\u0007\u0002\u0002\u0e04", + "\u02fa\u0003\u0002\u0002\u0002\u0e05\u0e06\t\b\u0002\u0002\u0e06\u02fc", + "\u0003\u0002\u0002\u0002\u0e07\u0e08\t\t\u0002\u0002\u0e08\u02fe\u0003", + "\u0002\u0002\u0002\u0e09\u0e0a\t\n\u0002\u0002\u0e0a\u0300\u0003\u0002", + "\u0002\u0002\u0e0b\u0e0c\t\u000b\u0002\u0002\u0e0c\u0302\u0003\u0002", + "\u0002\u0002\u0e0d\u0e0e\t\f\u0002\u0002\u0e0e\u0304\u0003\u0002\u0002", + "\u0002\u0e0f\u0e10\t\r\u0002\u0002\u0e10\u0306\u0003\u0002\u0002\u0002", + "\u0e11\u0e12\t\u000e\u0002\u0002\u0e12\u0308\u0003\u0002\u0002\u0002", + "\u0e13\u0e14\t\u000f\u0002\u0002\u0e14\u030a\u0003\u0002\u0002\u0002", + "\u0e15\u0e16\t\u0010\u0002\u0002\u0e16\u030c\u0003\u0002\u0002\u0002", + "\u0e17\u0e18\t\u0011\u0002\u0002\u0e18\u030e\u0003\u0002\u0002\u0002", + "\u0e19\u0e1a\t\u0012\u0002\u0002\u0e1a\u0310\u0003\u0002\u0002\u0002", + "\u0e1b\u0e1c\t\u0013\u0002\u0002\u0e1c\u0312\u0003\u0002\u0002\u0002", + "\u0e1d\u0e1e\t\u0014\u0002\u0002\u0e1e\u0314\u0003\u0002\u0002\u0002", + "\u0e1f\u0e20\t\u0015\u0002\u0002\u0e20\u0316\u0003\u0002\u0002\u0002", + "\u0e21\u0e22\t\u0016\u0002\u0002\u0e22\u0318\u0003\u0002\u0002\u0002", + "\u0e23\u0e24\t\u0017\u0002\u0002\u0e24\u031a\u0003\u0002\u0002\u0002", + "\u0e25\u0e26\t\u0018\u0002\u0002\u0e26\u031c\u0003\u0002\u0002\u0002", + "\u0e27\u0e28\t\u0019\u0002\u0002\u0e28\u031e\u0003\u0002\u0002\u0002", + "\u0e29\u0e2a\t\u001a\u0002\u0002\u0e2a\u0320\u0003\u0002\u0002\u0002", + "\u0e2b\u0e2c\t\u001b\u0002\u0002\u0e2c\u0322\u0003\u0002\u0002\u0002", + "\u0e2d\u0e2e\t\u001c\u0002\u0002\u0e2e\u0324\u0003\u0002\u0002\u0002", + "\u0e2f\u0e30\t\u001d\u0002\u0002\u0e30\u0326\u0003\u0002\u0002\u0002", + "\u0e31\u0e32\t\u001e\u0002\u0002\u0e32\u0328\u0003\u0002\u0002\u0002", + "\u0e33\u0e34\t\u001f\u0002\u0002\u0e34\u032a\u0003\u0002\u0002\u0002", + "\u0e35\u0e36\t \u0002\u0002\u0e36\u032c\u0003\u0002\u0002\u0002\u0e37", + "\u0e38\t!\u0002\u0002\u0e38\u032e\u0003\u0002\u0002\u0002 \u0002\u0d5b", + "\u0d5d\u0d65\u0d67\u0d6f\u0d74\u0d7b\u0d82\u0d84\u0d89\u0d93\u0d9f\u0da4", + "\u0da8\u0db1\u0db3\u0dba\u0dc0\u0dc2\u0dcb\u0dcd\u0dd5\u0ddd\u0ddf\u0de5", + "\u0ded\u0df5\u0df9\u0dff\u0004\b\u0002\u0002\u0002\u0003\u0002"].join(""); var atn = new antlr4.atn.ATNDeserializer().deserialize(serializedATN); @@ -54,31 +2441,702 @@ Object.defineProperty(HiveSqlLexer.prototype, "atn", { }); HiveSqlLexer.EOF = antlr4.Token.EOF; -HiveSqlLexer.T__0 = 1; -HiveSqlLexer.T__1 = 2; -HiveSqlLexer.T__2 = 3; -HiveSqlLexer.T__3 = 4; -HiveSqlLexer.T__4 = 5; -HiveSqlLexer.T__5 = 6; -HiveSqlLexer.T__6 = 7; -HiveSqlLexer.T__7 = 8; -HiveSqlLexer.T__8 = 9; -HiveSqlLexer.T__9 = 10; +HiveSqlLexer.T_ACTION = 1; +HiveSqlLexer.T_ADD2 = 2; +HiveSqlLexer.T_ALL = 3; +HiveSqlLexer.T_ALLOCATE = 4; +HiveSqlLexer.T_ALTER = 5; +HiveSqlLexer.T_AND = 6; +HiveSqlLexer.T_ANSI_NULLS = 7; +HiveSqlLexer.T_ANSI_PADDING = 8; +HiveSqlLexer.T_AS = 9; +HiveSqlLexer.T_ASC = 10; +HiveSqlLexer.T_ASSOCIATE = 11; +HiveSqlLexer.T_AT = 12; +HiveSqlLexer.T_AUTO_INCREMENT = 13; +HiveSqlLexer.T_AVG = 14; +HiveSqlLexer.T_BATCHSIZE = 15; +HiveSqlLexer.T_BEGIN = 16; +HiveSqlLexer.T_BETWEEN = 17; +HiveSqlLexer.T_BIGINT = 18; +HiveSqlLexer.T_BINARY_DOUBLE = 19; +HiveSqlLexer.T_BINARY_FLOAT = 20; +HiveSqlLexer.T_BINARY_INTEGER = 21; +HiveSqlLexer.T_BIT = 22; +HiveSqlLexer.T_BODY = 23; +HiveSqlLexer.T_BREAK = 24; +HiveSqlLexer.T_BY = 25; +HiveSqlLexer.T_BYTE = 26; +HiveSqlLexer.T_CALL = 27; +HiveSqlLexer.T_CALLER = 28; +HiveSqlLexer.T_CASCADE = 29; +HiveSqlLexer.T_CASE = 30; +HiveSqlLexer.T_CASESPECIFIC = 31; +HiveSqlLexer.T_CAST = 32; +HiveSqlLexer.T_CHAR = 33; +HiveSqlLexer.T_CHARACTER = 34; +HiveSqlLexer.T_CHARSET = 35; +HiveSqlLexer.T_CLIENT = 36; +HiveSqlLexer.T_CLOSE = 37; +HiveSqlLexer.T_CLUSTERED = 38; +HiveSqlLexer.T_CMP = 39; +HiveSqlLexer.T_COLLECT = 40; +HiveSqlLexer.T_COLLECTION = 41; +HiveSqlLexer.T_COLUMN = 42; +HiveSqlLexer.T_COMMENT = 43; +HiveSqlLexer.T_CONSTANT = 44; +HiveSqlLexer.T_COMMIT = 45; +HiveSqlLexer.T_COMPRESS = 46; +HiveSqlLexer.T_CONCAT = 47; +HiveSqlLexer.T_CONDITION = 48; +HiveSqlLexer.T_CONSTRAINT = 49; +HiveSqlLexer.T_CONTINUE = 50; +HiveSqlLexer.T_COPY = 51; +HiveSqlLexer.T_COUNT = 52; +HiveSqlLexer.T_COUNT_BIG = 53; +HiveSqlLexer.T_CREATE = 54; +HiveSqlLexer.T_CREATION = 55; +HiveSqlLexer.T_CREATOR = 56; +HiveSqlLexer.T_CS = 57; +HiveSqlLexer.T_CURRENT = 58; +HiveSqlLexer.T_CURRENT_SCHEMA = 59; +HiveSqlLexer.T_CURSOR = 60; +HiveSqlLexer.T_DATABASE = 61; +HiveSqlLexer.T_DATA = 62; +HiveSqlLexer.T_DATE = 63; +HiveSqlLexer.T_DATETIME = 64; +HiveSqlLexer.T_DAY = 65; +HiveSqlLexer.T_DAYS = 66; +HiveSqlLexer.T_DEC = 67; +HiveSqlLexer.T_DECIMAL = 68; +HiveSqlLexer.T_DECLARE = 69; +HiveSqlLexer.T_DEFAULT = 70; +HiveSqlLexer.T_DEFERRED = 71; +HiveSqlLexer.T_DEFINED = 72; +HiveSqlLexer.T_DEFINER = 73; +HiveSqlLexer.T_DEFINITION = 74; +HiveSqlLexer.T_DELETE = 75; +HiveSqlLexer.T_DELIMITED = 76; +HiveSqlLexer.T_DELIMITER = 77; +HiveSqlLexer.T_DESC = 78; +HiveSqlLexer.T_DESCRIBE = 79; +HiveSqlLexer.T_DIAGNOSTICS = 80; +HiveSqlLexer.T_DIR = 81; +HiveSqlLexer.T_DIRECTORY = 82; +HiveSqlLexer.T_DISTINCT = 83; +HiveSqlLexer.T_DISTRIBUTE = 84; +HiveSqlLexer.T_DO = 85; +HiveSqlLexer.T_DOUBLE = 86; +HiveSqlLexer.T_DROP = 87; +HiveSqlLexer.T_DYNAMIC = 88; +HiveSqlLexer.T_ELSE = 89; +HiveSqlLexer.T_ELSEIF = 90; +HiveSqlLexer.T_ELSIF = 91; +HiveSqlLexer.T_ENABLE = 92; +HiveSqlLexer.T_END = 93; +HiveSqlLexer.T_ENGINE = 94; +HiveSqlLexer.T_ESCAPED = 95; +HiveSqlLexer.T_EXCEPT = 96; +HiveSqlLexer.T_EXEC = 97; +HiveSqlLexer.T_EXECUTE = 98; +HiveSqlLexer.T_EXCEPTION = 99; +HiveSqlLexer.T_EXCLUSIVE = 100; +HiveSqlLexer.T_EXISTS = 101; +HiveSqlLexer.T_EXIT = 102; +HiveSqlLexer.T_FALLBACK = 103; +HiveSqlLexer.T_FALSE = 104; +HiveSqlLexer.T_FETCH = 105; +HiveSqlLexer.T_FIELDS = 106; +HiveSqlLexer.T_FILE = 107; +HiveSqlLexer.T_FILES = 108; +HiveSqlLexer.T_FLOAT = 109; +HiveSqlLexer.T_FOR = 110; +HiveSqlLexer.T_FOREIGN = 111; +HiveSqlLexer.T_FORMAT = 112; +HiveSqlLexer.T_FOUND = 113; +HiveSqlLexer.T_FROM = 114; +HiveSqlLexer.T_FULL = 115; +HiveSqlLexer.T_FUNCTION = 116; +HiveSqlLexer.T_GET = 117; +HiveSqlLexer.T_GLOBAL = 118; +HiveSqlLexer.T_GO = 119; +HiveSqlLexer.T_GRANT = 120; +HiveSqlLexer.T_GROUP = 121; +HiveSqlLexer.T_HANDLER = 122; +HiveSqlLexer.T_HASH = 123; +HiveSqlLexer.T_HAVING = 124; +HiveSqlLexer.T_HDFS = 125; +HiveSqlLexer.T_HIVE = 126; +HiveSqlLexer.T_HOST = 127; +HiveSqlLexer.T_IDENTITY = 128; +HiveSqlLexer.T_IF = 129; +HiveSqlLexer.T_IGNORE = 130; +HiveSqlLexer.T_IMMEDIATE = 131; +HiveSqlLexer.T_IN = 132; +HiveSqlLexer.T_INCLUDE = 133; +HiveSqlLexer.T_INDEX = 134; +HiveSqlLexer.T_INITRANS = 135; +HiveSqlLexer.T_INNER = 136; +HiveSqlLexer.T_INOUT = 137; +HiveSqlLexer.T_INSERT = 138; +HiveSqlLexer.T_INT = 139; +HiveSqlLexer.T_INT2 = 140; +HiveSqlLexer.T_INT4 = 141; +HiveSqlLexer.T_INT8 = 142; +HiveSqlLexer.T_INTEGER = 143; +HiveSqlLexer.T_INTERSECT = 144; +HiveSqlLexer.T_INTERVAL = 145; +HiveSqlLexer.T_INTO = 146; +HiveSqlLexer.T_INVOKER = 147; +HiveSqlLexer.T_IS = 148; +HiveSqlLexer.T_ISOPEN = 149; +HiveSqlLexer.T_ITEMS = 150; +HiveSqlLexer.T_JOIN = 151; +HiveSqlLexer.T_KEEP = 152; +HiveSqlLexer.T_KEY = 153; +HiveSqlLexer.T_KEYS = 154; +HiveSqlLexer.T_LANGUAGE = 155; +HiveSqlLexer.T_LEAVE = 156; +HiveSqlLexer.T_LEFT = 157; +HiveSqlLexer.T_LIKE = 158; +HiveSqlLexer.T_LIMIT = 159; +HiveSqlLexer.T_LINES = 160; +HiveSqlLexer.T_LOCAL = 161; +HiveSqlLexer.T_LOCATION = 162; +HiveSqlLexer.T_LOCATOR = 163; +HiveSqlLexer.T_LOCATORS = 164; +HiveSqlLexer.T_LOCKS = 165; +HiveSqlLexer.T_LOG = 166; +HiveSqlLexer.T_LOGGED = 167; +HiveSqlLexer.T_LOGGING = 168; +HiveSqlLexer.T_LOOP = 169; +HiveSqlLexer.T_MAP = 170; +HiveSqlLexer.T_MATCHED = 171; +HiveSqlLexer.T_MAX = 172; +HiveSqlLexer.T_MAXTRANS = 173; +HiveSqlLexer.T_MERGE = 174; +HiveSqlLexer.T_MESSAGE_TEXT = 175; +HiveSqlLexer.T_MICROSECOND = 176; +HiveSqlLexer.T_MICROSECONDS = 177; +HiveSqlLexer.T_MIN = 178; +HiveSqlLexer.T_MULTISET = 179; +HiveSqlLexer.T_NCHAR = 180; +HiveSqlLexer.T_NEW = 181; +HiveSqlLexer.T_NVARCHAR = 182; +HiveSqlLexer.T_NO = 183; +HiveSqlLexer.T_NOCOUNT = 184; +HiveSqlLexer.T_NOCOMPRESS = 185; +HiveSqlLexer.T_NOLOGGING = 186; +HiveSqlLexer.T_NONE = 187; +HiveSqlLexer.T_NOT = 188; +HiveSqlLexer.T_NOTFOUND = 189; +HiveSqlLexer.T_NULL = 190; +HiveSqlLexer.T_NUMERIC = 191; +HiveSqlLexer.T_NUMBER = 192; +HiveSqlLexer.T_OBJECT = 193; +HiveSqlLexer.T_OFF = 194; +HiveSqlLexer.T_ON = 195; +HiveSqlLexer.T_ONLY = 196; +HiveSqlLexer.T_OPEN = 197; +HiveSqlLexer.T_OR = 198; +HiveSqlLexer.T_ORDER = 199; +HiveSqlLexer.T_OUT = 200; +HiveSqlLexer.T_OUTER = 201; +HiveSqlLexer.T_OVER = 202; +HiveSqlLexer.T_OVERWRITE = 203; +HiveSqlLexer.T_OWNER = 204; +HiveSqlLexer.T_PACKAGE = 205; +HiveSqlLexer.T_PARTITION = 206; +HiveSqlLexer.T_PCTFREE = 207; +HiveSqlLexer.T_PCTUSED = 208; +HiveSqlLexer.T_PLS_INTEGER = 209; +HiveSqlLexer.T_PRECISION = 210; +HiveSqlLexer.T_PRESERVE = 211; +HiveSqlLexer.T_PRIMARY = 212; +HiveSqlLexer.T_PRINT = 213; +HiveSqlLexer.T_PROC = 214; +HiveSqlLexer.T_PROCEDURE = 215; +HiveSqlLexer.T_QUALIFY = 216; +HiveSqlLexer.T_QUERY_BAND = 217; +HiveSqlLexer.T_QUIT = 218; +HiveSqlLexer.T_QUOTED_IDENTIFIER = 219; +HiveSqlLexer.T_RAISE = 220; +HiveSqlLexer.T_REAL = 221; +HiveSqlLexer.T_REFERENCES = 222; +HiveSqlLexer.T_REGEXP = 223; +HiveSqlLexer.T_REPLACE = 224; +HiveSqlLexer.T_RESIGNAL = 225; +HiveSqlLexer.T_RESTRICT = 226; +HiveSqlLexer.T_RESULT = 227; +HiveSqlLexer.T_RESULT_SET_LOCATOR = 228; +HiveSqlLexer.T_RETURN = 229; +HiveSqlLexer.T_RETURNS = 230; +HiveSqlLexer.T_REVERSE = 231; +HiveSqlLexer.T_RIGHT = 232; +HiveSqlLexer.T_RLIKE = 233; +HiveSqlLexer.T_ROLE = 234; +HiveSqlLexer.T_ROLLBACK = 235; +HiveSqlLexer.T_ROW = 236; +HiveSqlLexer.T_ROWS = 237; +HiveSqlLexer.T_ROWTYPE = 238; +HiveSqlLexer.T_ROW_COUNT = 239; +HiveSqlLexer.T_RR = 240; +HiveSqlLexer.T_RS = 241; +HiveSqlLexer.T_PWD = 242; +HiveSqlLexer.T_TRIM = 243; +HiveSqlLexer.T_SCHEMA = 244; +HiveSqlLexer.T_SECOND = 245; +HiveSqlLexer.T_SECONDS = 246; +HiveSqlLexer.T_SECURITY = 247; +HiveSqlLexer.T_SEGMENT = 248; +HiveSqlLexer.T_SEL = 249; +HiveSqlLexer.T_SELECT = 250; +HiveSqlLexer.T_SET = 251; +HiveSqlLexer.T_SESSION = 252; +HiveSqlLexer.T_SESSIONS = 253; +HiveSqlLexer.T_SETS = 254; +HiveSqlLexer.T_SHARE = 255; +HiveSqlLexer.T_SIGNAL = 256; +HiveSqlLexer.T_SIMPLE_DOUBLE = 257; +HiveSqlLexer.T_SIMPLE_FLOAT = 258; +HiveSqlLexer.T_SIMPLE_INTEGER = 259; +HiveSqlLexer.T_SMALLDATETIME = 260; +HiveSqlLexer.T_SMALLINT = 261; +HiveSqlLexer.T_SQL = 262; +HiveSqlLexer.T_SQLEXCEPTION = 263; +HiveSqlLexer.T_SQLINSERT = 264; +HiveSqlLexer.T_SQLSTATE = 265; +HiveSqlLexer.T_SQLWARNING = 266; +HiveSqlLexer.T_STATS = 267; +HiveSqlLexer.T_STATISTICS = 268; +HiveSqlLexer.T_STEP = 269; +HiveSqlLexer.T_STORAGE = 270; +HiveSqlLexer.T_STORED = 271; +HiveSqlLexer.T_STRING = 272; +HiveSqlLexer.T_SUBDIR = 273; +HiveSqlLexer.T_SUBSTRING = 274; +HiveSqlLexer.T_SUM = 275; +HiveSqlLexer.T_SUMMARY = 276; +HiveSqlLexer.T_SYS_REFCURSOR = 277; +HiveSqlLexer.T_TABLE = 278; +HiveSqlLexer.T_TABLESPACE = 279; +HiveSqlLexer.T_TEMPORARY = 280; +HiveSqlLexer.T_TERMINATED = 281; +HiveSqlLexer.T_TEXTIMAGE_ON = 282; +HiveSqlLexer.T_THEN = 283; +HiveSqlLexer.T_TIMESTAMP = 284; +HiveSqlLexer.T_TINYINT = 285; +HiveSqlLexer.T_TITLE = 286; +HiveSqlLexer.T_TO = 287; +HiveSqlLexer.T_TOP = 288; +HiveSqlLexer.T_TRANSACTION = 289; +HiveSqlLexer.T_TRUE = 290; +HiveSqlLexer.T_TRUNCATE = 291; +HiveSqlLexer.T_TYPE = 292; +HiveSqlLexer.T_UNION = 293; +HiveSqlLexer.T_UNIQUE = 294; +HiveSqlLexer.T_UPDATE = 295; +HiveSqlLexer.T_UR = 296; +HiveSqlLexer.T_USE = 297; +HiveSqlLexer.T_USING = 298; +HiveSqlLexer.T_VALUE = 299; +HiveSqlLexer.T_VALUES = 300; +HiveSqlLexer.T_VAR = 301; +HiveSqlLexer.T_VARCHAR = 302; +HiveSqlLexer.T_VARCHAR2 = 303; +HiveSqlLexer.T_VARYING = 304; +HiveSqlLexer.T_VOLATILE = 305; +HiveSqlLexer.T_WHEN = 306; +HiveSqlLexer.T_WHERE = 307; +HiveSqlLexer.T_WHILE = 308; +HiveSqlLexer.T_WITH = 309; +HiveSqlLexer.T_WITHOUT = 310; +HiveSqlLexer.T_WORK = 311; +HiveSqlLexer.T_XACT_ABORT = 312; +HiveSqlLexer.T_XML = 313; +HiveSqlLexer.T_YES = 314; +HiveSqlLexer.T_ACTIVITY_COUNT = 315; +HiveSqlLexer.T_CUME_DIST = 316; +HiveSqlLexer.T_CURRENT_DATE = 317; +HiveSqlLexer.T_CURRENT_TIMESTAMP = 318; +HiveSqlLexer.T_CURRENT_USER = 319; +HiveSqlLexer.T_DENSE_RANK = 320; +HiveSqlLexer.T_FIRST_VALUE = 321; +HiveSqlLexer.T_LAG = 322; +HiveSqlLexer.T_LAST_VALUE = 323; +HiveSqlLexer.T_LEAD = 324; +HiveSqlLexer.T_MAX_PART_STRING = 325; +HiveSqlLexer.T_MIN_PART_STRING = 326; +HiveSqlLexer.T_MAX_PART_INT = 327; +HiveSqlLexer.T_MIN_PART_INT = 328; +HiveSqlLexer.T_MAX_PART_DATE = 329; +HiveSqlLexer.T_MIN_PART_DATE = 330; +HiveSqlLexer.T_PART_COUNT = 331; +HiveSqlLexer.T_PART_LOC = 332; +HiveSqlLexer.T_RANK = 333; +HiveSqlLexer.T_ROW_NUMBER = 334; +HiveSqlLexer.T_STDEV = 335; +HiveSqlLexer.T_SYSDATE = 336; +HiveSqlLexer.T_VARIANCE = 337; +HiveSqlLexer.T_USER = 338; +HiveSqlLexer.T_ADD = 339; +HiveSqlLexer.T_COLON = 340; +HiveSqlLexer.T_COMMA = 341; +HiveSqlLexer.T_PIPE = 342; +HiveSqlLexer.T_DIV = 343; +HiveSqlLexer.T_DOT = 344; +HiveSqlLexer.T_DOT2 = 345; +HiveSqlLexer.T_EQUAL = 346; +HiveSqlLexer.T_EQUAL2 = 347; +HiveSqlLexer.T_SHARP = 348; +HiveSqlLexer.T_NOTE = 349; +HiveSqlLexer.T_NOTEQUAL = 350; +HiveSqlLexer.T_NOTEQUAL2 = 351; +HiveSqlLexer.T_GREATER = 352; +HiveSqlLexer.T_GREATEREQUAL = 353; +HiveSqlLexer.T_LESS = 354; +HiveSqlLexer.T_LESSEQUAL = 355; +HiveSqlLexer.T_MUL = 356; +HiveSqlLexer.T_PRECENT = 357; +HiveSqlLexer.T_CALLS = 358; +HiveSqlLexer.T_OPEN_B = 359; +HiveSqlLexer.T_OPEN_P = 360; +HiveSqlLexer.T_OPEN_SB = 361; +HiveSqlLexer.T_CLOSE_B = 362; +HiveSqlLexer.T_CLOSE_P = 363; +HiveSqlLexer.T_CLOSE_SB = 364; +HiveSqlLexer.T_SEMICOLON = 365; +HiveSqlLexer.T_SUB = 366; +HiveSqlLexer.L_ID = 367; +HiveSqlLexer.L_S_STRING = 368; +HiveSqlLexer.L_D_STRING = 369; +HiveSqlLexer.L_INT = 370; +HiveSqlLexer.L_DEC = 371; +HiveSqlLexer.L_WS = 372; +HiveSqlLexer.L_M_COMMENT = 373; +HiveSqlLexer.L_S_COMMENT = 374; +HiveSqlLexer.L_FILE = 375; +HiveSqlLexer.L_LABEL = 376; HiveSqlLexer.prototype.channelNames = [ "DEFAULT_TOKEN_CHANNEL", "HIDDEN" ]; HiveSqlLexer.prototype.modeNames = [ "DEFAULT_MODE" ]; -HiveSqlLexer.prototype.literalNames = [ null, "'@'", "'#'", "'/'", "'%'", - "'.'", "'*'", "'!'", "';'", "'-'", - "'+'" ]; +HiveSqlLexer.prototype.literalNames = [ null, null, null, null, null, null, + null, null, null, null, null, null, + null, null, null, null, null, null, + null, null, null, null, null, null, + null, null, null, null, null, null, + null, null, null, null, null, null, + null, null, null, null, null, null, + null, null, null, null, null, null, + null, null, null, null, null, null, + null, null, null, null, null, null, + null, null, null, null, null, null, + null, null, null, null, null, null, + null, null, null, null, null, null, + null, null, null, null, null, null, + null, null, null, null, null, null, + null, null, null, null, null, null, + null, null, null, null, null, null, + null, null, null, null, null, null, + null, null, null, null, null, null, + null, null, null, null, null, null, + null, null, null, null, null, null, + null, null, null, null, null, null, + null, null, null, null, null, null, + null, null, null, null, null, null, + null, null, null, null, null, null, + null, null, null, null, null, null, + null, null, null, null, null, null, + null, null, null, null, null, null, + null, null, null, null, null, null, + null, null, null, null, null, null, + null, null, null, null, null, null, + null, null, null, null, null, null, + null, null, null, null, null, null, + null, null, null, null, null, null, + null, null, null, null, null, null, + null, null, null, null, null, null, + null, null, null, null, null, null, + null, null, null, null, null, null, + null, null, null, null, null, null, + null, null, null, null, null, null, + null, null, null, null, null, null, + null, null, null, null, null, null, + null, null, null, null, null, null, + null, null, null, null, null, null, + null, null, null, null, null, null, + null, null, null, null, null, null, + null, null, null, null, null, null, + null, null, null, null, null, null, + null, null, null, null, null, null, + null, null, null, null, null, null, + null, null, null, null, null, null, + null, null, null, null, null, null, + null, null, null, null, null, null, + null, null, null, null, null, null, + null, null, null, null, null, null, + null, null, null, null, null, null, + null, null, null, "'+'", "':'", + "','", "'||'", "'/'", "'.'", "'..'", + "'='", "'=='", "'#'", "'!'", "'<>'", + "'!='", "'>'", "'>='", "'<'", "'<='", + "'*'", "'%'", "'@'", "'{'", "'('", + "'['", "'}'", "')'", "']'", "';'", + "'-'" ]; -HiveSqlLexer.prototype.symbolicNames = [ ]; +HiveSqlLexer.prototype.symbolicNames = [ null, "T_ACTION", "T_ADD2", "T_ALL", + "T_ALLOCATE", "T_ALTER", "T_AND", + "T_ANSI_NULLS", "T_ANSI_PADDING", + "T_AS", "T_ASC", "T_ASSOCIATE", + "T_AT", "T_AUTO_INCREMENT", "T_AVG", + "T_BATCHSIZE", "T_BEGIN", "T_BETWEEN", + "T_BIGINT", "T_BINARY_DOUBLE", + "T_BINARY_FLOAT", "T_BINARY_INTEGER", + "T_BIT", "T_BODY", "T_BREAK", "T_BY", + "T_BYTE", "T_CALL", "T_CALLER", + "T_CASCADE", "T_CASE", "T_CASESPECIFIC", + "T_CAST", "T_CHAR", "T_CHARACTER", + "T_CHARSET", "T_CLIENT", "T_CLOSE", + "T_CLUSTERED", "T_CMP", "T_COLLECT", + "T_COLLECTION", "T_COLUMN", "T_COMMENT", + "T_CONSTANT", "T_COMMIT", "T_COMPRESS", + "T_CONCAT", "T_CONDITION", "T_CONSTRAINT", + "T_CONTINUE", "T_COPY", "T_COUNT", + "T_COUNT_BIG", "T_CREATE", "T_CREATION", + "T_CREATOR", "T_CS", "T_CURRENT", + "T_CURRENT_SCHEMA", "T_CURSOR", + "T_DATABASE", "T_DATA", "T_DATE", + "T_DATETIME", "T_DAY", "T_DAYS", + "T_DEC", "T_DECIMAL", "T_DECLARE", + "T_DEFAULT", "T_DEFERRED", "T_DEFINED", + "T_DEFINER", "T_DEFINITION", "T_DELETE", + "T_DELIMITED", "T_DELIMITER", "T_DESC", + "T_DESCRIBE", "T_DIAGNOSTICS", + "T_DIR", "T_DIRECTORY", "T_DISTINCT", + "T_DISTRIBUTE", "T_DO", "T_DOUBLE", + "T_DROP", "T_DYNAMIC", "T_ELSE", + "T_ELSEIF", "T_ELSIF", "T_ENABLE", + "T_END", "T_ENGINE", "T_ESCAPED", + "T_EXCEPT", "T_EXEC", "T_EXECUTE", + "T_EXCEPTION", "T_EXCLUSIVE", "T_EXISTS", + "T_EXIT", "T_FALLBACK", "T_FALSE", + "T_FETCH", "T_FIELDS", "T_FILE", + "T_FILES", "T_FLOAT", "T_FOR", + "T_FOREIGN", "T_FORMAT", "T_FOUND", + "T_FROM", "T_FULL", "T_FUNCTION", + "T_GET", "T_GLOBAL", "T_GO", "T_GRANT", + "T_GROUP", "T_HANDLER", "T_HASH", + "T_HAVING", "T_HDFS", "T_HIVE", + "T_HOST", "T_IDENTITY", "T_IF", + "T_IGNORE", "T_IMMEDIATE", "T_IN", + "T_INCLUDE", "T_INDEX", "T_INITRANS", + "T_INNER", "T_INOUT", "T_INSERT", + "T_INT", "T_INT2", "T_INT4", "T_INT8", + "T_INTEGER", "T_INTERSECT", "T_INTERVAL", + "T_INTO", "T_INVOKER", "T_IS", + "T_ISOPEN", "T_ITEMS", "T_JOIN", + "T_KEEP", "T_KEY", "T_KEYS", "T_LANGUAGE", + "T_LEAVE", "T_LEFT", "T_LIKE", + "T_LIMIT", "T_LINES", "T_LOCAL", + "T_LOCATION", "T_LOCATOR", "T_LOCATORS", + "T_LOCKS", "T_LOG", "T_LOGGED", + "T_LOGGING", "T_LOOP", "T_MAP", + "T_MATCHED", "T_MAX", "T_MAXTRANS", + "T_MERGE", "T_MESSAGE_TEXT", "T_MICROSECOND", + "T_MICROSECONDS", "T_MIN", "T_MULTISET", + "T_NCHAR", "T_NEW", "T_NVARCHAR", + "T_NO", "T_NOCOUNT", "T_NOCOMPRESS", + "T_NOLOGGING", "T_NONE", "T_NOT", + "T_NOTFOUND", "T_NULL", "T_NUMERIC", + "T_NUMBER", "T_OBJECT", "T_OFF", + "T_ON", "T_ONLY", "T_OPEN", "T_OR", + "T_ORDER", "T_OUT", "T_OUTER", + "T_OVER", "T_OVERWRITE", "T_OWNER", + "T_PACKAGE", "T_PARTITION", "T_PCTFREE", + "T_PCTUSED", "T_PLS_INTEGER", "T_PRECISION", + "T_PRESERVE", "T_PRIMARY", "T_PRINT", + "T_PROC", "T_PROCEDURE", "T_QUALIFY", + "T_QUERY_BAND", "T_QUIT", "T_QUOTED_IDENTIFIER", + "T_RAISE", "T_REAL", "T_REFERENCES", + "T_REGEXP", "T_REPLACE", "T_RESIGNAL", + "T_RESTRICT", "T_RESULT", "T_RESULT_SET_LOCATOR", + "T_RETURN", "T_RETURNS", "T_REVERSE", + "T_RIGHT", "T_RLIKE", "T_ROLE", + "T_ROLLBACK", "T_ROW", "T_ROWS", + "T_ROWTYPE", "T_ROW_COUNT", "T_RR", + "T_RS", "T_PWD", "T_TRIM", "T_SCHEMA", + "T_SECOND", "T_SECONDS", "T_SECURITY", + "T_SEGMENT", "T_SEL", "T_SELECT", + "T_SET", "T_SESSION", "T_SESSIONS", + "T_SETS", "T_SHARE", "T_SIGNAL", + "T_SIMPLE_DOUBLE", "T_SIMPLE_FLOAT", + "T_SIMPLE_INTEGER", "T_SMALLDATETIME", + "T_SMALLINT", "T_SQL", "T_SQLEXCEPTION", + "T_SQLINSERT", "T_SQLSTATE", "T_SQLWARNING", + "T_STATS", "T_STATISTICS", "T_STEP", + "T_STORAGE", "T_STORED", "T_STRING", + "T_SUBDIR", "T_SUBSTRING", "T_SUM", + "T_SUMMARY", "T_SYS_REFCURSOR", + "T_TABLE", "T_TABLESPACE", "T_TEMPORARY", + "T_TERMINATED", "T_TEXTIMAGE_ON", + "T_THEN", "T_TIMESTAMP", "T_TINYINT", + "T_TITLE", "T_TO", "T_TOP", "T_TRANSACTION", + "T_TRUE", "T_TRUNCATE", "T_TYPE", + "T_UNION", "T_UNIQUE", "T_UPDATE", + "T_UR", "T_USE", "T_USING", "T_VALUE", + "T_VALUES", "T_VAR", "T_VARCHAR", + "T_VARCHAR2", "T_VARYING", "T_VOLATILE", + "T_WHEN", "T_WHERE", "T_WHILE", + "T_WITH", "T_WITHOUT", "T_WORK", + "T_XACT_ABORT", "T_XML", "T_YES", + "T_ACTIVITY_COUNT", "T_CUME_DIST", + "T_CURRENT_DATE", "T_CURRENT_TIMESTAMP", + "T_CURRENT_USER", "T_DENSE_RANK", + "T_FIRST_VALUE", "T_LAG", "T_LAST_VALUE", + "T_LEAD", "T_MAX_PART_STRING", + "T_MIN_PART_STRING", "T_MAX_PART_INT", + "T_MIN_PART_INT", "T_MAX_PART_DATE", + "T_MIN_PART_DATE", "T_PART_COUNT", + "T_PART_LOC", "T_RANK", "T_ROW_NUMBER", + "T_STDEV", "T_SYSDATE", "T_VARIANCE", + "T_USER", "T_ADD", "T_COLON", "T_COMMA", + "T_PIPE", "T_DIV", "T_DOT", "T_DOT2", + "T_EQUAL", "T_EQUAL2", "T_SHARP", + "T_NOTE", "T_NOTEQUAL", "T_NOTEQUAL2", + "T_GREATER", "T_GREATEREQUAL", + "T_LESS", "T_LESSEQUAL", "T_MUL", + "T_PRECENT", "T_CALLS", "T_OPEN_B", + "T_OPEN_P", "T_OPEN_SB", "T_CLOSE_B", + "T_CLOSE_P", "T_CLOSE_SB", "T_SEMICOLON", + "T_SUB", "L_ID", "L_S_STRING", + "L_D_STRING", "L_INT", "L_DEC", + "L_WS", "L_M_COMMENT", "L_S_COMMENT", + "L_FILE", "L_LABEL" ]; -HiveSqlLexer.prototype.ruleNames = [ "T__0", "T__1", "T__2", "T__3", "T__4", - "T__5", "T__6", "T__7", "T__8", "T__9" ]; +HiveSqlLexer.prototype.ruleNames = [ "T_ACTION", "T_ADD2", "T_ALL", "T_ALLOCATE", + "T_ALTER", "T_AND", "T_ANSI_NULLS", + "T_ANSI_PADDING", "T_AS", "T_ASC", + "T_ASSOCIATE", "T_AT", "T_AUTO_INCREMENT", + "T_AVG", "T_BATCHSIZE", "T_BEGIN", + "T_BETWEEN", "T_BIGINT", "T_BINARY_DOUBLE", + "T_BINARY_FLOAT", "T_BINARY_INTEGER", + "T_BIT", "T_BODY", "T_BREAK", "T_BY", + "T_BYTE", "T_CALL", "T_CALLER", "T_CASCADE", + "T_CASE", "T_CASESPECIFIC", "T_CAST", + "T_CHAR", "T_CHARACTER", "T_CHARSET", + "T_CLIENT", "T_CLOSE", "T_CLUSTERED", + "T_CMP", "T_COLLECT", "T_COLLECTION", + "T_COLUMN", "T_COMMENT", "T_CONSTANT", + "T_COMMIT", "T_COMPRESS", "T_CONCAT", + "T_CONDITION", "T_CONSTRAINT", "T_CONTINUE", + "T_COPY", "T_COUNT", "T_COUNT_BIG", + "T_CREATE", "T_CREATION", "T_CREATOR", + "T_CS", "T_CURRENT", "T_CURRENT_SCHEMA", + "T_CURSOR", "T_DATABASE", "T_DATA", + "T_DATE", "T_DATETIME", "T_DAY", "T_DAYS", + "T_DEC", "T_DECIMAL", "T_DECLARE", + "T_DEFAULT", "T_DEFERRED", "T_DEFINED", + "T_DEFINER", "T_DEFINITION", "T_DELETE", + "T_DELIMITED", "T_DELIMITER", "T_DESC", + "T_DESCRIBE", "T_DIAGNOSTICS", "T_DIR", + "T_DIRECTORY", "T_DISTINCT", "T_DISTRIBUTE", + "T_DO", "T_DOUBLE", "T_DROP", "T_DYNAMIC", + "T_ELSE", "T_ELSEIF", "T_ELSIF", "T_ENABLE", + "T_END", "T_ENGINE", "T_ESCAPED", "T_EXCEPT", + "T_EXEC", "T_EXECUTE", "T_EXCEPTION", + "T_EXCLUSIVE", "T_EXISTS", "T_EXIT", + "T_FALLBACK", "T_FALSE", "T_FETCH", + "T_FIELDS", "T_FILE", "T_FILES", "T_FLOAT", + "T_FOR", "T_FOREIGN", "T_FORMAT", "T_FOUND", + "T_FROM", "T_FULL", "T_FUNCTION", "T_GET", + "T_GLOBAL", "T_GO", "T_GRANT", "T_GROUP", + "T_HANDLER", "T_HASH", "T_HAVING", + "T_HDFS", "T_HIVE", "T_HOST", "T_IDENTITY", + "T_IF", "T_IGNORE", "T_IMMEDIATE", + "T_IN", "T_INCLUDE", "T_INDEX", "T_INITRANS", + "T_INNER", "T_INOUT", "T_INSERT", "T_INT", + "T_INT2", "T_INT4", "T_INT8", "T_INTEGER", + "T_INTERSECT", "T_INTERVAL", "T_INTO", + "T_INVOKER", "T_IS", "T_ISOPEN", "T_ITEMS", + "T_JOIN", "T_KEEP", "T_KEY", "T_KEYS", + "T_LANGUAGE", "T_LEAVE", "T_LEFT", + "T_LIKE", "T_LIMIT", "T_LINES", "T_LOCAL", + "T_LOCATION", "T_LOCATOR", "T_LOCATORS", + "T_LOCKS", "T_LOG", "T_LOGGED", "T_LOGGING", + "T_LOOP", "T_MAP", "T_MATCHED", "T_MAX", + "T_MAXTRANS", "T_MERGE", "T_MESSAGE_TEXT", + "T_MICROSECOND", "T_MICROSECONDS", + "T_MIN", "T_MULTISET", "T_NCHAR", "T_NEW", + "T_NVARCHAR", "T_NO", "T_NOCOUNT", + "T_NOCOMPRESS", "T_NOLOGGING", "T_NONE", + "T_NOT", "T_NOTFOUND", "T_NULL", "T_NUMERIC", + "T_NUMBER", "T_OBJECT", "T_OFF", "T_ON", + "T_ONLY", "T_OPEN", "T_OR", "T_ORDER", + "T_OUT", "T_OUTER", "T_OVER", "T_OVERWRITE", + "T_OWNER", "T_PACKAGE", "T_PARTITION", + "T_PCTFREE", "T_PCTUSED", "T_PLS_INTEGER", + "T_PRECISION", "T_PRESERVE", "T_PRIMARY", + "T_PRINT", "T_PROC", "T_PROCEDURE", + "T_QUALIFY", "T_QUERY_BAND", "T_QUIT", + "T_QUOTED_IDENTIFIER", "T_RAISE", "T_REAL", + "T_REFERENCES", "T_REGEXP", "T_REPLACE", + "T_RESIGNAL", "T_RESTRICT", "T_RESULT", + "T_RESULT_SET_LOCATOR", "T_RETURN", + "T_RETURNS", "T_REVERSE", "T_RIGHT", + "T_RLIKE", "T_ROLE", "T_ROLLBACK", + "T_ROW", "T_ROWS", "T_ROWTYPE", "T_ROW_COUNT", + "T_RR", "T_RS", "T_PWD", "T_TRIM", + "T_SCHEMA", "T_SECOND", "T_SECONDS", + "T_SECURITY", "T_SEGMENT", "T_SEL", + "T_SELECT", "T_SET", "T_SESSION", "T_SESSIONS", + "T_SETS", "T_SHARE", "T_SIGNAL", "T_SIMPLE_DOUBLE", + "T_SIMPLE_FLOAT", "T_SIMPLE_INTEGER", + "T_SMALLDATETIME", "T_SMALLINT", "T_SQL", + "T_SQLEXCEPTION", "T_SQLINSERT", "T_SQLSTATE", + "T_SQLWARNING", "T_STATS", "T_STATISTICS", + "T_STEP", "T_STORAGE", "T_STORED", + "T_STRING", "T_SUBDIR", "T_SUBSTRING", + "T_SUM", "T_SUMMARY", "T_SYS_REFCURSOR", + "T_TABLE", "T_TABLESPACE", "T_TEMPORARY", + "T_TERMINATED", "T_TEXTIMAGE_ON", "T_THEN", + "T_TIMESTAMP", "T_TINYINT", "T_TITLE", + "T_TO", "T_TOP", "T_TRANSACTION", "T_TRUE", + "T_TRUNCATE", "T_TYPE", "T_UNION", + "T_UNIQUE", "T_UPDATE", "T_UR", "T_USE", + "T_USING", "T_VALUE", "T_VALUES", "T_VAR", + "T_VARCHAR", "T_VARCHAR2", "T_VARYING", + "T_VOLATILE", "T_WHEN", "T_WHERE", + "T_WHILE", "T_WITH", "T_WITHOUT", "T_WORK", + "T_XACT_ABORT", "T_XML", "T_YES", "T_ACTIVITY_COUNT", + "T_CUME_DIST", "T_CURRENT_DATE", "T_CURRENT_TIMESTAMP", + "T_CURRENT_USER", "T_DENSE_RANK", "T_FIRST_VALUE", + "T_LAG", "T_LAST_VALUE", "T_LEAD", + "T_MAX_PART_STRING", "T_MIN_PART_STRING", + "T_MAX_PART_INT", "T_MIN_PART_INT", + "T_MAX_PART_DATE", "T_MIN_PART_DATE", + "T_PART_COUNT", "T_PART_LOC", "T_RANK", + "T_ROW_NUMBER", "T_STDEV", "T_SYSDATE", + "T_VARIANCE", "T_USER", "T_ADD", "T_COLON", + "T_COMMA", "T_PIPE", "T_DIV", "T_DOT", + "T_DOT2", "T_EQUAL", "T_EQUAL2", "T_SHARP", + "T_NOTE", "T_NOTEQUAL", "T_NOTEQUAL2", + "T_GREATER", "T_GREATEREQUAL", "T_LESS", + "T_LESSEQUAL", "T_MUL", "T_PRECENT", + "T_CALLS", "T_OPEN_B", "T_OPEN_P", + "T_OPEN_SB", "T_CLOSE_B", "T_CLOSE_P", + "T_CLOSE_SB", "T_SEMICOLON", "T_SUB", + "L_ID", "L_S_STRING", "L_D_STRING", + "L_INT", "L_DEC", "L_WS", "L_M_COMMENT", + "L_S_COMMENT", "L_FILE", "L_LABEL", + "L_ID_PART", "L_STR_ESC_D", "L_DIGIT", + "L_BLANK", "A", "B", "C", "D", "E", + "F", "G", "H", "I", "J", "K", "L", + "M", "N", "O", "P", "Q", "R", "S", + "T", "U", "V", "W", "X", "Y", "Z" ]; -HiveSqlLexer.prototype.grammarFileName = "HiveSql.g4"; +HiveSqlLexer.prototype.grammarFileName = "HiveSqlLexer.g4"; exports.HiveSqlLexer = HiveSqlLexer; diff --git a/src/lib/hive/HiveSqlLexer.tokens b/src/lib/hive/HiveSqlLexer.tokens index 891ccf7..f6acc0b 100644 --- a/src/lib/hive/HiveSqlLexer.tokens +++ b/src/lib/hive/HiveSqlLexer.tokens @@ -1,20 +1,404 @@ -T__0=1 -T__1=2 -T__2=3 -T__3=4 -T__4=5 -T__5=6 -T__6=7 -T__7=8 -T__8=9 -T__9=10 -'@'=1 -'#'=2 -'/'=3 -'%'=4 -'.'=5 -'*'=6 -'!'=7 -';'=8 -'-'=9 -'+'=10 +T_ACTION=1 +T_ADD2=2 +T_ALL=3 +T_ALLOCATE=4 +T_ALTER=5 +T_AND=6 +T_ANSI_NULLS=7 +T_ANSI_PADDING=8 +T_AS=9 +T_ASC=10 +T_ASSOCIATE=11 +T_AT=12 +T_AUTO_INCREMENT=13 +T_AVG=14 +T_BATCHSIZE=15 +T_BEGIN=16 +T_BETWEEN=17 +T_BIGINT=18 +T_BINARY_DOUBLE=19 +T_BINARY_FLOAT=20 +T_BINARY_INTEGER=21 +T_BIT=22 +T_BODY=23 +T_BREAK=24 +T_BY=25 +T_BYTE=26 +T_CALL=27 +T_CALLER=28 +T_CASCADE=29 +T_CASE=30 +T_CASESPECIFIC=31 +T_CAST=32 +T_CHAR=33 +T_CHARACTER=34 +T_CHARSET=35 +T_CLIENT=36 +T_CLOSE=37 +T_CLUSTERED=38 +T_CMP=39 +T_COLLECT=40 +T_COLLECTION=41 +T_COLUMN=42 +T_COMMENT=43 +T_CONSTANT=44 +T_COMMIT=45 +T_COMPRESS=46 +T_CONCAT=47 +T_CONDITION=48 +T_CONSTRAINT=49 +T_CONTINUE=50 +T_COPY=51 +T_COUNT=52 +T_COUNT_BIG=53 +T_CREATE=54 +T_CREATION=55 +T_CREATOR=56 +T_CS=57 +T_CURRENT=58 +T_CURRENT_SCHEMA=59 +T_CURSOR=60 +T_DATABASE=61 +T_DATA=62 +T_DATE=63 +T_DATETIME=64 +T_DAY=65 +T_DAYS=66 +T_DEC=67 +T_DECIMAL=68 +T_DECLARE=69 +T_DEFAULT=70 +T_DEFERRED=71 +T_DEFINED=72 +T_DEFINER=73 +T_DEFINITION=74 +T_DELETE=75 +T_DELIMITED=76 +T_DELIMITER=77 +T_DESC=78 +T_DESCRIBE=79 +T_DIAGNOSTICS=80 +T_DIR=81 +T_DIRECTORY=82 +T_DISTINCT=83 +T_DISTRIBUTE=84 +T_DO=85 +T_DOUBLE=86 +T_DROP=87 +T_DYNAMIC=88 +T_ELSE=89 +T_ELSEIF=90 +T_ELSIF=91 +T_ENABLE=92 +T_END=93 +T_ENGINE=94 +T_ESCAPED=95 +T_EXCEPT=96 +T_EXEC=97 +T_EXECUTE=98 +T_EXCEPTION=99 +T_EXCLUSIVE=100 +T_EXISTS=101 +T_EXIT=102 +T_FALLBACK=103 +T_FALSE=104 +T_FETCH=105 +T_FIELDS=106 +T_FILE=107 +T_FILES=108 +T_FLOAT=109 +T_FOR=110 +T_FOREIGN=111 +T_FORMAT=112 +T_FOUND=113 +T_FROM=114 +T_FULL=115 +T_FUNCTION=116 +T_GET=117 +T_GLOBAL=118 +T_GO=119 +T_GRANT=120 +T_GROUP=121 +T_HANDLER=122 +T_HASH=123 +T_HAVING=124 +T_HDFS=125 +T_HIVE=126 +T_HOST=127 +T_IDENTITY=128 +T_IF=129 +T_IGNORE=130 +T_IMMEDIATE=131 +T_IN=132 +T_INCLUDE=133 +T_INDEX=134 +T_INITRANS=135 +T_INNER=136 +T_INOUT=137 +T_INSERT=138 +T_INT=139 +T_INT2=140 +T_INT4=141 +T_INT8=142 +T_INTEGER=143 +T_INTERSECT=144 +T_INTERVAL=145 +T_INTO=146 +T_INVOKER=147 +T_IS=148 +T_ISOPEN=149 +T_ITEMS=150 +T_JOIN=151 +T_KEEP=152 +T_KEY=153 +T_KEYS=154 +T_LANGUAGE=155 +T_LEAVE=156 +T_LEFT=157 +T_LIKE=158 +T_LIMIT=159 +T_LINES=160 +T_LOCAL=161 +T_LOCATION=162 +T_LOCATOR=163 +T_LOCATORS=164 +T_LOCKS=165 +T_LOG=166 +T_LOGGED=167 +T_LOGGING=168 +T_LOOP=169 +T_MAP=170 +T_MATCHED=171 +T_MAX=172 +T_MAXTRANS=173 +T_MERGE=174 +T_MESSAGE_TEXT=175 +T_MICROSECOND=176 +T_MICROSECONDS=177 +T_MIN=178 +T_MULTISET=179 +T_NCHAR=180 +T_NEW=181 +T_NVARCHAR=182 +T_NO=183 +T_NOCOUNT=184 +T_NOCOMPRESS=185 +T_NOLOGGING=186 +T_NONE=187 +T_NOT=188 +T_NOTFOUND=189 +T_NULL=190 +T_NUMERIC=191 +T_NUMBER=192 +T_OBJECT=193 +T_OFF=194 +T_ON=195 +T_ONLY=196 +T_OPEN=197 +T_OR=198 +T_ORDER=199 +T_OUT=200 +T_OUTER=201 +T_OVER=202 +T_OVERWRITE=203 +T_OWNER=204 +T_PACKAGE=205 +T_PARTITION=206 +T_PCTFREE=207 +T_PCTUSED=208 +T_PLS_INTEGER=209 +T_PRECISION=210 +T_PRESERVE=211 +T_PRIMARY=212 +T_PRINT=213 +T_PROC=214 +T_PROCEDURE=215 +T_QUALIFY=216 +T_QUERY_BAND=217 +T_QUIT=218 +T_QUOTED_IDENTIFIER=219 +T_RAISE=220 +T_REAL=221 +T_REFERENCES=222 +T_REGEXP=223 +T_REPLACE=224 +T_RESIGNAL=225 +T_RESTRICT=226 +T_RESULT=227 +T_RESULT_SET_LOCATOR=228 +T_RETURN=229 +T_RETURNS=230 +T_REVERSE=231 +T_RIGHT=232 +T_RLIKE=233 +T_ROLE=234 +T_ROLLBACK=235 +T_ROW=236 +T_ROWS=237 +T_ROWTYPE=238 +T_ROW_COUNT=239 +T_RR=240 +T_RS=241 +T_PWD=242 +T_TRIM=243 +T_SCHEMA=244 +T_SECOND=245 +T_SECONDS=246 +T_SECURITY=247 +T_SEGMENT=248 +T_SEL=249 +T_SELECT=250 +T_SET=251 +T_SESSION=252 +T_SESSIONS=253 +T_SETS=254 +T_SHARE=255 +T_SIGNAL=256 +T_SIMPLE_DOUBLE=257 +T_SIMPLE_FLOAT=258 +T_SIMPLE_INTEGER=259 +T_SMALLDATETIME=260 +T_SMALLINT=261 +T_SQL=262 +T_SQLEXCEPTION=263 +T_SQLINSERT=264 +T_SQLSTATE=265 +T_SQLWARNING=266 +T_STATS=267 +T_STATISTICS=268 +T_STEP=269 +T_STORAGE=270 +T_STORED=271 +T_STRING=272 +T_SUBDIR=273 +T_SUBSTRING=274 +T_SUM=275 +T_SUMMARY=276 +T_SYS_REFCURSOR=277 +T_TABLE=278 +T_TABLESPACE=279 +T_TEMPORARY=280 +T_TERMINATED=281 +T_TEXTIMAGE_ON=282 +T_THEN=283 +T_TIMESTAMP=284 +T_TINYINT=285 +T_TITLE=286 +T_TO=287 +T_TOP=288 +T_TRANSACTION=289 +T_TRUE=290 +T_TRUNCATE=291 +T_TYPE=292 +T_UNION=293 +T_UNIQUE=294 +T_UPDATE=295 +T_UR=296 +T_USE=297 +T_USING=298 +T_VALUE=299 +T_VALUES=300 +T_VAR=301 +T_VARCHAR=302 +T_VARCHAR2=303 +T_VARYING=304 +T_VOLATILE=305 +T_WHEN=306 +T_WHERE=307 +T_WHILE=308 +T_WITH=309 +T_WITHOUT=310 +T_WORK=311 +T_XACT_ABORT=312 +T_XML=313 +T_YES=314 +T_ACTIVITY_COUNT=315 +T_CUME_DIST=316 +T_CURRENT_DATE=317 +T_CURRENT_TIMESTAMP=318 +T_CURRENT_USER=319 +T_DENSE_RANK=320 +T_FIRST_VALUE=321 +T_LAG=322 +T_LAST_VALUE=323 +T_LEAD=324 +T_MAX_PART_STRING=325 +T_MIN_PART_STRING=326 +T_MAX_PART_INT=327 +T_MIN_PART_INT=328 +T_MAX_PART_DATE=329 +T_MIN_PART_DATE=330 +T_PART_COUNT=331 +T_PART_LOC=332 +T_RANK=333 +T_ROW_NUMBER=334 +T_STDEV=335 +T_SYSDATE=336 +T_VARIANCE=337 +T_USER=338 +T_ADD=339 +T_COLON=340 +T_COMMA=341 +T_PIPE=342 +T_DIV=343 +T_DOT=344 +T_DOT2=345 +T_EQUAL=346 +T_EQUAL2=347 +T_SHARP=348 +T_NOTE=349 +T_NOTEQUAL=350 +T_NOTEQUAL2=351 +T_GREATER=352 +T_GREATEREQUAL=353 +T_LESS=354 +T_LESSEQUAL=355 +T_MUL=356 +T_PRECENT=357 +T_CALLS=358 +T_OPEN_B=359 +T_OPEN_P=360 +T_OPEN_SB=361 +T_CLOSE_B=362 +T_CLOSE_P=363 +T_CLOSE_SB=364 +T_SEMICOLON=365 +T_SUB=366 +L_ID=367 +L_S_STRING=368 +L_D_STRING=369 +L_INT=370 +L_DEC=371 +L_WS=372 +L_M_COMMENT=373 +L_S_COMMENT=374 +L_FILE=375 +L_LABEL=376 +'+'=339 +':'=340 +','=341 +'||'=342 +'/'=343 +'.'=344 +'..'=345 +'='=346 +'=='=347 +'#'=348 +'!'=349 +'<>'=350 +'!='=351 +'>'=352 +'>='=353 +'<'=354 +'<='=355 +'*'=356 +'%'=357 +'@'=358 +'{'=359 +'('=360 +'['=361 +'}'=362 +')'=363 +']'=364 +';'=365 +'-'=366 diff --git a/src/lib/hive/HiveSqlListener.js b/src/lib/hive/HiveSqlListener.js index 7f0223a..1fb948a 100644 --- a/src/lib/hive/HiveSqlListener.js +++ b/src/lib/hive/HiveSqlListener.js @@ -1,8 +1,8 @@ -// Generated from /Users/ziv/Workspace/dt-sql-parser/src/grammar/hive/HiveSql.g4 by ANTLR 4.8 +// Generated from /Users/libowen/Desktop/Code/gitlab.prod.dtstack.cn/dt-insight-front/infrastructure/dt-sql-parser/src/grammar/hive/HiveSql.g4 by ANTLR 4.8 // jshint ignore: start var antlr4 = require('antlr4/index'); -// This class defines a complete listener for a parse tree produced by HiveSqlParser. +// This class defines a complete listener for a parse tree produced by HiveSql. function HiveSqlListener() { antlr4.tree.ParseTreeListener.call(this); return this; @@ -11,2045 +11,2045 @@ function HiveSqlListener() { HiveSqlListener.prototype = Object.create(antlr4.tree.ParseTreeListener.prototype); HiveSqlListener.prototype.constructor = HiveSqlListener; -// Enter a parse tree produced by HiveSqlParser#program. +// Enter a parse tree produced by HiveSql#program. HiveSqlListener.prototype.enterProgram = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#program. +// Exit a parse tree produced by HiveSql#program. HiveSqlListener.prototype.exitProgram = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#block. +// Enter a parse tree produced by HiveSql#block. HiveSqlListener.prototype.enterBlock = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#block. +// Exit a parse tree produced by HiveSql#block. HiveSqlListener.prototype.exitBlock = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#begin_end_block. +// Enter a parse tree produced by HiveSql#begin_end_block. HiveSqlListener.prototype.enterBegin_end_block = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#begin_end_block. +// Exit a parse tree produced by HiveSql#begin_end_block. HiveSqlListener.prototype.exitBegin_end_block = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#single_block_stmt. +// Enter a parse tree produced by HiveSql#single_block_stmt. HiveSqlListener.prototype.enterSingle_block_stmt = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#single_block_stmt. +// Exit a parse tree produced by HiveSql#single_block_stmt. HiveSqlListener.prototype.exitSingle_block_stmt = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#block_end. +// Enter a parse tree produced by HiveSql#block_end. HiveSqlListener.prototype.enterBlock_end = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#block_end. +// Exit a parse tree produced by HiveSql#block_end. HiveSqlListener.prototype.exitBlock_end = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#proc_block. +// Enter a parse tree produced by HiveSql#proc_block. HiveSqlListener.prototype.enterProc_block = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#proc_block. +// Exit a parse tree produced by HiveSql#proc_block. HiveSqlListener.prototype.exitProc_block = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#stmt. +// Enter a parse tree produced by HiveSql#stmt. HiveSqlListener.prototype.enterStmt = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#stmt. +// Exit a parse tree produced by HiveSql#stmt. HiveSqlListener.prototype.exitStmt = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#semicolon_stmt. +// Enter a parse tree produced by HiveSql#semicolon_stmt. HiveSqlListener.prototype.enterSemicolon_stmt = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#semicolon_stmt. +// Exit a parse tree produced by HiveSql#semicolon_stmt. HiveSqlListener.prototype.exitSemicolon_stmt = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#exception_block. +// Enter a parse tree produced by HiveSql#exception_block. HiveSqlListener.prototype.enterException_block = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#exception_block. +// Exit a parse tree produced by HiveSql#exception_block. HiveSqlListener.prototype.exitException_block = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#exception_block_item. +// Enter a parse tree produced by HiveSql#exception_block_item. HiveSqlListener.prototype.enterException_block_item = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#exception_block_item. +// Exit a parse tree produced by HiveSql#exception_block_item. HiveSqlListener.prototype.exitException_block_item = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#null_stmt. +// Enter a parse tree produced by HiveSql#null_stmt. HiveSqlListener.prototype.enterNull_stmt = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#null_stmt. +// Exit a parse tree produced by HiveSql#null_stmt. HiveSqlListener.prototype.exitNull_stmt = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#expr_stmt. +// Enter a parse tree produced by HiveSql#expr_stmt. HiveSqlListener.prototype.enterExpr_stmt = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#expr_stmt. +// Exit a parse tree produced by HiveSql#expr_stmt. HiveSqlListener.prototype.exitExpr_stmt = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#assignment_stmt. +// Enter a parse tree produced by HiveSql#assignment_stmt. HiveSqlListener.prototype.enterAssignment_stmt = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#assignment_stmt. +// Exit a parse tree produced by HiveSql#assignment_stmt. HiveSqlListener.prototype.exitAssignment_stmt = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#assignment_stmt_item. +// Enter a parse tree produced by HiveSql#assignment_stmt_item. HiveSqlListener.prototype.enterAssignment_stmt_item = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#assignment_stmt_item. +// Exit a parse tree produced by HiveSql#assignment_stmt_item. HiveSqlListener.prototype.exitAssignment_stmt_item = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#assignment_stmt_single_item. +// Enter a parse tree produced by HiveSql#assignment_stmt_single_item. HiveSqlListener.prototype.enterAssignment_stmt_single_item = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#assignment_stmt_single_item. +// Exit a parse tree produced by HiveSql#assignment_stmt_single_item. HiveSqlListener.prototype.exitAssignment_stmt_single_item = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#assignment_stmt_multiple_item. +// Enter a parse tree produced by HiveSql#assignment_stmt_multiple_item. HiveSqlListener.prototype.enterAssignment_stmt_multiple_item = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#assignment_stmt_multiple_item. +// Exit a parse tree produced by HiveSql#assignment_stmt_multiple_item. HiveSqlListener.prototype.exitAssignment_stmt_multiple_item = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#assignment_stmt_select_item. +// Enter a parse tree produced by HiveSql#assignment_stmt_select_item. HiveSqlListener.prototype.enterAssignment_stmt_select_item = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#assignment_stmt_select_item. +// Exit a parse tree produced by HiveSql#assignment_stmt_select_item. HiveSqlListener.prototype.exitAssignment_stmt_select_item = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#allocate_cursor_stmt. +// Enter a parse tree produced by HiveSql#allocate_cursor_stmt. HiveSqlListener.prototype.enterAllocate_cursor_stmt = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#allocate_cursor_stmt. +// Exit a parse tree produced by HiveSql#allocate_cursor_stmt. HiveSqlListener.prototype.exitAllocate_cursor_stmt = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#associate_locator_stmt. +// Enter a parse tree produced by HiveSql#associate_locator_stmt. HiveSqlListener.prototype.enterAssociate_locator_stmt = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#associate_locator_stmt. +// Exit a parse tree produced by HiveSql#associate_locator_stmt. HiveSqlListener.prototype.exitAssociate_locator_stmt = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#begin_transaction_stmt. +// Enter a parse tree produced by HiveSql#begin_transaction_stmt. HiveSqlListener.prototype.enterBegin_transaction_stmt = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#begin_transaction_stmt. +// Exit a parse tree produced by HiveSql#begin_transaction_stmt. HiveSqlListener.prototype.exitBegin_transaction_stmt = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#break_stmt. +// Enter a parse tree produced by HiveSql#break_stmt. HiveSqlListener.prototype.enterBreak_stmt = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#break_stmt. +// Exit a parse tree produced by HiveSql#break_stmt. HiveSqlListener.prototype.exitBreak_stmt = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#call_stmt. +// Enter a parse tree produced by HiveSql#call_stmt. HiveSqlListener.prototype.enterCall_stmt = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#call_stmt. +// Exit a parse tree produced by HiveSql#call_stmt. HiveSqlListener.prototype.exitCall_stmt = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#declare_stmt. +// Enter a parse tree produced by HiveSql#declare_stmt. HiveSqlListener.prototype.enterDeclare_stmt = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#declare_stmt. +// Exit a parse tree produced by HiveSql#declare_stmt. HiveSqlListener.prototype.exitDeclare_stmt = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#declare_block. +// Enter a parse tree produced by HiveSql#declare_block. HiveSqlListener.prototype.enterDeclare_block = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#declare_block. +// Exit a parse tree produced by HiveSql#declare_block. HiveSqlListener.prototype.exitDeclare_block = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#declare_block_inplace. +// Enter a parse tree produced by HiveSql#declare_block_inplace. HiveSqlListener.prototype.enterDeclare_block_inplace = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#declare_block_inplace. +// Exit a parse tree produced by HiveSql#declare_block_inplace. HiveSqlListener.prototype.exitDeclare_block_inplace = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#declare_stmt_item. +// Enter a parse tree produced by HiveSql#declare_stmt_item. HiveSqlListener.prototype.enterDeclare_stmt_item = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#declare_stmt_item. +// Exit a parse tree produced by HiveSql#declare_stmt_item. HiveSqlListener.prototype.exitDeclare_stmt_item = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#declare_var_item. +// Enter a parse tree produced by HiveSql#declare_var_item. HiveSqlListener.prototype.enterDeclare_var_item = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#declare_var_item. +// Exit a parse tree produced by HiveSql#declare_var_item. HiveSqlListener.prototype.exitDeclare_var_item = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#declare_condition_item. +// Enter a parse tree produced by HiveSql#declare_condition_item. HiveSqlListener.prototype.enterDeclare_condition_item = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#declare_condition_item. +// Exit a parse tree produced by HiveSql#declare_condition_item. HiveSqlListener.prototype.exitDeclare_condition_item = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#declare_cursor_item. +// Enter a parse tree produced by HiveSql#declare_cursor_item. HiveSqlListener.prototype.enterDeclare_cursor_item = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#declare_cursor_item. +// Exit a parse tree produced by HiveSql#declare_cursor_item. HiveSqlListener.prototype.exitDeclare_cursor_item = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#cursor_with_return. +// Enter a parse tree produced by HiveSql#cursor_with_return. HiveSqlListener.prototype.enterCursor_with_return = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#cursor_with_return. +// Exit a parse tree produced by HiveSql#cursor_with_return. HiveSqlListener.prototype.exitCursor_with_return = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#cursor_without_return. +// Enter a parse tree produced by HiveSql#cursor_without_return. HiveSqlListener.prototype.enterCursor_without_return = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#cursor_without_return. +// Exit a parse tree produced by HiveSql#cursor_without_return. HiveSqlListener.prototype.exitCursor_without_return = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#declare_handler_item. +// Enter a parse tree produced by HiveSql#declare_handler_item. HiveSqlListener.prototype.enterDeclare_handler_item = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#declare_handler_item. +// Exit a parse tree produced by HiveSql#declare_handler_item. HiveSqlListener.prototype.exitDeclare_handler_item = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#declare_temporary_table_item. +// Enter a parse tree produced by HiveSql#declare_temporary_table_item. HiveSqlListener.prototype.enterDeclare_temporary_table_item = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#declare_temporary_table_item. +// Exit a parse tree produced by HiveSql#declare_temporary_table_item. HiveSqlListener.prototype.exitDeclare_temporary_table_item = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#create_table_stmt. +// Enter a parse tree produced by HiveSql#create_table_stmt. HiveSqlListener.prototype.enterCreate_table_stmt = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#create_table_stmt. +// Exit a parse tree produced by HiveSql#create_table_stmt. HiveSqlListener.prototype.exitCreate_table_stmt = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#create_local_temp_table_stmt. +// Enter a parse tree produced by HiveSql#create_local_temp_table_stmt. HiveSqlListener.prototype.enterCreate_local_temp_table_stmt = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#create_local_temp_table_stmt. +// Exit a parse tree produced by HiveSql#create_local_temp_table_stmt. HiveSqlListener.prototype.exitCreate_local_temp_table_stmt = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#create_table_definition. +// Enter a parse tree produced by HiveSql#create_table_definition. HiveSqlListener.prototype.enterCreate_table_definition = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#create_table_definition. +// Exit a parse tree produced by HiveSql#create_table_definition. HiveSqlListener.prototype.exitCreate_table_definition = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#create_table_columns. +// Enter a parse tree produced by HiveSql#create_table_columns. HiveSqlListener.prototype.enterCreate_table_columns = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#create_table_columns. +// Exit a parse tree produced by HiveSql#create_table_columns. HiveSqlListener.prototype.exitCreate_table_columns = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#create_table_columns_item. +// Enter a parse tree produced by HiveSql#create_table_columns_item. HiveSqlListener.prototype.enterCreate_table_columns_item = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#create_table_columns_item. +// Exit a parse tree produced by HiveSql#create_table_columns_item. HiveSqlListener.prototype.exitCreate_table_columns_item = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#column_name. +// Enter a parse tree produced by HiveSql#column_name. HiveSqlListener.prototype.enterColumn_name = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#column_name. +// Exit a parse tree produced by HiveSql#column_name. HiveSqlListener.prototype.exitColumn_name = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#create_table_column_inline_cons. +// Enter a parse tree produced by HiveSql#create_table_column_inline_cons. HiveSqlListener.prototype.enterCreate_table_column_inline_cons = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#create_table_column_inline_cons. +// Exit a parse tree produced by HiveSql#create_table_column_inline_cons. HiveSqlListener.prototype.exitCreate_table_column_inline_cons = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#create_table_column_cons. +// Enter a parse tree produced by HiveSql#create_table_column_cons. HiveSqlListener.prototype.enterCreate_table_column_cons = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#create_table_column_cons. +// Exit a parse tree produced by HiveSql#create_table_column_cons. HiveSqlListener.prototype.exitCreate_table_column_cons = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#create_table_fk_action. +// Enter a parse tree produced by HiveSql#create_table_fk_action. HiveSqlListener.prototype.enterCreate_table_fk_action = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#create_table_fk_action. +// Exit a parse tree produced by HiveSql#create_table_fk_action. HiveSqlListener.prototype.exitCreate_table_fk_action = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#create_table_preoptions. +// Enter a parse tree produced by HiveSql#create_table_preoptions. HiveSqlListener.prototype.enterCreate_table_preoptions = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#create_table_preoptions. +// Exit a parse tree produced by HiveSql#create_table_preoptions. HiveSqlListener.prototype.exitCreate_table_preoptions = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#create_table_preoptions_item. +// Enter a parse tree produced by HiveSql#create_table_preoptions_item. HiveSqlListener.prototype.enterCreate_table_preoptions_item = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#create_table_preoptions_item. +// Exit a parse tree produced by HiveSql#create_table_preoptions_item. HiveSqlListener.prototype.exitCreate_table_preoptions_item = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#create_table_preoptions_td_item. +// Enter a parse tree produced by HiveSql#create_table_preoptions_td_item. HiveSqlListener.prototype.enterCreate_table_preoptions_td_item = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#create_table_preoptions_td_item. +// Exit a parse tree produced by HiveSql#create_table_preoptions_td_item. HiveSqlListener.prototype.exitCreate_table_preoptions_td_item = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#create_table_options. +// Enter a parse tree produced by HiveSql#create_table_options. HiveSqlListener.prototype.enterCreate_table_options = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#create_table_options. +// Exit a parse tree produced by HiveSql#create_table_options. HiveSqlListener.prototype.exitCreate_table_options = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#create_table_options_item. +// Enter a parse tree produced by HiveSql#create_table_options_item. HiveSqlListener.prototype.enterCreate_table_options_item = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#create_table_options_item. +// Exit a parse tree produced by HiveSql#create_table_options_item. HiveSqlListener.prototype.exitCreate_table_options_item = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#create_table_options_ora_item. +// Enter a parse tree produced by HiveSql#create_table_options_ora_item. HiveSqlListener.prototype.enterCreate_table_options_ora_item = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#create_table_options_ora_item. +// Exit a parse tree produced by HiveSql#create_table_options_ora_item. HiveSqlListener.prototype.exitCreate_table_options_ora_item = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#create_table_options_db2_item. +// Enter a parse tree produced by HiveSql#create_table_options_db2_item. HiveSqlListener.prototype.enterCreate_table_options_db2_item = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#create_table_options_db2_item. +// Exit a parse tree produced by HiveSql#create_table_options_db2_item. HiveSqlListener.prototype.exitCreate_table_options_db2_item = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#create_table_options_td_item. +// Enter a parse tree produced by HiveSql#create_table_options_td_item. HiveSqlListener.prototype.enterCreate_table_options_td_item = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#create_table_options_td_item. +// Exit a parse tree produced by HiveSql#create_table_options_td_item. HiveSqlListener.prototype.exitCreate_table_options_td_item = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#create_table_options_hive_item. +// Enter a parse tree produced by HiveSql#create_table_options_hive_item. HiveSqlListener.prototype.enterCreate_table_options_hive_item = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#create_table_options_hive_item. +// Exit a parse tree produced by HiveSql#create_table_options_hive_item. HiveSqlListener.prototype.exitCreate_table_options_hive_item = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#create_table_hive_row_format. +// Enter a parse tree produced by HiveSql#create_table_hive_row_format. HiveSqlListener.prototype.enterCreate_table_hive_row_format = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#create_table_hive_row_format. +// Exit a parse tree produced by HiveSql#create_table_hive_row_format. HiveSqlListener.prototype.exitCreate_table_hive_row_format = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#create_table_hive_row_format_fields. +// Enter a parse tree produced by HiveSql#create_table_hive_row_format_fields. HiveSqlListener.prototype.enterCreate_table_hive_row_format_fields = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#create_table_hive_row_format_fields. +// Exit a parse tree produced by HiveSql#create_table_hive_row_format_fields. HiveSqlListener.prototype.exitCreate_table_hive_row_format_fields = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#create_table_options_mssql_item. +// Enter a parse tree produced by HiveSql#create_table_options_mssql_item. HiveSqlListener.prototype.enterCreate_table_options_mssql_item = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#create_table_options_mssql_item. +// Exit a parse tree produced by HiveSql#create_table_options_mssql_item. HiveSqlListener.prototype.exitCreate_table_options_mssql_item = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#create_table_options_mysql_item. +// Enter a parse tree produced by HiveSql#create_table_options_mysql_item. HiveSqlListener.prototype.enterCreate_table_options_mysql_item = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#create_table_options_mysql_item. +// Exit a parse tree produced by HiveSql#create_table_options_mysql_item. HiveSqlListener.prototype.exitCreate_table_options_mysql_item = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#alter_table_stmt. +// Enter a parse tree produced by HiveSql#alter_table_stmt. HiveSqlListener.prototype.enterAlter_table_stmt = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#alter_table_stmt. +// Exit a parse tree produced by HiveSql#alter_table_stmt. HiveSqlListener.prototype.exitAlter_table_stmt = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#alter_table_item. +// Enter a parse tree produced by HiveSql#alter_table_item. HiveSqlListener.prototype.enterAlter_table_item = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#alter_table_item. +// Exit a parse tree produced by HiveSql#alter_table_item. HiveSqlListener.prototype.exitAlter_table_item = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#alter_table_add_constraint. +// Enter a parse tree produced by HiveSql#alter_table_add_constraint. HiveSqlListener.prototype.enterAlter_table_add_constraint = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#alter_table_add_constraint. +// Exit a parse tree produced by HiveSql#alter_table_add_constraint. HiveSqlListener.prototype.exitAlter_table_add_constraint = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#alter_table_add_constraint_item. +// Enter a parse tree produced by HiveSql#alter_table_add_constraint_item. HiveSqlListener.prototype.enterAlter_table_add_constraint_item = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#alter_table_add_constraint_item. +// Exit a parse tree produced by HiveSql#alter_table_add_constraint_item. HiveSqlListener.prototype.exitAlter_table_add_constraint_item = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#dtype. +// Enter a parse tree produced by HiveSql#dtype. HiveSqlListener.prototype.enterDtype = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#dtype. +// Exit a parse tree produced by HiveSql#dtype. HiveSqlListener.prototype.exitDtype = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#dtype_len. +// Enter a parse tree produced by HiveSql#dtype_len. HiveSqlListener.prototype.enterDtype_len = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#dtype_len. +// Exit a parse tree produced by HiveSql#dtype_len. HiveSqlListener.prototype.exitDtype_len = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#dtype_attr. +// Enter a parse tree produced by HiveSql#dtype_attr. HiveSqlListener.prototype.enterDtype_attr = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#dtype_attr. +// Exit a parse tree produced by HiveSql#dtype_attr. HiveSqlListener.prototype.exitDtype_attr = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#dtype_default. +// Enter a parse tree produced by HiveSql#dtype_default. HiveSqlListener.prototype.enterDtype_default = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#dtype_default. +// Exit a parse tree produced by HiveSql#dtype_default. HiveSqlListener.prototype.exitDtype_default = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#create_database_stmt. +// Enter a parse tree produced by HiveSql#create_database_stmt. HiveSqlListener.prototype.enterCreate_database_stmt = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#create_database_stmt. +// Exit a parse tree produced by HiveSql#create_database_stmt. HiveSqlListener.prototype.exitCreate_database_stmt = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#create_database_option. +// Enter a parse tree produced by HiveSql#create_database_option. HiveSqlListener.prototype.enterCreate_database_option = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#create_database_option. +// Exit a parse tree produced by HiveSql#create_database_option. HiveSqlListener.prototype.exitCreate_database_option = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#create_function_stmt. +// Enter a parse tree produced by HiveSql#create_function_stmt. HiveSqlListener.prototype.enterCreate_function_stmt = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#create_function_stmt. +// Exit a parse tree produced by HiveSql#create_function_stmt. HiveSqlListener.prototype.exitCreate_function_stmt = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#create_function_return. +// Enter a parse tree produced by HiveSql#create_function_return. HiveSqlListener.prototype.enterCreate_function_return = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#create_function_return. +// Exit a parse tree produced by HiveSql#create_function_return. HiveSqlListener.prototype.exitCreate_function_return = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#create_package_stmt. +// Enter a parse tree produced by HiveSql#create_package_stmt. HiveSqlListener.prototype.enterCreate_package_stmt = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#create_package_stmt. +// Exit a parse tree produced by HiveSql#create_package_stmt. HiveSqlListener.prototype.exitCreate_package_stmt = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#package_spec. +// Enter a parse tree produced by HiveSql#package_spec. HiveSqlListener.prototype.enterPackage_spec = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#package_spec. +// Exit a parse tree produced by HiveSql#package_spec. HiveSqlListener.prototype.exitPackage_spec = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#package_spec_item. +// Enter a parse tree produced by HiveSql#package_spec_item. HiveSqlListener.prototype.enterPackage_spec_item = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#package_spec_item. +// Exit a parse tree produced by HiveSql#package_spec_item. HiveSqlListener.prototype.exitPackage_spec_item = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#create_package_body_stmt. +// Enter a parse tree produced by HiveSql#create_package_body_stmt. HiveSqlListener.prototype.enterCreate_package_body_stmt = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#create_package_body_stmt. +// Exit a parse tree produced by HiveSql#create_package_body_stmt. HiveSqlListener.prototype.exitCreate_package_body_stmt = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#package_body. +// Enter a parse tree produced by HiveSql#package_body. HiveSqlListener.prototype.enterPackage_body = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#package_body. +// Exit a parse tree produced by HiveSql#package_body. HiveSqlListener.prototype.exitPackage_body = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#package_body_item. +// Enter a parse tree produced by HiveSql#package_body_item. HiveSqlListener.prototype.enterPackage_body_item = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#package_body_item. +// Exit a parse tree produced by HiveSql#package_body_item. HiveSqlListener.prototype.exitPackage_body_item = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#create_procedure_stmt. +// Enter a parse tree produced by HiveSql#create_procedure_stmt. HiveSqlListener.prototype.enterCreate_procedure_stmt = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#create_procedure_stmt. +// Exit a parse tree produced by HiveSql#create_procedure_stmt. HiveSqlListener.prototype.exitCreate_procedure_stmt = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#create_routine_params. +// Enter a parse tree produced by HiveSql#create_routine_params. HiveSqlListener.prototype.enterCreate_routine_params = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#create_routine_params. +// Exit a parse tree produced by HiveSql#create_routine_params. HiveSqlListener.prototype.exitCreate_routine_params = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#create_routine_param_item. +// Enter a parse tree produced by HiveSql#create_routine_param_item. HiveSqlListener.prototype.enterCreate_routine_param_item = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#create_routine_param_item. +// Exit a parse tree produced by HiveSql#create_routine_param_item. HiveSqlListener.prototype.exitCreate_routine_param_item = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#create_routine_options. +// Enter a parse tree produced by HiveSql#create_routine_options. HiveSqlListener.prototype.enterCreate_routine_options = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#create_routine_options. +// Exit a parse tree produced by HiveSql#create_routine_options. HiveSqlListener.prototype.exitCreate_routine_options = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#create_routine_option. +// Enter a parse tree produced by HiveSql#create_routine_option. HiveSqlListener.prototype.enterCreate_routine_option = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#create_routine_option. +// Exit a parse tree produced by HiveSql#create_routine_option. HiveSqlListener.prototype.exitCreate_routine_option = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#drop_stmt. +// Enter a parse tree produced by HiveSql#drop_stmt. HiveSqlListener.prototype.enterDrop_stmt = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#drop_stmt. +// Exit a parse tree produced by HiveSql#drop_stmt. HiveSqlListener.prototype.exitDrop_stmt = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#end_transaction_stmt. +// Enter a parse tree produced by HiveSql#end_transaction_stmt. HiveSqlListener.prototype.enterEnd_transaction_stmt = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#end_transaction_stmt. +// Exit a parse tree produced by HiveSql#end_transaction_stmt. HiveSqlListener.prototype.exitEnd_transaction_stmt = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#exec_stmt. +// Enter a parse tree produced by HiveSql#exec_stmt. HiveSqlListener.prototype.enterExec_stmt = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#exec_stmt. +// Exit a parse tree produced by HiveSql#exec_stmt. HiveSqlListener.prototype.exitExec_stmt = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#if_stmt. +// Enter a parse tree produced by HiveSql#if_stmt. HiveSqlListener.prototype.enterIf_stmt = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#if_stmt. +// Exit a parse tree produced by HiveSql#if_stmt. HiveSqlListener.prototype.exitIf_stmt = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#if_plsql_stmt. +// Enter a parse tree produced by HiveSql#if_plsql_stmt. HiveSqlListener.prototype.enterIf_plsql_stmt = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#if_plsql_stmt. +// Exit a parse tree produced by HiveSql#if_plsql_stmt. HiveSqlListener.prototype.exitIf_plsql_stmt = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#if_tsql_stmt. +// Enter a parse tree produced by HiveSql#if_tsql_stmt. HiveSqlListener.prototype.enterIf_tsql_stmt = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#if_tsql_stmt. +// Exit a parse tree produced by HiveSql#if_tsql_stmt. HiveSqlListener.prototype.exitIf_tsql_stmt = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#if_bteq_stmt. +// Enter a parse tree produced by HiveSql#if_bteq_stmt. HiveSqlListener.prototype.enterIf_bteq_stmt = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#if_bteq_stmt. +// Exit a parse tree produced by HiveSql#if_bteq_stmt. HiveSqlListener.prototype.exitIf_bteq_stmt = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#elseif_block. +// Enter a parse tree produced by HiveSql#elseif_block. HiveSqlListener.prototype.enterElseif_block = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#elseif_block. +// Exit a parse tree produced by HiveSql#elseif_block. HiveSqlListener.prototype.exitElseif_block = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#else_block. +// Enter a parse tree produced by HiveSql#else_block. HiveSqlListener.prototype.enterElse_block = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#else_block. +// Exit a parse tree produced by HiveSql#else_block. HiveSqlListener.prototype.exitElse_block = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#include_stmt. +// Enter a parse tree produced by HiveSql#include_stmt. HiveSqlListener.prototype.enterInclude_stmt = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#include_stmt. +// Exit a parse tree produced by HiveSql#include_stmt. HiveSqlListener.prototype.exitInclude_stmt = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#insert_stmt. +// Enter a parse tree produced by HiveSql#insert_stmt. HiveSqlListener.prototype.enterInsert_stmt = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#insert_stmt. +// Exit a parse tree produced by HiveSql#insert_stmt. HiveSqlListener.prototype.exitInsert_stmt = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#insert_stmt_cols. +// Enter a parse tree produced by HiveSql#insert_stmt_cols. HiveSqlListener.prototype.enterInsert_stmt_cols = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#insert_stmt_cols. +// Exit a parse tree produced by HiveSql#insert_stmt_cols. HiveSqlListener.prototype.exitInsert_stmt_cols = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#insert_stmt_rows. +// Enter a parse tree produced by HiveSql#insert_stmt_rows. HiveSqlListener.prototype.enterInsert_stmt_rows = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#insert_stmt_rows. +// Exit a parse tree produced by HiveSql#insert_stmt_rows. HiveSqlListener.prototype.exitInsert_stmt_rows = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#insert_stmt_row. +// Enter a parse tree produced by HiveSql#insert_stmt_row. HiveSqlListener.prototype.enterInsert_stmt_row = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#insert_stmt_row. +// Exit a parse tree produced by HiveSql#insert_stmt_row. HiveSqlListener.prototype.exitInsert_stmt_row = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#insert_directory_stmt. +// Enter a parse tree produced by HiveSql#insert_directory_stmt. HiveSqlListener.prototype.enterInsert_directory_stmt = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#insert_directory_stmt. +// Exit a parse tree produced by HiveSql#insert_directory_stmt. HiveSqlListener.prototype.exitInsert_directory_stmt = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#exit_stmt. +// Enter a parse tree produced by HiveSql#exit_stmt. HiveSqlListener.prototype.enterExit_stmt = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#exit_stmt. +// Exit a parse tree produced by HiveSql#exit_stmt. HiveSqlListener.prototype.exitExit_stmt = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#get_diag_stmt. +// Enter a parse tree produced by HiveSql#get_diag_stmt. HiveSqlListener.prototype.enterGet_diag_stmt = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#get_diag_stmt. +// Exit a parse tree produced by HiveSql#get_diag_stmt. HiveSqlListener.prototype.exitGet_diag_stmt = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#get_diag_stmt_item. +// Enter a parse tree produced by HiveSql#get_diag_stmt_item. HiveSqlListener.prototype.enterGet_diag_stmt_item = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#get_diag_stmt_item. +// Exit a parse tree produced by HiveSql#get_diag_stmt_item. HiveSqlListener.prototype.exitGet_diag_stmt_item = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#get_diag_stmt_exception_item. +// Enter a parse tree produced by HiveSql#get_diag_stmt_exception_item. HiveSqlListener.prototype.enterGet_diag_stmt_exception_item = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#get_diag_stmt_exception_item. +// Exit a parse tree produced by HiveSql#get_diag_stmt_exception_item. HiveSqlListener.prototype.exitGet_diag_stmt_exception_item = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#get_diag_stmt_rowcount_item. +// Enter a parse tree produced by HiveSql#get_diag_stmt_rowcount_item. HiveSqlListener.prototype.enterGet_diag_stmt_rowcount_item = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#get_diag_stmt_rowcount_item. +// Exit a parse tree produced by HiveSql#get_diag_stmt_rowcount_item. HiveSqlListener.prototype.exitGet_diag_stmt_rowcount_item = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#grant_stmt. +// Enter a parse tree produced by HiveSql#grant_stmt. HiveSqlListener.prototype.enterGrant_stmt = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#grant_stmt. +// Exit a parse tree produced by HiveSql#grant_stmt. HiveSqlListener.prototype.exitGrant_stmt = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#grant_stmt_item. +// Enter a parse tree produced by HiveSql#grant_stmt_item. HiveSqlListener.prototype.enterGrant_stmt_item = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#grant_stmt_item. +// Exit a parse tree produced by HiveSql#grant_stmt_item. HiveSqlListener.prototype.exitGrant_stmt_item = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#leave_stmt. +// Enter a parse tree produced by HiveSql#leave_stmt. HiveSqlListener.prototype.enterLeave_stmt = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#leave_stmt. +// Exit a parse tree produced by HiveSql#leave_stmt. HiveSqlListener.prototype.exitLeave_stmt = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#map_object_stmt. +// Enter a parse tree produced by HiveSql#map_object_stmt. HiveSqlListener.prototype.enterMap_object_stmt = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#map_object_stmt. +// Exit a parse tree produced by HiveSql#map_object_stmt. HiveSqlListener.prototype.exitMap_object_stmt = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#open_stmt. +// Enter a parse tree produced by HiveSql#open_stmt. HiveSqlListener.prototype.enterOpen_stmt = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#open_stmt. +// Exit a parse tree produced by HiveSql#open_stmt. HiveSqlListener.prototype.exitOpen_stmt = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#fetch_stmt. +// Enter a parse tree produced by HiveSql#fetch_stmt. HiveSqlListener.prototype.enterFetch_stmt = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#fetch_stmt. +// Exit a parse tree produced by HiveSql#fetch_stmt. HiveSqlListener.prototype.exitFetch_stmt = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#collect_stats_stmt. +// Enter a parse tree produced by HiveSql#collect_stats_stmt. HiveSqlListener.prototype.enterCollect_stats_stmt = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#collect_stats_stmt. +// Exit a parse tree produced by HiveSql#collect_stats_stmt. HiveSqlListener.prototype.exitCollect_stats_stmt = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#collect_stats_clause. +// Enter a parse tree produced by HiveSql#collect_stats_clause. HiveSqlListener.prototype.enterCollect_stats_clause = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#collect_stats_clause. +// Exit a parse tree produced by HiveSql#collect_stats_clause. HiveSqlListener.prototype.exitCollect_stats_clause = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#close_stmt. +// Enter a parse tree produced by HiveSql#close_stmt. HiveSqlListener.prototype.enterClose_stmt = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#close_stmt. +// Exit a parse tree produced by HiveSql#close_stmt. HiveSqlListener.prototype.exitClose_stmt = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#cmp_stmt. +// Enter a parse tree produced by HiveSql#cmp_stmt. HiveSqlListener.prototype.enterCmp_stmt = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#cmp_stmt. +// Exit a parse tree produced by HiveSql#cmp_stmt. HiveSqlListener.prototype.exitCmp_stmt = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#cmp_source. +// Enter a parse tree produced by HiveSql#cmp_source. HiveSqlListener.prototype.enterCmp_source = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#cmp_source. +// Exit a parse tree produced by HiveSql#cmp_source. HiveSqlListener.prototype.exitCmp_source = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#copy_from_local_stmt. +// Enter a parse tree produced by HiveSql#copy_from_local_stmt. HiveSqlListener.prototype.enterCopy_from_local_stmt = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#copy_from_local_stmt. +// Exit a parse tree produced by HiveSql#copy_from_local_stmt. HiveSqlListener.prototype.exitCopy_from_local_stmt = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#copy_stmt. +// Enter a parse tree produced by HiveSql#copy_stmt. HiveSqlListener.prototype.enterCopy_stmt = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#copy_stmt. +// Exit a parse tree produced by HiveSql#copy_stmt. HiveSqlListener.prototype.exitCopy_stmt = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#copy_source. +// Enter a parse tree produced by HiveSql#copy_source. HiveSqlListener.prototype.enterCopy_source = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#copy_source. +// Exit a parse tree produced by HiveSql#copy_source. HiveSqlListener.prototype.exitCopy_source = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#copy_target. +// Enter a parse tree produced by HiveSql#copy_target. HiveSqlListener.prototype.enterCopy_target = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#copy_target. +// Exit a parse tree produced by HiveSql#copy_target. HiveSqlListener.prototype.exitCopy_target = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#copy_option. +// Enter a parse tree produced by HiveSql#copy_option. HiveSqlListener.prototype.enterCopy_option = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#copy_option. +// Exit a parse tree produced by HiveSql#copy_option. HiveSqlListener.prototype.exitCopy_option = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#copy_file_option. +// Enter a parse tree produced by HiveSql#copy_file_option. HiveSqlListener.prototype.enterCopy_file_option = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#copy_file_option. +// Exit a parse tree produced by HiveSql#copy_file_option. HiveSqlListener.prototype.exitCopy_file_option = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#commit_stmt. +// Enter a parse tree produced by HiveSql#commit_stmt. HiveSqlListener.prototype.enterCommit_stmt = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#commit_stmt. +// Exit a parse tree produced by HiveSql#commit_stmt. HiveSqlListener.prototype.exitCommit_stmt = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#create_index_stmt. +// Enter a parse tree produced by HiveSql#create_index_stmt. HiveSqlListener.prototype.enterCreate_index_stmt = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#create_index_stmt. +// Exit a parse tree produced by HiveSql#create_index_stmt. HiveSqlListener.prototype.exitCreate_index_stmt = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#create_index_col. +// Enter a parse tree produced by HiveSql#create_index_col. HiveSqlListener.prototype.enterCreate_index_col = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#create_index_col. +// Exit a parse tree produced by HiveSql#create_index_col. HiveSqlListener.prototype.exitCreate_index_col = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#index_storage_clause. +// Enter a parse tree produced by HiveSql#index_storage_clause. HiveSqlListener.prototype.enterIndex_storage_clause = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#index_storage_clause. +// Exit a parse tree produced by HiveSql#index_storage_clause. HiveSqlListener.prototype.exitIndex_storage_clause = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#index_mssql_storage_clause. +// Enter a parse tree produced by HiveSql#index_mssql_storage_clause. HiveSqlListener.prototype.enterIndex_mssql_storage_clause = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#index_mssql_storage_clause. +// Exit a parse tree produced by HiveSql#index_mssql_storage_clause. HiveSqlListener.prototype.exitIndex_mssql_storage_clause = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#print_stmt. +// Enter a parse tree produced by HiveSql#print_stmt. HiveSqlListener.prototype.enterPrint_stmt = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#print_stmt. +// Exit a parse tree produced by HiveSql#print_stmt. HiveSqlListener.prototype.exitPrint_stmt = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#quit_stmt. +// Enter a parse tree produced by HiveSql#quit_stmt. HiveSqlListener.prototype.enterQuit_stmt = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#quit_stmt. +// Exit a parse tree produced by HiveSql#quit_stmt. HiveSqlListener.prototype.exitQuit_stmt = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#raise_stmt. +// Enter a parse tree produced by HiveSql#raise_stmt. HiveSqlListener.prototype.enterRaise_stmt = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#raise_stmt. +// Exit a parse tree produced by HiveSql#raise_stmt. HiveSqlListener.prototype.exitRaise_stmt = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#resignal_stmt. +// Enter a parse tree produced by HiveSql#resignal_stmt. HiveSqlListener.prototype.enterResignal_stmt = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#resignal_stmt. +// Exit a parse tree produced by HiveSql#resignal_stmt. HiveSqlListener.prototype.exitResignal_stmt = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#return_stmt. +// Enter a parse tree produced by HiveSql#return_stmt. HiveSqlListener.prototype.enterReturn_stmt = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#return_stmt. +// Exit a parse tree produced by HiveSql#return_stmt. HiveSqlListener.prototype.exitReturn_stmt = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#rollback_stmt. +// Enter a parse tree produced by HiveSql#rollback_stmt. HiveSqlListener.prototype.enterRollback_stmt = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#rollback_stmt. +// Exit a parse tree produced by HiveSql#rollback_stmt. HiveSqlListener.prototype.exitRollback_stmt = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#set_session_option. +// Enter a parse tree produced by HiveSql#set_session_option. HiveSqlListener.prototype.enterSet_session_option = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#set_session_option. +// Exit a parse tree produced by HiveSql#set_session_option. HiveSqlListener.prototype.exitSet_session_option = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#set_current_schema_option. +// Enter a parse tree produced by HiveSql#set_current_schema_option. HiveSqlListener.prototype.enterSet_current_schema_option = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#set_current_schema_option. +// Exit a parse tree produced by HiveSql#set_current_schema_option. HiveSqlListener.prototype.exitSet_current_schema_option = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#set_mssql_session_option. +// Enter a parse tree produced by HiveSql#set_mssql_session_option. HiveSqlListener.prototype.enterSet_mssql_session_option = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#set_mssql_session_option. +// Exit a parse tree produced by HiveSql#set_mssql_session_option. HiveSqlListener.prototype.exitSet_mssql_session_option = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#set_teradata_session_option. +// Enter a parse tree produced by HiveSql#set_teradata_session_option. HiveSqlListener.prototype.enterSet_teradata_session_option = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#set_teradata_session_option. +// Exit a parse tree produced by HiveSql#set_teradata_session_option. HiveSqlListener.prototype.exitSet_teradata_session_option = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#signal_stmt. +// Enter a parse tree produced by HiveSql#signal_stmt. HiveSqlListener.prototype.enterSignal_stmt = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#signal_stmt. +// Exit a parse tree produced by HiveSql#signal_stmt. HiveSqlListener.prototype.exitSignal_stmt = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#summary_stmt. +// Enter a parse tree produced by HiveSql#summary_stmt. HiveSqlListener.prototype.enterSummary_stmt = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#summary_stmt. +// Exit a parse tree produced by HiveSql#summary_stmt. HiveSqlListener.prototype.exitSummary_stmt = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#truncate_stmt. +// Enter a parse tree produced by HiveSql#truncate_stmt. HiveSqlListener.prototype.enterTruncate_stmt = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#truncate_stmt. +// Exit a parse tree produced by HiveSql#truncate_stmt. HiveSqlListener.prototype.exitTruncate_stmt = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#use_stmt. +// Enter a parse tree produced by HiveSql#use_stmt. HiveSqlListener.prototype.enterUse_stmt = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#use_stmt. +// Exit a parse tree produced by HiveSql#use_stmt. HiveSqlListener.prototype.exitUse_stmt = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#values_into_stmt. +// Enter a parse tree produced by HiveSql#values_into_stmt. HiveSqlListener.prototype.enterValues_into_stmt = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#values_into_stmt. +// Exit a parse tree produced by HiveSql#values_into_stmt. HiveSqlListener.prototype.exitValues_into_stmt = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#while_stmt. +// Enter a parse tree produced by HiveSql#while_stmt. HiveSqlListener.prototype.enterWhile_stmt = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#while_stmt. +// Exit a parse tree produced by HiveSql#while_stmt. HiveSqlListener.prototype.exitWhile_stmt = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#for_cursor_stmt. +// Enter a parse tree produced by HiveSql#for_cursor_stmt. HiveSqlListener.prototype.enterFor_cursor_stmt = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#for_cursor_stmt. +// Exit a parse tree produced by HiveSql#for_cursor_stmt. HiveSqlListener.prototype.exitFor_cursor_stmt = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#for_range_stmt. +// Enter a parse tree produced by HiveSql#for_range_stmt. HiveSqlListener.prototype.enterFor_range_stmt = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#for_range_stmt. +// Exit a parse tree produced by HiveSql#for_range_stmt. HiveSqlListener.prototype.exitFor_range_stmt = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#label. +// Enter a parse tree produced by HiveSql#label. HiveSqlListener.prototype.enterLabel = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#label. +// Exit a parse tree produced by HiveSql#label. HiveSqlListener.prototype.exitLabel = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#using_clause. +// Enter a parse tree produced by HiveSql#using_clause. HiveSqlListener.prototype.enterUsing_clause = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#using_clause. +// Exit a parse tree produced by HiveSql#using_clause. HiveSqlListener.prototype.exitUsing_clause = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#select_stmt. +// Enter a parse tree produced by HiveSql#select_stmt. HiveSqlListener.prototype.enterSelect_stmt = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#select_stmt. +// Exit a parse tree produced by HiveSql#select_stmt. HiveSqlListener.prototype.exitSelect_stmt = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#cte_select_stmt. +// Enter a parse tree produced by HiveSql#cte_select_stmt. HiveSqlListener.prototype.enterCte_select_stmt = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#cte_select_stmt. +// Exit a parse tree produced by HiveSql#cte_select_stmt. HiveSqlListener.prototype.exitCte_select_stmt = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#cte_select_stmt_item. +// Enter a parse tree produced by HiveSql#cte_select_stmt_item. HiveSqlListener.prototype.enterCte_select_stmt_item = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#cte_select_stmt_item. +// Exit a parse tree produced by HiveSql#cte_select_stmt_item. HiveSqlListener.prototype.exitCte_select_stmt_item = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#cte_select_cols. +// Enter a parse tree produced by HiveSql#cte_select_cols. HiveSqlListener.prototype.enterCte_select_cols = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#cte_select_cols. +// Exit a parse tree produced by HiveSql#cte_select_cols. HiveSqlListener.prototype.exitCte_select_cols = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#fullselect_stmt. +// Enter a parse tree produced by HiveSql#fullselect_stmt. HiveSqlListener.prototype.enterFullselect_stmt = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#fullselect_stmt. +// Exit a parse tree produced by HiveSql#fullselect_stmt. HiveSqlListener.prototype.exitFullselect_stmt = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#fullselect_stmt_item. +// Enter a parse tree produced by HiveSql#fullselect_stmt_item. HiveSqlListener.prototype.enterFullselect_stmt_item = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#fullselect_stmt_item. +// Exit a parse tree produced by HiveSql#fullselect_stmt_item. HiveSqlListener.prototype.exitFullselect_stmt_item = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#fullselect_set_clause. +// Enter a parse tree produced by HiveSql#fullselect_set_clause. HiveSqlListener.prototype.enterFullselect_set_clause = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#fullselect_set_clause. +// Exit a parse tree produced by HiveSql#fullselect_set_clause. HiveSqlListener.prototype.exitFullselect_set_clause = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#subselect_stmt. +// Enter a parse tree produced by HiveSql#subselect_stmt. HiveSqlListener.prototype.enterSubselect_stmt = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#subselect_stmt. +// Exit a parse tree produced by HiveSql#subselect_stmt. HiveSqlListener.prototype.exitSubselect_stmt = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#select_list. +// Enter a parse tree produced by HiveSql#select_list. HiveSqlListener.prototype.enterSelect_list = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#select_list. +// Exit a parse tree produced by HiveSql#select_list. HiveSqlListener.prototype.exitSelect_list = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#select_list_set. +// Enter a parse tree produced by HiveSql#select_list_set. HiveSqlListener.prototype.enterSelect_list_set = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#select_list_set. +// Exit a parse tree produced by HiveSql#select_list_set. HiveSqlListener.prototype.exitSelect_list_set = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#select_list_limit. +// Enter a parse tree produced by HiveSql#select_list_limit. HiveSqlListener.prototype.enterSelect_list_limit = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#select_list_limit. +// Exit a parse tree produced by HiveSql#select_list_limit. HiveSqlListener.prototype.exitSelect_list_limit = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#select_list_item. +// Enter a parse tree produced by HiveSql#select_list_item. HiveSqlListener.prototype.enterSelect_list_item = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#select_list_item. +// Exit a parse tree produced by HiveSql#select_list_item. HiveSqlListener.prototype.exitSelect_list_item = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#select_list_alias. +// Enter a parse tree produced by HiveSql#select_list_alias. HiveSqlListener.prototype.enterSelect_list_alias = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#select_list_alias. +// Exit a parse tree produced by HiveSql#select_list_alias. HiveSqlListener.prototype.exitSelect_list_alias = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#select_list_asterisk. +// Enter a parse tree produced by HiveSql#select_list_asterisk. HiveSqlListener.prototype.enterSelect_list_asterisk = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#select_list_asterisk. +// Exit a parse tree produced by HiveSql#select_list_asterisk. HiveSqlListener.prototype.exitSelect_list_asterisk = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#into_clause. +// Enter a parse tree produced by HiveSql#into_clause. HiveSqlListener.prototype.enterInto_clause = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#into_clause. +// Exit a parse tree produced by HiveSql#into_clause. HiveSqlListener.prototype.exitInto_clause = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#from_clause. +// Enter a parse tree produced by HiveSql#from_clause. HiveSqlListener.prototype.enterFrom_clause = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#from_clause. +// Exit a parse tree produced by HiveSql#from_clause. HiveSqlListener.prototype.exitFrom_clause = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#from_table_clause. +// Enter a parse tree produced by HiveSql#from_table_clause. HiveSqlListener.prototype.enterFrom_table_clause = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#from_table_clause. +// Exit a parse tree produced by HiveSql#from_table_clause. HiveSqlListener.prototype.exitFrom_table_clause = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#from_table_name_clause. +// Enter a parse tree produced by HiveSql#from_table_name_clause. HiveSqlListener.prototype.enterFrom_table_name_clause = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#from_table_name_clause. +// Exit a parse tree produced by HiveSql#from_table_name_clause. HiveSqlListener.prototype.exitFrom_table_name_clause = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#from_subselect_clause. +// Enter a parse tree produced by HiveSql#from_subselect_clause. HiveSqlListener.prototype.enterFrom_subselect_clause = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#from_subselect_clause. +// Exit a parse tree produced by HiveSql#from_subselect_clause. HiveSqlListener.prototype.exitFrom_subselect_clause = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#from_join_clause. +// Enter a parse tree produced by HiveSql#from_join_clause. HiveSqlListener.prototype.enterFrom_join_clause = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#from_join_clause. +// Exit a parse tree produced by HiveSql#from_join_clause. HiveSqlListener.prototype.exitFrom_join_clause = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#from_join_type_clause. +// Enter a parse tree produced by HiveSql#from_join_type_clause. HiveSqlListener.prototype.enterFrom_join_type_clause = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#from_join_type_clause. +// Exit a parse tree produced by HiveSql#from_join_type_clause. HiveSqlListener.prototype.exitFrom_join_type_clause = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#from_table_values_clause. +// Enter a parse tree produced by HiveSql#from_table_values_clause. HiveSqlListener.prototype.enterFrom_table_values_clause = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#from_table_values_clause. +// Exit a parse tree produced by HiveSql#from_table_values_clause. HiveSqlListener.prototype.exitFrom_table_values_clause = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#from_table_values_row. +// Enter a parse tree produced by HiveSql#from_table_values_row. HiveSqlListener.prototype.enterFrom_table_values_row = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#from_table_values_row. +// Exit a parse tree produced by HiveSql#from_table_values_row. HiveSqlListener.prototype.exitFrom_table_values_row = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#from_alias_clause. +// Enter a parse tree produced by HiveSql#from_alias_clause. HiveSqlListener.prototype.enterFrom_alias_clause = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#from_alias_clause. +// Exit a parse tree produced by HiveSql#from_alias_clause. HiveSqlListener.prototype.exitFrom_alias_clause = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#table_name. +// Enter a parse tree produced by HiveSql#table_name. HiveSqlListener.prototype.enterTable_name = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#table_name. +// Exit a parse tree produced by HiveSql#table_name. HiveSqlListener.prototype.exitTable_name = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#where_clause. +// Enter a parse tree produced by HiveSql#where_clause. HiveSqlListener.prototype.enterWhere_clause = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#where_clause. +// Exit a parse tree produced by HiveSql#where_clause. HiveSqlListener.prototype.exitWhere_clause = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#group_by_clause. +// Enter a parse tree produced by HiveSql#group_by_clause. HiveSqlListener.prototype.enterGroup_by_clause = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#group_by_clause. +// Exit a parse tree produced by HiveSql#group_by_clause. HiveSqlListener.prototype.exitGroup_by_clause = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#having_clause. +// Enter a parse tree produced by HiveSql#having_clause. HiveSqlListener.prototype.enterHaving_clause = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#having_clause. +// Exit a parse tree produced by HiveSql#having_clause. HiveSqlListener.prototype.exitHaving_clause = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#qualify_clause. +// Enter a parse tree produced by HiveSql#qualify_clause. HiveSqlListener.prototype.enterQualify_clause = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#qualify_clause. +// Exit a parse tree produced by HiveSql#qualify_clause. HiveSqlListener.prototype.exitQualify_clause = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#order_by_clause. +// Enter a parse tree produced by HiveSql#order_by_clause. HiveSqlListener.prototype.enterOrder_by_clause = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#order_by_clause. +// Exit a parse tree produced by HiveSql#order_by_clause. HiveSqlListener.prototype.exitOrder_by_clause = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#select_options. +// Enter a parse tree produced by HiveSql#select_options. HiveSqlListener.prototype.enterSelect_options = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#select_options. +// Exit a parse tree produced by HiveSql#select_options. HiveSqlListener.prototype.exitSelect_options = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#select_options_item. +// Enter a parse tree produced by HiveSql#select_options_item. HiveSqlListener.prototype.enterSelect_options_item = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#select_options_item. +// Exit a parse tree produced by HiveSql#select_options_item. HiveSqlListener.prototype.exitSelect_options_item = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#update_stmt. +// Enter a parse tree produced by HiveSql#update_stmt. HiveSqlListener.prototype.enterUpdate_stmt = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#update_stmt. +// Exit a parse tree produced by HiveSql#update_stmt. HiveSqlListener.prototype.exitUpdate_stmt = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#update_assignment. +// Enter a parse tree produced by HiveSql#update_assignment. HiveSqlListener.prototype.enterUpdate_assignment = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#update_assignment. +// Exit a parse tree produced by HiveSql#update_assignment. HiveSqlListener.prototype.exitUpdate_assignment = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#update_table. +// Enter a parse tree produced by HiveSql#update_table. HiveSqlListener.prototype.enterUpdate_table = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#update_table. +// Exit a parse tree produced by HiveSql#update_table. HiveSqlListener.prototype.exitUpdate_table = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#update_upsert. +// Enter a parse tree produced by HiveSql#update_upsert. HiveSqlListener.prototype.enterUpdate_upsert = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#update_upsert. +// Exit a parse tree produced by HiveSql#update_upsert. HiveSqlListener.prototype.exitUpdate_upsert = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#merge_stmt. +// Enter a parse tree produced by HiveSql#merge_stmt. HiveSqlListener.prototype.enterMerge_stmt = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#merge_stmt. +// Exit a parse tree produced by HiveSql#merge_stmt. HiveSqlListener.prototype.exitMerge_stmt = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#merge_table. +// Enter a parse tree produced by HiveSql#merge_table. HiveSqlListener.prototype.enterMerge_table = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#merge_table. +// Exit a parse tree produced by HiveSql#merge_table. HiveSqlListener.prototype.exitMerge_table = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#merge_condition. +// Enter a parse tree produced by HiveSql#merge_condition. HiveSqlListener.prototype.enterMerge_condition = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#merge_condition. +// Exit a parse tree produced by HiveSql#merge_condition. HiveSqlListener.prototype.exitMerge_condition = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#merge_action. +// Enter a parse tree produced by HiveSql#merge_action. HiveSqlListener.prototype.enterMerge_action = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#merge_action. +// Exit a parse tree produced by HiveSql#merge_action. HiveSqlListener.prototype.exitMerge_action = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#delete_stmt. +// Enter a parse tree produced by HiveSql#delete_stmt. HiveSqlListener.prototype.enterDelete_stmt = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#delete_stmt. +// Exit a parse tree produced by HiveSql#delete_stmt. HiveSqlListener.prototype.exitDelete_stmt = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#delete_alias. +// Enter a parse tree produced by HiveSql#delete_alias. HiveSqlListener.prototype.enterDelete_alias = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#delete_alias. +// Exit a parse tree produced by HiveSql#delete_alias. HiveSqlListener.prototype.exitDelete_alias = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#describe_stmt. +// Enter a parse tree produced by HiveSql#describe_stmt. HiveSqlListener.prototype.enterDescribe_stmt = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#describe_stmt. +// Exit a parse tree produced by HiveSql#describe_stmt. HiveSqlListener.prototype.exitDescribe_stmt = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#bool_expr. +// Enter a parse tree produced by HiveSql#bool_expr. HiveSqlListener.prototype.enterBool_expr = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#bool_expr. +// Exit a parse tree produced by HiveSql#bool_expr. HiveSqlListener.prototype.exitBool_expr = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#bool_expr_atom. +// Enter a parse tree produced by HiveSql#bool_expr_atom. HiveSqlListener.prototype.enterBool_expr_atom = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#bool_expr_atom. +// Exit a parse tree produced by HiveSql#bool_expr_atom. HiveSqlListener.prototype.exitBool_expr_atom = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#bool_expr_unary. +// Enter a parse tree produced by HiveSql#bool_expr_unary. HiveSqlListener.prototype.enterBool_expr_unary = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#bool_expr_unary. +// Exit a parse tree produced by HiveSql#bool_expr_unary. HiveSqlListener.prototype.exitBool_expr_unary = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#bool_expr_single_in. +// Enter a parse tree produced by HiveSql#bool_expr_single_in. HiveSqlListener.prototype.enterBool_expr_single_in = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#bool_expr_single_in. +// Exit a parse tree produced by HiveSql#bool_expr_single_in. HiveSqlListener.prototype.exitBool_expr_single_in = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#bool_expr_multi_in. +// Enter a parse tree produced by HiveSql#bool_expr_multi_in. HiveSqlListener.prototype.enterBool_expr_multi_in = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#bool_expr_multi_in. +// Exit a parse tree produced by HiveSql#bool_expr_multi_in. HiveSqlListener.prototype.exitBool_expr_multi_in = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#bool_expr_binary. +// Enter a parse tree produced by HiveSql#bool_expr_binary. HiveSqlListener.prototype.enterBool_expr_binary = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#bool_expr_binary. +// Exit a parse tree produced by HiveSql#bool_expr_binary. HiveSqlListener.prototype.exitBool_expr_binary = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#bool_expr_logical_operator. +// Enter a parse tree produced by HiveSql#bool_expr_logical_operator. HiveSqlListener.prototype.enterBool_expr_logical_operator = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#bool_expr_logical_operator. +// Exit a parse tree produced by HiveSql#bool_expr_logical_operator. HiveSqlListener.prototype.exitBool_expr_logical_operator = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#bool_expr_binary_operator. +// Enter a parse tree produced by HiveSql#bool_expr_binary_operator. HiveSqlListener.prototype.enterBool_expr_binary_operator = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#bool_expr_binary_operator. +// Exit a parse tree produced by HiveSql#bool_expr_binary_operator. HiveSqlListener.prototype.exitBool_expr_binary_operator = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#expr. +// Enter a parse tree produced by HiveSql#expr. HiveSqlListener.prototype.enterExpr = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#expr. +// Exit a parse tree produced by HiveSql#expr. HiveSqlListener.prototype.exitExpr = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#expr_atom. +// Enter a parse tree produced by HiveSql#expr_atom. HiveSqlListener.prototype.enterExpr_atom = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#expr_atom. +// Exit a parse tree produced by HiveSql#expr_atom. HiveSqlListener.prototype.exitExpr_atom = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#expr_interval. +// Enter a parse tree produced by HiveSql#expr_interval. HiveSqlListener.prototype.enterExpr_interval = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#expr_interval. +// Exit a parse tree produced by HiveSql#expr_interval. HiveSqlListener.prototype.exitExpr_interval = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#interval_item. +// Enter a parse tree produced by HiveSql#interval_item. HiveSqlListener.prototype.enterInterval_item = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#interval_item. +// Exit a parse tree produced by HiveSql#interval_item. HiveSqlListener.prototype.exitInterval_item = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#expr_concat. +// Enter a parse tree produced by HiveSql#expr_concat. HiveSqlListener.prototype.enterExpr_concat = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#expr_concat. +// Exit a parse tree produced by HiveSql#expr_concat. HiveSqlListener.prototype.exitExpr_concat = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#expr_concat_item. +// Enter a parse tree produced by HiveSql#expr_concat_item. HiveSqlListener.prototype.enterExpr_concat_item = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#expr_concat_item. +// Exit a parse tree produced by HiveSql#expr_concat_item. HiveSqlListener.prototype.exitExpr_concat_item = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#expr_case. +// Enter a parse tree produced by HiveSql#expr_case. HiveSqlListener.prototype.enterExpr_case = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#expr_case. +// Exit a parse tree produced by HiveSql#expr_case. HiveSqlListener.prototype.exitExpr_case = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#expr_case_simple. +// Enter a parse tree produced by HiveSql#expr_case_simple. HiveSqlListener.prototype.enterExpr_case_simple = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#expr_case_simple. +// Exit a parse tree produced by HiveSql#expr_case_simple. HiveSqlListener.prototype.exitExpr_case_simple = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#expr_case_searched. +// Enter a parse tree produced by HiveSql#expr_case_searched. HiveSqlListener.prototype.enterExpr_case_searched = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#expr_case_searched. +// Exit a parse tree produced by HiveSql#expr_case_searched. HiveSqlListener.prototype.exitExpr_case_searched = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#expr_cursor_attribute. +// Enter a parse tree produced by HiveSql#expr_cursor_attribute. HiveSqlListener.prototype.enterExpr_cursor_attribute = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#expr_cursor_attribute. +// Exit a parse tree produced by HiveSql#expr_cursor_attribute. HiveSqlListener.prototype.exitExpr_cursor_attribute = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#expr_agg_window_func. +// Enter a parse tree produced by HiveSql#expr_agg_window_func. HiveSqlListener.prototype.enterExpr_agg_window_func = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#expr_agg_window_func. +// Exit a parse tree produced by HiveSql#expr_agg_window_func. HiveSqlListener.prototype.exitExpr_agg_window_func = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#expr_func_all_distinct. +// Enter a parse tree produced by HiveSql#expr_func_all_distinct. HiveSqlListener.prototype.enterExpr_func_all_distinct = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#expr_func_all_distinct. +// Exit a parse tree produced by HiveSql#expr_func_all_distinct. HiveSqlListener.prototype.exitExpr_func_all_distinct = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#expr_func_over_clause. +// Enter a parse tree produced by HiveSql#expr_func_over_clause. HiveSqlListener.prototype.enterExpr_func_over_clause = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#expr_func_over_clause. +// Exit a parse tree produced by HiveSql#expr_func_over_clause. HiveSqlListener.prototype.exitExpr_func_over_clause = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#expr_func_partition_by_clause. +// Enter a parse tree produced by HiveSql#expr_func_partition_by_clause. HiveSqlListener.prototype.enterExpr_func_partition_by_clause = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#expr_func_partition_by_clause. +// Exit a parse tree produced by HiveSql#expr_func_partition_by_clause. HiveSqlListener.prototype.exitExpr_func_partition_by_clause = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#expr_spec_func. +// Enter a parse tree produced by HiveSql#expr_spec_func. HiveSqlListener.prototype.enterExpr_spec_func = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#expr_spec_func. +// Exit a parse tree produced by HiveSql#expr_spec_func. HiveSqlListener.prototype.exitExpr_spec_func = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#expr_func. +// Enter a parse tree produced by HiveSql#expr_func. HiveSqlListener.prototype.enterExpr_func = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#expr_func. +// Exit a parse tree produced by HiveSql#expr_func. HiveSqlListener.prototype.exitExpr_func = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#expr_func_params. +// Enter a parse tree produced by HiveSql#expr_func_params. HiveSqlListener.prototype.enterExpr_func_params = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#expr_func_params. +// Exit a parse tree produced by HiveSql#expr_func_params. HiveSqlListener.prototype.exitExpr_func_params = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#func_param. +// Enter a parse tree produced by HiveSql#func_param. HiveSqlListener.prototype.enterFunc_param = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#func_param. +// Exit a parse tree produced by HiveSql#func_param. HiveSqlListener.prototype.exitFunc_param = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#expr_select. +// Enter a parse tree produced by HiveSql#expr_select. HiveSqlListener.prototype.enterExpr_select = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#expr_select. +// Exit a parse tree produced by HiveSql#expr_select. HiveSqlListener.prototype.exitExpr_select = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#expr_file. +// Enter a parse tree produced by HiveSql#expr_file. HiveSqlListener.prototype.enterExpr_file = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#expr_file. +// Exit a parse tree produced by HiveSql#expr_file. HiveSqlListener.prototype.exitExpr_file = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#hive. +// Enter a parse tree produced by HiveSql#hive. HiveSqlListener.prototype.enterHive = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#hive. +// Exit a parse tree produced by HiveSql#hive. HiveSqlListener.prototype.exitHive = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#hive_item. +// Enter a parse tree produced by HiveSql#hive_item. HiveSqlListener.prototype.enterHive_item = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#hive_item. +// Exit a parse tree produced by HiveSql#hive_item. HiveSqlListener.prototype.exitHive_item = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#host. +// Enter a parse tree produced by HiveSql#host. HiveSqlListener.prototype.enterHost = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#host. +// Exit a parse tree produced by HiveSql#host. HiveSqlListener.prototype.exitHost = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#host_cmd. +// Enter a parse tree produced by HiveSql#host_cmd. HiveSqlListener.prototype.enterHost_cmd = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#host_cmd. +// Exit a parse tree produced by HiveSql#host_cmd. HiveSqlListener.prototype.exitHost_cmd = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#host_stmt. +// Enter a parse tree produced by HiveSql#host_stmt. HiveSqlListener.prototype.enterHost_stmt = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#host_stmt. +// Exit a parse tree produced by HiveSql#host_stmt. HiveSqlListener.prototype.exitHost_stmt = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#file_name. +// Enter a parse tree produced by HiveSql#file_name. HiveSqlListener.prototype.enterFile_name = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#file_name. +// Exit a parse tree produced by HiveSql#file_name. HiveSqlListener.prototype.exitFile_name = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#date_literal. +// Enter a parse tree produced by HiveSql#date_literal. HiveSqlListener.prototype.enterDate_literal = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#date_literal. +// Exit a parse tree produced by HiveSql#date_literal. HiveSqlListener.prototype.exitDate_literal = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#timestamp_literal. +// Enter a parse tree produced by HiveSql#timestamp_literal. HiveSqlListener.prototype.enterTimestamp_literal = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#timestamp_literal. +// Exit a parse tree produced by HiveSql#timestamp_literal. HiveSqlListener.prototype.exitTimestamp_literal = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#ident. +// Enter a parse tree produced by HiveSql#ident. HiveSqlListener.prototype.enterIdent = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#ident. +// Exit a parse tree produced by HiveSql#ident. HiveSqlListener.prototype.exitIdent = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#single_quotedString. +// Enter a parse tree produced by HiveSql#single_quotedString. HiveSqlListener.prototype.enterSingle_quotedString = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#single_quotedString. +// Exit a parse tree produced by HiveSql#single_quotedString. HiveSqlListener.prototype.exitSingle_quotedString = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#double_quotedString. +// Enter a parse tree produced by HiveSql#double_quotedString. HiveSqlListener.prototype.enterDouble_quotedString = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#double_quotedString. +// Exit a parse tree produced by HiveSql#double_quotedString. HiveSqlListener.prototype.exitDouble_quotedString = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#int_number. +// Enter a parse tree produced by HiveSql#int_number. HiveSqlListener.prototype.enterInt_number = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#int_number. +// Exit a parse tree produced by HiveSql#int_number. HiveSqlListener.prototype.exitInt_number = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#dec_number. +// Enter a parse tree produced by HiveSql#dec_number. HiveSqlListener.prototype.enterDec_number = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#dec_number. +// Exit a parse tree produced by HiveSql#dec_number. HiveSqlListener.prototype.exitDec_number = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#bool_literal. +// Enter a parse tree produced by HiveSql#bool_literal. HiveSqlListener.prototype.enterBool_literal = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#bool_literal. +// Exit a parse tree produced by HiveSql#bool_literal. HiveSqlListener.prototype.exitBool_literal = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#null_const. +// Enter a parse tree produced by HiveSql#null_const. HiveSqlListener.prototype.enterNull_const = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#null_const. +// Exit a parse tree produced by HiveSql#null_const. HiveSqlListener.prototype.exitNull_const = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#non_reserved_words. +// Enter a parse tree produced by HiveSql#non_reserved_words. HiveSqlListener.prototype.enterNon_reserved_words = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#non_reserved_words. +// Exit a parse tree produced by HiveSql#non_reserved_words. HiveSqlListener.prototype.exitNon_reserved_words = function(ctx) { }; diff --git a/src/lib/hive/HiveSqlVisitor.js b/src/lib/hive/HiveSqlVisitor.js index 442334a..bd1c2c8 100644 --- a/src/lib/hive/HiveSqlVisitor.js +++ b/src/lib/hive/HiveSqlVisitor.js @@ -1,8 +1,8 @@ -// Generated from /Users/ziv/Workspace/dt-sql-parser/src/grammar/hive/HiveSql.g4 by ANTLR 4.8 +// Generated from /Users/libowen/Desktop/Code/gitlab.prod.dtstack.cn/dt-insight-front/infrastructure/dt-sql-parser/src/grammar/hive/HiveSql.g4 by ANTLR 4.8 // jshint ignore: start var antlr4 = require('antlr4/index'); -// This class defines a complete generic visitor for a parse tree produced by HiveSqlParser. +// This class defines a complete generic visitor for a parse tree produced by HiveSql. function HiveSqlVisitor() { antlr4.tree.ParseTreeVisitor.call(this); @@ -12,1363 +12,1363 @@ function HiveSqlVisitor() { HiveSqlVisitor.prototype = Object.create(antlr4.tree.ParseTreeVisitor.prototype); HiveSqlVisitor.prototype.constructor = HiveSqlVisitor; -// Visit a parse tree produced by HiveSqlParser#program. +// Visit a parse tree produced by HiveSql#program. HiveSqlVisitor.prototype.visitProgram = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#block. +// Visit a parse tree produced by HiveSql#block. HiveSqlVisitor.prototype.visitBlock = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#begin_end_block. +// Visit a parse tree produced by HiveSql#begin_end_block. HiveSqlVisitor.prototype.visitBegin_end_block = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#single_block_stmt. +// Visit a parse tree produced by HiveSql#single_block_stmt. HiveSqlVisitor.prototype.visitSingle_block_stmt = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#block_end. +// Visit a parse tree produced by HiveSql#block_end. HiveSqlVisitor.prototype.visitBlock_end = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#proc_block. +// Visit a parse tree produced by HiveSql#proc_block. HiveSqlVisitor.prototype.visitProc_block = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#stmt. +// Visit a parse tree produced by HiveSql#stmt. HiveSqlVisitor.prototype.visitStmt = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#semicolon_stmt. +// Visit a parse tree produced by HiveSql#semicolon_stmt. HiveSqlVisitor.prototype.visitSemicolon_stmt = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#exception_block. +// Visit a parse tree produced by HiveSql#exception_block. HiveSqlVisitor.prototype.visitException_block = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#exception_block_item. +// Visit a parse tree produced by HiveSql#exception_block_item. HiveSqlVisitor.prototype.visitException_block_item = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#null_stmt. +// Visit a parse tree produced by HiveSql#null_stmt. HiveSqlVisitor.prototype.visitNull_stmt = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#expr_stmt. +// Visit a parse tree produced by HiveSql#expr_stmt. HiveSqlVisitor.prototype.visitExpr_stmt = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#assignment_stmt. +// Visit a parse tree produced by HiveSql#assignment_stmt. HiveSqlVisitor.prototype.visitAssignment_stmt = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#assignment_stmt_item. +// Visit a parse tree produced by HiveSql#assignment_stmt_item. HiveSqlVisitor.prototype.visitAssignment_stmt_item = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#assignment_stmt_single_item. +// Visit a parse tree produced by HiveSql#assignment_stmt_single_item. HiveSqlVisitor.prototype.visitAssignment_stmt_single_item = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#assignment_stmt_multiple_item. +// Visit a parse tree produced by HiveSql#assignment_stmt_multiple_item. HiveSqlVisitor.prototype.visitAssignment_stmt_multiple_item = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#assignment_stmt_select_item. +// Visit a parse tree produced by HiveSql#assignment_stmt_select_item. HiveSqlVisitor.prototype.visitAssignment_stmt_select_item = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#allocate_cursor_stmt. +// Visit a parse tree produced by HiveSql#allocate_cursor_stmt. HiveSqlVisitor.prototype.visitAllocate_cursor_stmt = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#associate_locator_stmt. +// Visit a parse tree produced by HiveSql#associate_locator_stmt. HiveSqlVisitor.prototype.visitAssociate_locator_stmt = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#begin_transaction_stmt. +// Visit a parse tree produced by HiveSql#begin_transaction_stmt. HiveSqlVisitor.prototype.visitBegin_transaction_stmt = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#break_stmt. +// Visit a parse tree produced by HiveSql#break_stmt. HiveSqlVisitor.prototype.visitBreak_stmt = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#call_stmt. +// Visit a parse tree produced by HiveSql#call_stmt. HiveSqlVisitor.prototype.visitCall_stmt = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#declare_stmt. +// Visit a parse tree produced by HiveSql#declare_stmt. HiveSqlVisitor.prototype.visitDeclare_stmt = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#declare_block. +// Visit a parse tree produced by HiveSql#declare_block. HiveSqlVisitor.prototype.visitDeclare_block = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#declare_block_inplace. +// Visit a parse tree produced by HiveSql#declare_block_inplace. HiveSqlVisitor.prototype.visitDeclare_block_inplace = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#declare_stmt_item. +// Visit a parse tree produced by HiveSql#declare_stmt_item. HiveSqlVisitor.prototype.visitDeclare_stmt_item = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#declare_var_item. +// Visit a parse tree produced by HiveSql#declare_var_item. HiveSqlVisitor.prototype.visitDeclare_var_item = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#declare_condition_item. +// Visit a parse tree produced by HiveSql#declare_condition_item. HiveSqlVisitor.prototype.visitDeclare_condition_item = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#declare_cursor_item. +// Visit a parse tree produced by HiveSql#declare_cursor_item. HiveSqlVisitor.prototype.visitDeclare_cursor_item = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#cursor_with_return. +// Visit a parse tree produced by HiveSql#cursor_with_return. HiveSqlVisitor.prototype.visitCursor_with_return = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#cursor_without_return. +// Visit a parse tree produced by HiveSql#cursor_without_return. HiveSqlVisitor.prototype.visitCursor_without_return = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#declare_handler_item. +// Visit a parse tree produced by HiveSql#declare_handler_item. HiveSqlVisitor.prototype.visitDeclare_handler_item = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#declare_temporary_table_item. +// Visit a parse tree produced by HiveSql#declare_temporary_table_item. HiveSqlVisitor.prototype.visitDeclare_temporary_table_item = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#create_table_stmt. +// Visit a parse tree produced by HiveSql#create_table_stmt. HiveSqlVisitor.prototype.visitCreate_table_stmt = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#create_local_temp_table_stmt. +// Visit a parse tree produced by HiveSql#create_local_temp_table_stmt. HiveSqlVisitor.prototype.visitCreate_local_temp_table_stmt = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#create_table_definition. +// Visit a parse tree produced by HiveSql#create_table_definition. HiveSqlVisitor.prototype.visitCreate_table_definition = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#create_table_columns. +// Visit a parse tree produced by HiveSql#create_table_columns. HiveSqlVisitor.prototype.visitCreate_table_columns = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#create_table_columns_item. +// Visit a parse tree produced by HiveSql#create_table_columns_item. HiveSqlVisitor.prototype.visitCreate_table_columns_item = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#column_name. +// Visit a parse tree produced by HiveSql#column_name. HiveSqlVisitor.prototype.visitColumn_name = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#create_table_column_inline_cons. +// Visit a parse tree produced by HiveSql#create_table_column_inline_cons. HiveSqlVisitor.prototype.visitCreate_table_column_inline_cons = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#create_table_column_cons. +// Visit a parse tree produced by HiveSql#create_table_column_cons. HiveSqlVisitor.prototype.visitCreate_table_column_cons = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#create_table_fk_action. +// Visit a parse tree produced by HiveSql#create_table_fk_action. HiveSqlVisitor.prototype.visitCreate_table_fk_action = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#create_table_preoptions. +// Visit a parse tree produced by HiveSql#create_table_preoptions. HiveSqlVisitor.prototype.visitCreate_table_preoptions = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#create_table_preoptions_item. +// Visit a parse tree produced by HiveSql#create_table_preoptions_item. HiveSqlVisitor.prototype.visitCreate_table_preoptions_item = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#create_table_preoptions_td_item. +// Visit a parse tree produced by HiveSql#create_table_preoptions_td_item. HiveSqlVisitor.prototype.visitCreate_table_preoptions_td_item = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#create_table_options. +// Visit a parse tree produced by HiveSql#create_table_options. HiveSqlVisitor.prototype.visitCreate_table_options = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#create_table_options_item. +// Visit a parse tree produced by HiveSql#create_table_options_item. HiveSqlVisitor.prototype.visitCreate_table_options_item = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#create_table_options_ora_item. +// Visit a parse tree produced by HiveSql#create_table_options_ora_item. HiveSqlVisitor.prototype.visitCreate_table_options_ora_item = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#create_table_options_db2_item. +// Visit a parse tree produced by HiveSql#create_table_options_db2_item. HiveSqlVisitor.prototype.visitCreate_table_options_db2_item = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#create_table_options_td_item. +// Visit a parse tree produced by HiveSql#create_table_options_td_item. HiveSqlVisitor.prototype.visitCreate_table_options_td_item = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#create_table_options_hive_item. +// Visit a parse tree produced by HiveSql#create_table_options_hive_item. HiveSqlVisitor.prototype.visitCreate_table_options_hive_item = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#create_table_hive_row_format. +// Visit a parse tree produced by HiveSql#create_table_hive_row_format. HiveSqlVisitor.prototype.visitCreate_table_hive_row_format = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#create_table_hive_row_format_fields. +// Visit a parse tree produced by HiveSql#create_table_hive_row_format_fields. HiveSqlVisitor.prototype.visitCreate_table_hive_row_format_fields = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#create_table_options_mssql_item. +// Visit a parse tree produced by HiveSql#create_table_options_mssql_item. HiveSqlVisitor.prototype.visitCreate_table_options_mssql_item = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#create_table_options_mysql_item. +// Visit a parse tree produced by HiveSql#create_table_options_mysql_item. HiveSqlVisitor.prototype.visitCreate_table_options_mysql_item = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#alter_table_stmt. +// Visit a parse tree produced by HiveSql#alter_table_stmt. HiveSqlVisitor.prototype.visitAlter_table_stmt = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#alter_table_item. +// Visit a parse tree produced by HiveSql#alter_table_item. HiveSqlVisitor.prototype.visitAlter_table_item = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#alter_table_add_constraint. +// Visit a parse tree produced by HiveSql#alter_table_add_constraint. HiveSqlVisitor.prototype.visitAlter_table_add_constraint = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#alter_table_add_constraint_item. +// Visit a parse tree produced by HiveSql#alter_table_add_constraint_item. HiveSqlVisitor.prototype.visitAlter_table_add_constraint_item = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#dtype. +// Visit a parse tree produced by HiveSql#dtype. HiveSqlVisitor.prototype.visitDtype = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#dtype_len. +// Visit a parse tree produced by HiveSql#dtype_len. HiveSqlVisitor.prototype.visitDtype_len = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#dtype_attr. +// Visit a parse tree produced by HiveSql#dtype_attr. HiveSqlVisitor.prototype.visitDtype_attr = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#dtype_default. +// Visit a parse tree produced by HiveSql#dtype_default. HiveSqlVisitor.prototype.visitDtype_default = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#create_database_stmt. +// Visit a parse tree produced by HiveSql#create_database_stmt. HiveSqlVisitor.prototype.visitCreate_database_stmt = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#create_database_option. +// Visit a parse tree produced by HiveSql#create_database_option. HiveSqlVisitor.prototype.visitCreate_database_option = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#create_function_stmt. +// Visit a parse tree produced by HiveSql#create_function_stmt. HiveSqlVisitor.prototype.visitCreate_function_stmt = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#create_function_return. +// Visit a parse tree produced by HiveSql#create_function_return. HiveSqlVisitor.prototype.visitCreate_function_return = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#create_package_stmt. +// Visit a parse tree produced by HiveSql#create_package_stmt. HiveSqlVisitor.prototype.visitCreate_package_stmt = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#package_spec. +// Visit a parse tree produced by HiveSql#package_spec. HiveSqlVisitor.prototype.visitPackage_spec = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#package_spec_item. +// Visit a parse tree produced by HiveSql#package_spec_item. HiveSqlVisitor.prototype.visitPackage_spec_item = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#create_package_body_stmt. +// Visit a parse tree produced by HiveSql#create_package_body_stmt. HiveSqlVisitor.prototype.visitCreate_package_body_stmt = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#package_body. +// Visit a parse tree produced by HiveSql#package_body. HiveSqlVisitor.prototype.visitPackage_body = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#package_body_item. +// Visit a parse tree produced by HiveSql#package_body_item. HiveSqlVisitor.prototype.visitPackage_body_item = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#create_procedure_stmt. +// Visit a parse tree produced by HiveSql#create_procedure_stmt. HiveSqlVisitor.prototype.visitCreate_procedure_stmt = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#create_routine_params. +// Visit a parse tree produced by HiveSql#create_routine_params. HiveSqlVisitor.prototype.visitCreate_routine_params = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#create_routine_param_item. +// Visit a parse tree produced by HiveSql#create_routine_param_item. HiveSqlVisitor.prototype.visitCreate_routine_param_item = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#create_routine_options. +// Visit a parse tree produced by HiveSql#create_routine_options. HiveSqlVisitor.prototype.visitCreate_routine_options = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#create_routine_option. +// Visit a parse tree produced by HiveSql#create_routine_option. HiveSqlVisitor.prototype.visitCreate_routine_option = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#drop_stmt. +// Visit a parse tree produced by HiveSql#drop_stmt. HiveSqlVisitor.prototype.visitDrop_stmt = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#end_transaction_stmt. +// Visit a parse tree produced by HiveSql#end_transaction_stmt. HiveSqlVisitor.prototype.visitEnd_transaction_stmt = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#exec_stmt. +// Visit a parse tree produced by HiveSql#exec_stmt. HiveSqlVisitor.prototype.visitExec_stmt = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#if_stmt. +// Visit a parse tree produced by HiveSql#if_stmt. HiveSqlVisitor.prototype.visitIf_stmt = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#if_plsql_stmt. +// Visit a parse tree produced by HiveSql#if_plsql_stmt. HiveSqlVisitor.prototype.visitIf_plsql_stmt = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#if_tsql_stmt. +// Visit a parse tree produced by HiveSql#if_tsql_stmt. HiveSqlVisitor.prototype.visitIf_tsql_stmt = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#if_bteq_stmt. +// Visit a parse tree produced by HiveSql#if_bteq_stmt. HiveSqlVisitor.prototype.visitIf_bteq_stmt = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#elseif_block. +// Visit a parse tree produced by HiveSql#elseif_block. HiveSqlVisitor.prototype.visitElseif_block = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#else_block. +// Visit a parse tree produced by HiveSql#else_block. HiveSqlVisitor.prototype.visitElse_block = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#include_stmt. +// Visit a parse tree produced by HiveSql#include_stmt. HiveSqlVisitor.prototype.visitInclude_stmt = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#insert_stmt. +// Visit a parse tree produced by HiveSql#insert_stmt. HiveSqlVisitor.prototype.visitInsert_stmt = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#insert_stmt_cols. +// Visit a parse tree produced by HiveSql#insert_stmt_cols. HiveSqlVisitor.prototype.visitInsert_stmt_cols = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#insert_stmt_rows. +// Visit a parse tree produced by HiveSql#insert_stmt_rows. HiveSqlVisitor.prototype.visitInsert_stmt_rows = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#insert_stmt_row. +// Visit a parse tree produced by HiveSql#insert_stmt_row. HiveSqlVisitor.prototype.visitInsert_stmt_row = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#insert_directory_stmt. +// Visit a parse tree produced by HiveSql#insert_directory_stmt. HiveSqlVisitor.prototype.visitInsert_directory_stmt = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#exit_stmt. +// Visit a parse tree produced by HiveSql#exit_stmt. HiveSqlVisitor.prototype.visitExit_stmt = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#get_diag_stmt. +// Visit a parse tree produced by HiveSql#get_diag_stmt. HiveSqlVisitor.prototype.visitGet_diag_stmt = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#get_diag_stmt_item. +// Visit a parse tree produced by HiveSql#get_diag_stmt_item. HiveSqlVisitor.prototype.visitGet_diag_stmt_item = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#get_diag_stmt_exception_item. +// Visit a parse tree produced by HiveSql#get_diag_stmt_exception_item. HiveSqlVisitor.prototype.visitGet_diag_stmt_exception_item = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#get_diag_stmt_rowcount_item. +// Visit a parse tree produced by HiveSql#get_diag_stmt_rowcount_item. HiveSqlVisitor.prototype.visitGet_diag_stmt_rowcount_item = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#grant_stmt. +// Visit a parse tree produced by HiveSql#grant_stmt. HiveSqlVisitor.prototype.visitGrant_stmt = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#grant_stmt_item. +// Visit a parse tree produced by HiveSql#grant_stmt_item. HiveSqlVisitor.prototype.visitGrant_stmt_item = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#leave_stmt. +// Visit a parse tree produced by HiveSql#leave_stmt. HiveSqlVisitor.prototype.visitLeave_stmt = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#map_object_stmt. +// Visit a parse tree produced by HiveSql#map_object_stmt. HiveSqlVisitor.prototype.visitMap_object_stmt = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#open_stmt. +// Visit a parse tree produced by HiveSql#open_stmt. HiveSqlVisitor.prototype.visitOpen_stmt = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#fetch_stmt. +// Visit a parse tree produced by HiveSql#fetch_stmt. HiveSqlVisitor.prototype.visitFetch_stmt = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#collect_stats_stmt. +// Visit a parse tree produced by HiveSql#collect_stats_stmt. HiveSqlVisitor.prototype.visitCollect_stats_stmt = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#collect_stats_clause. +// Visit a parse tree produced by HiveSql#collect_stats_clause. HiveSqlVisitor.prototype.visitCollect_stats_clause = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#close_stmt. +// Visit a parse tree produced by HiveSql#close_stmt. HiveSqlVisitor.prototype.visitClose_stmt = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#cmp_stmt. +// Visit a parse tree produced by HiveSql#cmp_stmt. HiveSqlVisitor.prototype.visitCmp_stmt = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#cmp_source. +// Visit a parse tree produced by HiveSql#cmp_source. HiveSqlVisitor.prototype.visitCmp_source = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#copy_from_local_stmt. +// Visit a parse tree produced by HiveSql#copy_from_local_stmt. HiveSqlVisitor.prototype.visitCopy_from_local_stmt = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#copy_stmt. +// Visit a parse tree produced by HiveSql#copy_stmt. HiveSqlVisitor.prototype.visitCopy_stmt = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#copy_source. +// Visit a parse tree produced by HiveSql#copy_source. HiveSqlVisitor.prototype.visitCopy_source = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#copy_target. +// Visit a parse tree produced by HiveSql#copy_target. HiveSqlVisitor.prototype.visitCopy_target = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#copy_option. +// Visit a parse tree produced by HiveSql#copy_option. HiveSqlVisitor.prototype.visitCopy_option = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#copy_file_option. +// Visit a parse tree produced by HiveSql#copy_file_option. HiveSqlVisitor.prototype.visitCopy_file_option = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#commit_stmt. +// Visit a parse tree produced by HiveSql#commit_stmt. HiveSqlVisitor.prototype.visitCommit_stmt = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#create_index_stmt. +// Visit a parse tree produced by HiveSql#create_index_stmt. HiveSqlVisitor.prototype.visitCreate_index_stmt = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#create_index_col. +// Visit a parse tree produced by HiveSql#create_index_col. HiveSqlVisitor.prototype.visitCreate_index_col = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#index_storage_clause. +// Visit a parse tree produced by HiveSql#index_storage_clause. HiveSqlVisitor.prototype.visitIndex_storage_clause = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#index_mssql_storage_clause. +// Visit a parse tree produced by HiveSql#index_mssql_storage_clause. HiveSqlVisitor.prototype.visitIndex_mssql_storage_clause = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#print_stmt. +// Visit a parse tree produced by HiveSql#print_stmt. HiveSqlVisitor.prototype.visitPrint_stmt = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#quit_stmt. +// Visit a parse tree produced by HiveSql#quit_stmt. HiveSqlVisitor.prototype.visitQuit_stmt = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#raise_stmt. +// Visit a parse tree produced by HiveSql#raise_stmt. HiveSqlVisitor.prototype.visitRaise_stmt = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#resignal_stmt. +// Visit a parse tree produced by HiveSql#resignal_stmt. HiveSqlVisitor.prototype.visitResignal_stmt = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#return_stmt. +// Visit a parse tree produced by HiveSql#return_stmt. HiveSqlVisitor.prototype.visitReturn_stmt = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#rollback_stmt. +// Visit a parse tree produced by HiveSql#rollback_stmt. HiveSqlVisitor.prototype.visitRollback_stmt = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#set_session_option. +// Visit a parse tree produced by HiveSql#set_session_option. HiveSqlVisitor.prototype.visitSet_session_option = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#set_current_schema_option. +// Visit a parse tree produced by HiveSql#set_current_schema_option. HiveSqlVisitor.prototype.visitSet_current_schema_option = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#set_mssql_session_option. +// Visit a parse tree produced by HiveSql#set_mssql_session_option. HiveSqlVisitor.prototype.visitSet_mssql_session_option = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#set_teradata_session_option. +// Visit a parse tree produced by HiveSql#set_teradata_session_option. HiveSqlVisitor.prototype.visitSet_teradata_session_option = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#signal_stmt. +// Visit a parse tree produced by HiveSql#signal_stmt. HiveSqlVisitor.prototype.visitSignal_stmt = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#summary_stmt. +// Visit a parse tree produced by HiveSql#summary_stmt. HiveSqlVisitor.prototype.visitSummary_stmt = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#truncate_stmt. +// Visit a parse tree produced by HiveSql#truncate_stmt. HiveSqlVisitor.prototype.visitTruncate_stmt = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#use_stmt. +// Visit a parse tree produced by HiveSql#use_stmt. HiveSqlVisitor.prototype.visitUse_stmt = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#values_into_stmt. +// Visit a parse tree produced by HiveSql#values_into_stmt. HiveSqlVisitor.prototype.visitValues_into_stmt = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#while_stmt. +// Visit a parse tree produced by HiveSql#while_stmt. HiveSqlVisitor.prototype.visitWhile_stmt = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#for_cursor_stmt. +// Visit a parse tree produced by HiveSql#for_cursor_stmt. HiveSqlVisitor.prototype.visitFor_cursor_stmt = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#for_range_stmt. +// Visit a parse tree produced by HiveSql#for_range_stmt. HiveSqlVisitor.prototype.visitFor_range_stmt = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#label. +// Visit a parse tree produced by HiveSql#label. HiveSqlVisitor.prototype.visitLabel = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#using_clause. +// Visit a parse tree produced by HiveSql#using_clause. HiveSqlVisitor.prototype.visitUsing_clause = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#select_stmt. +// Visit a parse tree produced by HiveSql#select_stmt. HiveSqlVisitor.prototype.visitSelect_stmt = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#cte_select_stmt. +// Visit a parse tree produced by HiveSql#cte_select_stmt. HiveSqlVisitor.prototype.visitCte_select_stmt = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#cte_select_stmt_item. +// Visit a parse tree produced by HiveSql#cte_select_stmt_item. HiveSqlVisitor.prototype.visitCte_select_stmt_item = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#cte_select_cols. +// Visit a parse tree produced by HiveSql#cte_select_cols. HiveSqlVisitor.prototype.visitCte_select_cols = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#fullselect_stmt. +// Visit a parse tree produced by HiveSql#fullselect_stmt. HiveSqlVisitor.prototype.visitFullselect_stmt = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#fullselect_stmt_item. +// Visit a parse tree produced by HiveSql#fullselect_stmt_item. HiveSqlVisitor.prototype.visitFullselect_stmt_item = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#fullselect_set_clause. +// Visit a parse tree produced by HiveSql#fullselect_set_clause. HiveSqlVisitor.prototype.visitFullselect_set_clause = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#subselect_stmt. +// Visit a parse tree produced by HiveSql#subselect_stmt. HiveSqlVisitor.prototype.visitSubselect_stmt = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#select_list. +// Visit a parse tree produced by HiveSql#select_list. HiveSqlVisitor.prototype.visitSelect_list = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#select_list_set. +// Visit a parse tree produced by HiveSql#select_list_set. HiveSqlVisitor.prototype.visitSelect_list_set = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#select_list_limit. +// Visit a parse tree produced by HiveSql#select_list_limit. HiveSqlVisitor.prototype.visitSelect_list_limit = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#select_list_item. +// Visit a parse tree produced by HiveSql#select_list_item. HiveSqlVisitor.prototype.visitSelect_list_item = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#select_list_alias. +// Visit a parse tree produced by HiveSql#select_list_alias. HiveSqlVisitor.prototype.visitSelect_list_alias = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#select_list_asterisk. +// Visit a parse tree produced by HiveSql#select_list_asterisk. HiveSqlVisitor.prototype.visitSelect_list_asterisk = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#into_clause. +// Visit a parse tree produced by HiveSql#into_clause. HiveSqlVisitor.prototype.visitInto_clause = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#from_clause. +// Visit a parse tree produced by HiveSql#from_clause. HiveSqlVisitor.prototype.visitFrom_clause = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#from_table_clause. +// Visit a parse tree produced by HiveSql#from_table_clause. HiveSqlVisitor.prototype.visitFrom_table_clause = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#from_table_name_clause. +// Visit a parse tree produced by HiveSql#from_table_name_clause. HiveSqlVisitor.prototype.visitFrom_table_name_clause = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#from_subselect_clause. +// Visit a parse tree produced by HiveSql#from_subselect_clause. HiveSqlVisitor.prototype.visitFrom_subselect_clause = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#from_join_clause. +// Visit a parse tree produced by HiveSql#from_join_clause. HiveSqlVisitor.prototype.visitFrom_join_clause = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#from_join_type_clause. +// Visit a parse tree produced by HiveSql#from_join_type_clause. HiveSqlVisitor.prototype.visitFrom_join_type_clause = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#from_table_values_clause. +// Visit a parse tree produced by HiveSql#from_table_values_clause. HiveSqlVisitor.prototype.visitFrom_table_values_clause = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#from_table_values_row. +// Visit a parse tree produced by HiveSql#from_table_values_row. HiveSqlVisitor.prototype.visitFrom_table_values_row = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#from_alias_clause. +// Visit a parse tree produced by HiveSql#from_alias_clause. HiveSqlVisitor.prototype.visitFrom_alias_clause = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#table_name. +// Visit a parse tree produced by HiveSql#table_name. HiveSqlVisitor.prototype.visitTable_name = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#where_clause. +// Visit a parse tree produced by HiveSql#where_clause. HiveSqlVisitor.prototype.visitWhere_clause = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#group_by_clause. +// Visit a parse tree produced by HiveSql#group_by_clause. HiveSqlVisitor.prototype.visitGroup_by_clause = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#having_clause. +// Visit a parse tree produced by HiveSql#having_clause. HiveSqlVisitor.prototype.visitHaving_clause = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#qualify_clause. +// Visit a parse tree produced by HiveSql#qualify_clause. HiveSqlVisitor.prototype.visitQualify_clause = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#order_by_clause. +// Visit a parse tree produced by HiveSql#order_by_clause. HiveSqlVisitor.prototype.visitOrder_by_clause = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#select_options. +// Visit a parse tree produced by HiveSql#select_options. HiveSqlVisitor.prototype.visitSelect_options = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#select_options_item. +// Visit a parse tree produced by HiveSql#select_options_item. HiveSqlVisitor.prototype.visitSelect_options_item = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#update_stmt. +// Visit a parse tree produced by HiveSql#update_stmt. HiveSqlVisitor.prototype.visitUpdate_stmt = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#update_assignment. +// Visit a parse tree produced by HiveSql#update_assignment. HiveSqlVisitor.prototype.visitUpdate_assignment = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#update_table. +// Visit a parse tree produced by HiveSql#update_table. HiveSqlVisitor.prototype.visitUpdate_table = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#update_upsert. +// Visit a parse tree produced by HiveSql#update_upsert. HiveSqlVisitor.prototype.visitUpdate_upsert = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#merge_stmt. +// Visit a parse tree produced by HiveSql#merge_stmt. HiveSqlVisitor.prototype.visitMerge_stmt = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#merge_table. +// Visit a parse tree produced by HiveSql#merge_table. HiveSqlVisitor.prototype.visitMerge_table = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#merge_condition. +// Visit a parse tree produced by HiveSql#merge_condition. HiveSqlVisitor.prototype.visitMerge_condition = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#merge_action. +// Visit a parse tree produced by HiveSql#merge_action. HiveSqlVisitor.prototype.visitMerge_action = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#delete_stmt. +// Visit a parse tree produced by HiveSql#delete_stmt. HiveSqlVisitor.prototype.visitDelete_stmt = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#delete_alias. +// Visit a parse tree produced by HiveSql#delete_alias. HiveSqlVisitor.prototype.visitDelete_alias = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#describe_stmt. +// Visit a parse tree produced by HiveSql#describe_stmt. HiveSqlVisitor.prototype.visitDescribe_stmt = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#bool_expr. +// Visit a parse tree produced by HiveSql#bool_expr. HiveSqlVisitor.prototype.visitBool_expr = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#bool_expr_atom. +// Visit a parse tree produced by HiveSql#bool_expr_atom. HiveSqlVisitor.prototype.visitBool_expr_atom = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#bool_expr_unary. +// Visit a parse tree produced by HiveSql#bool_expr_unary. HiveSqlVisitor.prototype.visitBool_expr_unary = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#bool_expr_single_in. +// Visit a parse tree produced by HiveSql#bool_expr_single_in. HiveSqlVisitor.prototype.visitBool_expr_single_in = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#bool_expr_multi_in. +// Visit a parse tree produced by HiveSql#bool_expr_multi_in. HiveSqlVisitor.prototype.visitBool_expr_multi_in = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#bool_expr_binary. +// Visit a parse tree produced by HiveSql#bool_expr_binary. HiveSqlVisitor.prototype.visitBool_expr_binary = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#bool_expr_logical_operator. +// Visit a parse tree produced by HiveSql#bool_expr_logical_operator. HiveSqlVisitor.prototype.visitBool_expr_logical_operator = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#bool_expr_binary_operator. +// Visit a parse tree produced by HiveSql#bool_expr_binary_operator. HiveSqlVisitor.prototype.visitBool_expr_binary_operator = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#expr. +// Visit a parse tree produced by HiveSql#expr. HiveSqlVisitor.prototype.visitExpr = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#expr_atom. +// Visit a parse tree produced by HiveSql#expr_atom. HiveSqlVisitor.prototype.visitExpr_atom = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#expr_interval. +// Visit a parse tree produced by HiveSql#expr_interval. HiveSqlVisitor.prototype.visitExpr_interval = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#interval_item. +// Visit a parse tree produced by HiveSql#interval_item. HiveSqlVisitor.prototype.visitInterval_item = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#expr_concat. +// Visit a parse tree produced by HiveSql#expr_concat. HiveSqlVisitor.prototype.visitExpr_concat = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#expr_concat_item. +// Visit a parse tree produced by HiveSql#expr_concat_item. HiveSqlVisitor.prototype.visitExpr_concat_item = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#expr_case. +// Visit a parse tree produced by HiveSql#expr_case. HiveSqlVisitor.prototype.visitExpr_case = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#expr_case_simple. +// Visit a parse tree produced by HiveSql#expr_case_simple. HiveSqlVisitor.prototype.visitExpr_case_simple = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#expr_case_searched. +// Visit a parse tree produced by HiveSql#expr_case_searched. HiveSqlVisitor.prototype.visitExpr_case_searched = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#expr_cursor_attribute. +// Visit a parse tree produced by HiveSql#expr_cursor_attribute. HiveSqlVisitor.prototype.visitExpr_cursor_attribute = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#expr_agg_window_func. +// Visit a parse tree produced by HiveSql#expr_agg_window_func. HiveSqlVisitor.prototype.visitExpr_agg_window_func = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#expr_func_all_distinct. +// Visit a parse tree produced by HiveSql#expr_func_all_distinct. HiveSqlVisitor.prototype.visitExpr_func_all_distinct = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#expr_func_over_clause. +// Visit a parse tree produced by HiveSql#expr_func_over_clause. HiveSqlVisitor.prototype.visitExpr_func_over_clause = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#expr_func_partition_by_clause. +// Visit a parse tree produced by HiveSql#expr_func_partition_by_clause. HiveSqlVisitor.prototype.visitExpr_func_partition_by_clause = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#expr_spec_func. +// Visit a parse tree produced by HiveSql#expr_spec_func. HiveSqlVisitor.prototype.visitExpr_spec_func = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#expr_func. +// Visit a parse tree produced by HiveSql#expr_func. HiveSqlVisitor.prototype.visitExpr_func = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#expr_func_params. +// Visit a parse tree produced by HiveSql#expr_func_params. HiveSqlVisitor.prototype.visitExpr_func_params = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#func_param. +// Visit a parse tree produced by HiveSql#func_param. HiveSqlVisitor.prototype.visitFunc_param = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#expr_select. +// Visit a parse tree produced by HiveSql#expr_select. HiveSqlVisitor.prototype.visitExpr_select = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#expr_file. +// Visit a parse tree produced by HiveSql#expr_file. HiveSqlVisitor.prototype.visitExpr_file = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#hive. +// Visit a parse tree produced by HiveSql#hive. HiveSqlVisitor.prototype.visitHive = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#hive_item. +// Visit a parse tree produced by HiveSql#hive_item. HiveSqlVisitor.prototype.visitHive_item = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#host. +// Visit a parse tree produced by HiveSql#host. HiveSqlVisitor.prototype.visitHost = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#host_cmd. +// Visit a parse tree produced by HiveSql#host_cmd. HiveSqlVisitor.prototype.visitHost_cmd = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#host_stmt. +// Visit a parse tree produced by HiveSql#host_stmt. HiveSqlVisitor.prototype.visitHost_stmt = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#file_name. +// Visit a parse tree produced by HiveSql#file_name. HiveSqlVisitor.prototype.visitFile_name = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#date_literal. +// Visit a parse tree produced by HiveSql#date_literal. HiveSqlVisitor.prototype.visitDate_literal = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#timestamp_literal. +// Visit a parse tree produced by HiveSql#timestamp_literal. HiveSqlVisitor.prototype.visitTimestamp_literal = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#ident. +// Visit a parse tree produced by HiveSql#ident. HiveSqlVisitor.prototype.visitIdent = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#single_quotedString. +// Visit a parse tree produced by HiveSql#single_quotedString. HiveSqlVisitor.prototype.visitSingle_quotedString = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#double_quotedString. +// Visit a parse tree produced by HiveSql#double_quotedString. HiveSqlVisitor.prototype.visitDouble_quotedString = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#int_number. +// Visit a parse tree produced by HiveSql#int_number. HiveSqlVisitor.prototype.visitInt_number = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#dec_number. +// Visit a parse tree produced by HiveSql#dec_number. HiveSqlVisitor.prototype.visitDec_number = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#bool_literal. +// Visit a parse tree produced by HiveSql#bool_literal. HiveSqlVisitor.prototype.visitBool_literal = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#null_const. +// Visit a parse tree produced by HiveSql#null_const. HiveSqlVisitor.prototype.visitNull_const = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#non_reserved_words. +// Visit a parse tree produced by HiveSql#non_reserved_words. HiveSqlVisitor.prototype.visitNon_reserved_words = function(ctx) { return this.visitChildren(ctx); }; diff --git a/src/parser/hive.ts b/src/parser/hive.ts index a404aef..f9f81df 100644 --- a/src/parser/hive.ts +++ b/src/parser/hive.ts @@ -1,6 +1,6 @@ import { InputStream, CommonTokenStream, Lexer } from 'antlr4'; import { HiveSqlLexer } from '../lib/hive/HiveSqlLexer'; -import { HiveSqlParser } from '../lib/hive/HiveSqlParser'; +import { HiveSql } from '../lib/hive/HiveSql'; export * from '../lib/hive/HiveSqlListener'; export * from '../lib/hive/HiveSqlVisitor'; @@ -14,7 +14,7 @@ export default class HiveSQL extends BasicParser { } public createParserFromLexer(lexer: Lexer) { const tokenStream = new CommonTokenStream(lexer); - return new HiveSqlParser(tokenStream); + return new HiveSql(tokenStream); } } diff --git a/test/parser/hive/lexer.test.ts b/test/parser/hive/lexer.test.ts index 423bdb9..78a002d 100644 --- a/test/parser/hive/lexer.test.ts +++ b/test/parser/hive/lexer.test.ts @@ -2,11 +2,15 @@ import SQLParser from '../../../src/parser/hive'; describe('HiveSQL Lexer tests', () => { const parser = new SQLParser(); - // select id,name,sex from user1; - const sql = 'SELECT * FROM t1'; - const tokens = parser.getAllTokens(sql); + test('select token counts', () => { + const sql = 'SELECT * FROM t1'; + const tokens = parser.getAllTokens(sql); + expect(tokens.length).toBe(4); + }); - test('token counts', () => { - expect(tokens.length).toBe(12); + test('select token counts', () => { + const sql = 'show create table_name;'; + const tokens = parser.getAllTokens(sql); + expect(tokens.length).toBe(4); }); }); diff --git a/test/parser/hive/listener.test.ts b/test/parser/hive/listener.test.ts index 23ff3e0..ac92674 100644 --- a/test/parser/hive/listener.test.ts +++ b/test/parser/hive/listener.test.ts @@ -1,17 +1,16 @@ import SQLParser, { HiveSqlListener } from '../../../src/parser/hive'; describe('Hive SQL Listener Tests', () => { - const expectTableName = 'user1'; - const sql = `select id,name,sex from ${expectTableName};`; const parser = new SQLParser(); + test('Listener enterSelectList', async () => { + const expectTableName = 'userName'; + const sql = `select ${expectTableName} from user1 where inc_day='20190601' limit 1000;`; + const parserTree = parser.parse(sql); - const parserTree = parser.parse(sql); - - test('Listener enterTableName', async () => { let result = ''; class MyListener extends HiveSqlListener { - enterTableName(ctx): void { - result = ctx.getText().toLowerCase(); + enterSelect_list(ctx): void { + result = ctx.getText(); } } const listenTableName: any = new MyListener(); @@ -19,4 +18,18 @@ describe('Hive SQL Listener Tests', () => { await parser.listen(listenTableName, parserTree); expect(result).toBe(expectTableName); }); + test('Listener enterCreateTable', async () => { + const sql = `drop table table_name;`; + const parserTree = parser.parse(sql); + let result = ''; + class MyListener extends HiveSqlListener { + enterDrop_stmt(ctx): void { + result = ctx.getText(); + } + } + const listenTableName: any = new MyListener(); + + await parser.listen(listenTableName, parserTree); + expect(result).toBe('droptabletable_name'); + }); }); diff --git a/test/parser/hive/syntax.test.ts b/test/parser/hive/syntax.test.ts index e6f6da6..3df530b 100644 --- a/test/parser/hive/syntax.test.ts +++ b/test/parser/hive/syntax.test.ts @@ -2,17 +2,21 @@ import SQLParser from '../../../src/parser/hive'; describe('Hive SQL Syntax Tests', () => { const parser = new SQLParser(); - - test('Select Statement', () => { - const sql = 'SELECT * FROM employee WHERE salary>30000;'; - const result = parser.validate(sql); - - expect(result.length).toBe(0); - }); - - test('Select 1+1', () => { - const sql = 'SELECT 1+1;'; + test('Create Table Statement', () => { + const sql = 'CREATE TABLE person(name STRING,age INT);'; const result = parser.validate(sql); expect(result.length).toBe(0); }); -}); + test('Create Table Statement', () => { + const sql = `alter table dm_gis.table_name add if not exists partition (inc_day = '20190601');`; + const result = parser.validate(sql); + expect(result.length).toBe(0); + }); + test('Wrong Select Statement', () => { + const sql = 'SELECT add ABC from Where ;' + const result = parser.validate(sql); + expect(result.length).toBe(2); + expect(result[0].message).toBe(`no viable alternative at input 'SELECTaddABCfromWhere'`) + expect(result[1].message).toBe(`mismatched input 'Where' expecting `) + }); +}); \ No newline at end of file diff --git a/test/parser/hive/visitor.test.ts b/test/parser/hive/visitor.test.ts index f4d2cec..57ecf9b 100644 --- a/test/parser/hive/visitor.test.ts +++ b/test/parser/hive/visitor.test.ts @@ -1,15 +1,15 @@ import SQLParser, { HiveSqlVisitor } from '../../../src/parser/hive'; describe('Generic SQL Visitor Tests', () => { - const expectTableName = 'user1'; - const sql = `select id,name,sex from ${expectTableName};`; + const expectTableName = 'dm_gis.dlv_addr_tc_count'; + const sql = `select citycode,tc,inc_day from ${expectTableName} where inc_day='20190501' limit 100;`; const parser = new SQLParser(); const parserTree = parser.parse(sql, (error) => { console.log('Parse error:', error); }); - console.log('Parser tree string:', parser.toString(parserTree)); + // console.log('Parser tree string:', parser.toString(parserTree)); test('Visitor visitTableName', () => { let result = ''; @@ -19,6 +19,7 @@ describe('Generic SQL Visitor Tests', () => { super.visitTable_name(ctx); } } + const visitor: any = new MyVisitor(); visitor.visit(parserTree);